Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uygulamanıza erişmek için kullanılan URL’ye bağlı olarak belirli ölçeklenebilir sunucu havuzlarına yönlendirilecek web trafiğini yapılandırmak için Azure PowerShell’i kullanabilirsiniz. Bu makalede, Sanal Makine Ölçek Kümeleri kullanarak üç arka uç havuzuna sahip bir Azure Uygulaması Lication Gateway oluşturacaksınız. Arka uç havuzlarının her biri ortak veriler, görüntüler ve video gibi belirli bir amaca hizmet eder. Trafiği farklı havuzlara ayırmak, müşterilerinizin ihtiyaç duydukları bilgileri ihtiyaç duydukları zaman edinmesini sağlar.
Trafik yönlendirmeyi etkinleştirmek için web trafiğinin havuzlardaki uygun sunuculara ulaşmasını sağlayacak belirli bağlantı noktalarını dinleyen dinleyicilere atanmış yönlendirme kuralları oluşturursunuz.
Bu makalede şunları öğreneceksiniz:
- Ağı ayarlama
- Dinleyicileri, URL yol haritasını ve kuralları oluşturma
- Ölçeklenebilir arka uç havuzları oluşturma
İsterseniz, Azure CLI veya Azure portalını kullanarak bu yordamı tamamlayabilirsiniz.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Not
Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Azure Cloud Shell
Azure, tarayıcınız aracılığıyla kullanabileceğiniz etkileşimli bir kabuk ortamı olan Azure Cloud Shell'i barındırıyor. Azure hizmetleriyle çalışmak için Cloud Shell ile Bash veya PowerShell kullanabilirsiniz. Yerel ortamınıza herhangi bir şey yüklemek zorunda kalmadan bu makaledeki kodu çalıştırmak için Cloud Shell önceden yüklenmiş komutlarını kullanabilirsiniz.
Azure Cloud Shell'i başlatmak için:
| Seçenek | Örnek/Bağlantı |
|---|---|
| Kodun veya komut bloğunun sağ üst köşesindeki Deneyin'i seçin. Deneyin seçildiğinde kod veya komut otomatik olarak Cloud Shell'e kopyalanmaz. |
|
| https://shell.azure.comadresine gidin veya Cloud Shell'i tarayıcınızda açmak için Cloud Shell'i Başlat düğmesini seçin. |
|
| Azure portalının sağ üst kısmındaki menü çubuğunda Cloud Shell düğmesini seçin. |
|
Azure Cloud Shell'i kullanmak için:
Cloud Shell'i başlatın.
Kodu veya komutu kopyalamak için kod bloğundaki (veya komut bloğundaki) Kopyala düğmesini seçin.
Windows ve Linux'ta Ctrlveya macOS üzerinde Cmd+ seçerek kodu veya komutu Cloud Shell oturumuna yapıştırın.
Kodu veya komutu çalıştırmak için Enter'ı seçin.
PowerShell'i yerel olarak yükleyip kullanmayı seçerseniz, bu makale Azure PowerShell modülü 1.0.0 veya sonraki bir sürümünü gerektirir. Sürümü bulmak için Get-Module -ListAvailable Az komutunu çalıştırın. Yükseltmeniz gerekirse, bkz. Azure PowerShell modülünü yükleme. PowerShell'i yerel olarak çalıştırıyorsanız Azure ile bağlantı oluşturmak için de komutunu çalıştırmanız Login-AzAccount gerekir.
Kaynak oluşturmak için gereken süre nedeniyle bu yordamın tamamlanması 90 dakika kadar sürebilir.
Kaynak grubu oluşturma
Uygulamanızın tüm kaynaklarını içeren bir kaynak grubu oluşturun.
New-AzResourceGroup kullanarak bir Azure kaynak grubu oluşturun.
New-AzResourceGroup -Name myResourceGroupAG -Location eastus
Ağ kaynakları oluşturma
Mevcut bir sanal ağı kullanmanıza veya yeni bir tane oluşturmanıza bakılmaksızın, yalnızca uygulama ağ geçitleri için kullanılan bir alt ağ içerdiğinden emin olmanız gerekir. Bu makalede, uygulama ağ geçidi için bir alt ağ ve ölçek kümeleri için bir alt ağ oluşturursunuz. Uygulama ağ geçidindeki kaynaklara erişimi etkinleştirmek için bir genel IP adresi oluşturun.
New-AzVirtualNetworkSubnetConfig komutunu kullanarak myAGSubnet ve myBackendSubnet alt ağ yapılandırmalarını oluşturun. Alt ağ yapılandırmalarıyla New-AzVirtualNetwork komutunu kullanarak myVNet adlı sanal ağı oluşturun. Son olarak, New-AzPublicIpAddress komutunu kullanarak myAGPublicIPAddress adlı genel IP adresini oluşturun. Bu kaynaklar, uygulama ağ geçidi ve ilişkili kaynakları ile ağ bağlantısı sağlamak için kullanılır.
$backendSubnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name myBackendSubnet `
-AddressPrefix 10.0.1.0/24
$agSubnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name myAGSubnet `
-AddressPrefix 10.0.2.0/24
$vnet = New-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Name myVNet `
-AddressPrefix 10.0.0.0/16 `
-Subnet $backendSubnetConfig, $agSubnetConfig
$pip = New-AzPublicIpAddress `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Name myAGPublicIPAddress `
-AllocationMethod Static `
-Sku Standard
Uygulama ağ geçidi oluşturma
Bu bölümde, uygulama ağ geçidini destekleyen kaynakları ve son olarak uygulama ağ geçidini oluşturacaksınız. Oluşturduğunuz kaynaklar şunlardır:
- IP yapılandırmaları ve ön uç bağlantı noktası - Daha önce oluşturduğunuz alt ağı uygulama ağ geçidiyle ilişkilendirir ve erişim için kullanılacak bir bağlantı noktası atar.
- Varsayılan havuz - Tüm uygulama ağ geçitlerinde en az bir sunucu arka uç havuzu olmalıdır.
- Varsayılan dinleyici ve kural - Varsayılan dinleyici, atanan bağlantı noktası üzerindeki trafiği dinler, varsayılan kural ise trafiği varsayılan havuza gönderir.
IP yapılandırmaları ve ön uç bağlantı noktası oluşturma
Daha önce oluşturduğunuz myAGSubnet'i New-AzApplicationGatewayIPConfiguration kullanarak uygulama ağ geçidiyle ilişkilendirin. New-AzApplicationGatewayFrontendIPConfig komutunu kullanarak uygulama ağ geçidine myAGPublicIPAddress atayın.
$vnet = Get-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Name myVNet
$subnet=$vnet.Subnets[0]
$pip = Get-AzPublicIpAddress `
-ResourceGroupName myResourceGroupAG `
-Name myAGPublicIPAddress
$gipconfig = New-AzApplicationGatewayIPConfiguration `
-Name myAGIPConfig `
-Subnet $subnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig `
-Name myAGFrontendIPConfig `
-PublicIPAddress $pip
$frontendport = New-AzApplicationGatewayFrontendPort `
-Name myFrontendPort `
-Port 80
Varsayılan havuz ve ayarlar oluşturma
New-AzApplicationGatewayBackendAddressPool komutunu kullanarak uygulama ağ geçidi için appGatewayBackendPool adlı varsayılan arka uç havuzunu oluşturun. New-AzApplicationGatewayBackendHttpSetting komutunu kullanarak arka uç havuzu ayarlarını yapılandırın.
$defaultPool = New-AzApplicationGatewayBackendAddressPool `
-Name appGatewayBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
-Name myPoolSettings `
-Port 80 `
-Protocol Http `
-CookieBasedAffinity Enabled `
-RequestTimeout 120
Varsayılan dinleyici ve kural oluşturma
Uygulama ağ geçidinin trafiği arka uç havuzuna uygun şekilde yönlendirmesini sağlamak için bir dinleyici gereklidir. Bu makalede iki dinleyici oluşturacaksınız. Oluşturduğunuz ilk temel dinleyici, kök URL'deki trafiği dinler. Oluşturduğunuz ikinci dinleyici ise belirli URL'lerdeki trafiği dinler.
Daha önce oluşturduğunuz ön uç yapılandırması ve ön uç bağlantı noktasıyla New-AzApplicationGatewayHttpListener kullanarak myDefaultListener adlı varsayılan dinleyiciyi oluşturun.
Dinleyicinin gelen trafik için kullanacağı arka uç havuzunu bilmesi için bir kural gerekir. New-AzApplicationGatewayRequestRoutingRule komutunu kullanarak rule1 adlı temel bir kural oluşturun.
$defaultlistener = New-AzApplicationGatewayHttpListener `
-Name myDefaultListener `
-Protocol Http `
-FrontendIPConfiguration $fipconfig `
-FrontendPort $frontendport
$frontendRule = New-AzApplicationGatewayRequestRoutingRule `
-Name rule1 `
-RuleType Basic `
-HttpListener $defaultlistener `
-BackendAddressPool $defaultPool `
-BackendHttpSettings $poolSettings
Uygulama ağ geçidi oluşturma
Gerekli destekleyici kaynakları oluşturduğunuza göre, New-AzApplicationGatewaySku kullanarak myAppGateway adlı uygulama ağ geçidi için parametreleri belirtin ve ardından New-AzApplicationGateway kullanarak oluşturun.
$sku = New-AzApplicationGatewaySku `
-Name Standard_v2 `
-Tier Standard_v2 `
-Capacity 2
$appgw = New-AzApplicationGateway `
-Name myAppGateway `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-BackendAddressPools $defaultPool `
-BackendHttpSettingsCollection $poolSettings `
-FrontendIpConfigurations $fipconfig `
-GatewayIpConfigurations $gipconfig `
-FrontendPorts $frontendport `
-HttpListeners $defaultlistener `
-RequestRoutingRules $frontendRule `
-Sku $sku
Uygulama ağ geçidinin oluşturulması 30 dakika kadar sürebilir. Sonraki bölüme geçmeden önce dağıtımın başarıyla tamamlanmasını bekleyin.
Bu noktada, 80 numaralı bağlantı noktasında trafiği dinleyen ve bu trafiği varsayılan sunucu havuzuna gönderen bir uygulama ağ geçidiniz vardır.
Görüntü ve video arka uç havuzlarını ve bağlantı noktasını ekleme
Add-AzApplicationGatewayBackendAddressPool komutunu kullanarak uygulama ağ geçidinize imagesBackendPool ve videoBackendPool adlı arka uç havuzları ekleyin. Add-AzApplicationGatewayFrontendPort komutunu kullanarak havuzlar için ön uç bağlantı noktasını ekleyin. Set-AzApplicationGateway komutunu kullanarak değişiklikleri uygulama ağ geçidine gönderin.
$appgw = Get-AzApplicationGateway `
-ResourceGroupName myResourceGroupAG `
-Name myAppGateway
Add-AzApplicationGatewayBackendAddressPool `
-ApplicationGateway $appgw `
-Name imagesBackendPool
Add-AzApplicationGatewayBackendAddressPool `
-ApplicationGateway $appgw `
-Name videoBackendPool
Add-AzApplicationGatewayFrontendPort `
-ApplicationGateway $appgw `
-Name bport `
-Port 8080
Set-AzApplicationGateway -ApplicationGateway $appgw
Uygulama ağ geçidinin güncelleştirilmesi 20 dakikaya kadar sürebilir.
Arka uç dinleyicisi ekleme
Add-AzApplicationGatewayHttpListener kullanarak trafiği yönlendirmek için gereken backendListener adlı arka uç dinleyicisini ekleyin.
$appgw = Get-AzApplicationGateway `
-ResourceGroupName myResourceGroupAG `
-Name myAppGateway
$backendPort = Get-AzApplicationGatewayFrontendPort `
-ApplicationGateway $appgw `
-Name bport
$fipconfig = Get-AzApplicationGatewayFrontendIPConfig `
-ApplicationGateway $appgw
Add-AzApplicationGatewayHttpListener `
-ApplicationGateway $appgw `
-Name backendListener `
-Protocol Http `
-FrontendIPConfiguration $fipconfig `
-FrontendPort $backendPort
Set-AzApplicationGateway -ApplicationGateway $appgw
URL yol eşlemesini ekleme
URL yol eşlemeleri, uygulamanıza gönderilen URL’lerin belirli arka uç havuzlarına yönlendirilmesini sağlar. New-AzApplicationGatewayPathRuleConfig ve Add-AzApplicationGatewayUrlPathMapConfig kullanarak imagePathRule ve videoPathRule adlı URL yol eşlemeleri oluşturun.
$appgw = Get-AzApplicationGateway `
-ResourceGroupName myResourceGroupAG `
-Name myAppGateway
$poolSettings = Get-AzApplicationGatewayBackendHttpSetting `
-ApplicationGateway $appgw `
-Name myPoolSettings
$imagePool = Get-AzApplicationGatewayBackendAddressPool `
-ApplicationGateway $appgw `
-Name imagesBackendPool
$videoPool = Get-AzApplicationGatewayBackendAddressPool `
-ApplicationGateway $appgw `
-Name videoBackendPool
$defaultPool = Get-AzApplicationGatewayBackendAddressPool `
-ApplicationGateway $appgw `
-Name appGatewayBackendPool
$imagePathRule = New-AzApplicationGatewayPathRuleConfig `
-Name imagePathRule `
-Paths "/images/*" `
-BackendAddressPool $imagePool `
-BackendHttpSettings $poolSettings
$videoPathRule = New-AzApplicationGatewayPathRuleConfig `
-Name videoPathRule `
-Paths "/video/*" `
-BackendAddressPool $videoPool `
-BackendHttpSettings $poolSettings
Add-AzApplicationGatewayUrlPathMapConfig `
-ApplicationGateway $appgw `
-Name urlpathmap `
-PathRules $imagePathRule, $videoPathRule `
-DefaultBackendAddressPool $defaultPool `
-DefaultBackendHttpSettings $poolSettings
Set-AzApplicationGateway -ApplicationGateway $appgw
Yönlendirme kuralı ekleme
Yönlendirme kuralı URL eşlemesini oluşturduğunuz dinleyici ile ilişkilendirir. Add-AzApplicationGatewayRequestRoutingRule komutunu kullanarak rule2 adlı kuralı ekleyin.
$appgw = Get-AzApplicationGateway `
-ResourceGroupName myResourceGroupAG `
-Name myAppGateway
$backendlistener = Get-AzApplicationGatewayHttpListener `
-ApplicationGateway $appgw `
-Name backendListener
$urlPathMap = Get-AzApplicationGatewayUrlPathMapConfig `
-ApplicationGateway $appgw `
-Name urlpathmap
Add-AzApplicationGatewayRequestRoutingRule `
-ApplicationGateway $appgw `
-Name rule2 `
-RuleType PathBasedRouting `
-HttpListener $backendlistener `
-UrlPathMap $urlPathMap
Set-AzApplicationGateway -ApplicationGateway $appgw
Sanal makine ölçek kümesi oluşturma
Bu örnekte, oluşturduğunuz üç arka uç havuzunu destekleyen üç sanal makine ölçek kümesi oluşturacaksınız. Oluşturduğunuz ölçek kümeleri myvmss1, myvmss2 ve myvmss3 olarak adlandırılır. IP ayarlarını yapılandırırken ölçek kümesini arka uç havuzuna atayın.
$vnet = Get-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Name myVNet
$appgw = Get-AzApplicationGateway `
-ResourceGroupName myResourceGroupAG `
-Name myAppGateway
$backendPool = Get-AzApplicationGatewayBackendAddressPool `
-Name appGatewayBackendPool `
-ApplicationGateway $appgw
$imagesPool = Get-AzApplicationGatewayBackendAddressPool `
-Name imagesBackendPool `
-ApplicationGateway $appgw
$videoPool = Get-AzApplicationGatewayBackendAddressPool `
-Name videoBackendPool `
-ApplicationGateway $appgw
for ($i=1; $i -le 3; $i++)
{
if ($i -eq 1)
{
$poolId = $backendPool.Id
}
if ($i -eq 2)
{
$poolId = $imagesPool.Id
}
if ($i -eq 3)
{
$poolId = $videoPool.Id
}
$ipConfig = New-AzVmssIpConfig `
-Name myVmssIPConfig$i `
-SubnetId $vnet.Subnets[1].Id `
-ApplicationGatewayBackendAddressPoolsId $poolId
$vmssConfig = New-AzVmssConfig `
-Location eastus `
-SkuCapacity 2 `
-SkuName Standard_DS2_v2 `
-UpgradePolicyMode Automatic
Set-AzVmssStorageProfile $vmssConfig `
-ImageReferencePublisher MicrosoftWindowsServer `
-ImageReferenceOffer WindowsServer `
-ImageReferenceSku 2016-Datacenter `
-ImageReferenceVersion latest `
-OsDiskCreateOption FromImage
Set-AzVmssOsProfile $vmssConfig `
-AdminUsername azureuser `
-AdminPassword "Azure123456!" `
-ComputerNamePrefix myvmss$i
Add-AzVmssNetworkInterfaceConfiguration `
-VirtualMachineScaleSet $vmssConfig `
-Name myVmssNetConfig$i `
-Primary $true `
-IPConfiguration $ipConfig
New-AzVmss `
-ResourceGroupName myResourceGroupAG `
-Name myvmss$i `
-VirtualMachineScaleSet $vmssConfig
}
IIS yükleme
Her bir ölçek kümesi IIS yükleyeceğiniz iki sanal makine örneği içerir. Uygulama ağ geçidinin çalışıp çalışmadiğini test etmek için örnek bir sayfa oluşturulur.
$publicSettings = @{ "fileUris" = (,"https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/appgatewayurl.ps1");
"commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File appgatewayurl.ps1" }
for ($i=1; $i -le 3; $i++)
{
$vmss = Get-AzVmss -ResourceGroupName myResourceGroupAG -VMScaleSetName myvmss$i
Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
-Name "customScript" `
-Publisher "Microsoft.Compute" `
-Type "CustomScriptExtension" `
-TypeHandlerVersion 1.8 `
-Setting $publicSettings
Update-AzVmss `
-ResourceGroupName myResourceGroupAG `
-Name myvmss$i `
-VirtualMachineScaleSet $vmss
}
Uygulama ağ geçidini test etme
Uygulama ağ geçidinin genel IP adresini almak için Get-AzPublicIPAddress komutunu kullanın. Genel IP adresini kopyalayıp tarayıcınızın adres çubuğuna yapıştırın. Örneğin http://52.168.55.24, http://52.168.55.24:8080/images/test.htm veya http://52.168.55.24:8080/video/test.htm.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress
URL'yi http://< ip-address>:8080/images/test.htm olarak değiştirin, ip adresi< için >IP adresinizi değiştirin ve aşağıdaki örneğe benzer bir şey görmeniz gerekir:
URL'yi http://< ip-address>:8080/video/test.htm olarak değiştirin ve IP adresinizi ip-adresi< olarak >değiştirin ve aşağıdaki örneğe benzer bir şey görmeniz gerekir:
Kaynakları temizleme
Artık gerekli olmadığında Remove-AzResourceGroup kullanarak kaynak grubunu, uygulama ağ geçidini ve tüm ilgili kaynakları kaldırın.
Remove-AzResourceGroup -Name myResourceGroupAG