Öğretici: Web uygulaması erişimini geliştiren bir uygulama ağ geçidi oluşturma
Web uygulaması erişimini geliştirmekle ilgilenen bir BT yöneticisiyseniz, uygulama ağ geçidinizi müşteri talebine göre ölçeklendirilecek ve birden çok kullanılabilirlik alanına yayılacak şekilde iyileştirebilirsiniz. Bu öğretici, bunu Azure Uygulaması ağ geçidi özelliklerini yapılandırmanıza yardımcı olur: otomatik ölçeklendirme, alanlar arası yedeklilik ve ayrılmış VIP'ler (statik IP). Sorunu çözmek için Azure PowerShell cmdlet'lerini ve Azure Resource Manager dağıtım modelini kullanacaksınız.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Otomatik olarak imzalanan sertifika oluşturma
- Otomatik ölçeklendirme sanal ağı oluşturma
- Ayrılmış genel IP adresi oluşturma
- Uygulama ağ geçidi altyapınızı ayarlama
- Otomatik ölçeklendirmeyi belirtme
- Uygulama ağ geçidi oluşturma
- Uygulama ağ geçidini test etme
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Önkoşullar
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.
Bu öğretici, yerel olarak bir yönetici Azure PowerShell oturumu çalıştırmanızı gerektirir. Azure PowerShell modülü sürüm 1.0.0 veya üzeri yüklü olmalıdır. 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 sürümünü doğruladıktan sonra, Azure ile bağlantı oluşturmak için Connect-AzAccount
komutunu çalıştırın.
Azure'da oturum açma
Connect-AzAccount
Select-AzSubscription -Subscription "<sub name>"
Kaynak grubu oluşturma
Kullanılabilir konumlardan birinde bir kaynak grubu oluşturun.
$location = "East US 2"
$rg = "AppGW-rg"
#Create a new Resource Group
New-AzResourceGroup -Name $rg -Location $location
Otomatik olarak imzalanan sertifika oluşturma
Üretim sırasında kullanım için, güvenilen bir sağlayıcı tarafından imzalanan geçerli bir sertifikayı içeri aktarmalısınız. Bu öğretici için New-SelfSignedCertificate komutunu kullanarak otomatik olarak imzalanan bir sertifika oluşturursunuz. Sertifikadan pfx dosyası dışarı aktarmak için döndürülen Parmak izi ile Export-PfxCertificate komutunu kullanabilirsiniz.
New-SelfSignedCertificate `
-certstorelocation cert:\localmachine\my `
-dnsname www.contoso.com
Bu sonuca benzer bir şey görmeniz gerekir:
PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\my
Thumbprint Subject
---------- -------
E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 CN=www.contoso.com
Pfx dosyasını oluşturmak için parmak izini kullanın. Parolayı> seçtiğiniz bir parolayla değiştirin<:
$pwd = ConvertTo-SecureString -String "<password>" -Force -AsPlainText
Export-PfxCertificate `
-cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
-FilePath c:\appgwcert.pfx `
-Password $pwd
Sanal ağ oluşturma
Otomatik ölçeklendirme uygulama ağ geçidi için ayrılmış bir alt ağa sahip bir sanal ağ oluşturun. Şu anda her ayrılmış alt ağda yalnızca bir otomatik ölçeklendirme yapan uygulama ağ geçidi dağıtılabilir.
#Create VNet with two subnets
$sub1 = New-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -AddressPrefix "10.0.0.0/24"
$sub2 = New-AzVirtualNetworkSubnetConfig -Name "BackendSubnet" -AddressPrefix "10.0.1.0/24"
$vnet = New-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg `
-Location $location -AddressPrefix "10.0.0.0/16" -Subnet $sub1, $sub2
Ayrılmış genel IP adresi oluşturma
PublicIPAddress ayırma yöntemini Statik olarak belirtin. Otomatik ölçeklendirme yapan uygulama ağ geçidi VIP’si yalnızca statik olabilir. Dinamik IP’ler desteklenmez. Yalnızca standart PublicIpAddress SKU’su desteklenir.
#Create static public IP
$pip = New-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP" `
-location $location -AllocationMethod Static -Sku Standard -Zone 1,2,3
Ayrıntıları alma
Uygulama ağ geçidi için IP yapılandırma ayrıntılarını oluşturmak için yerel bir nesnedeki kaynak grubunun, alt ağın ve IP'nin ayrıntılarını alın.
$publicip = Get-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP"
$vnet = Get-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg
$gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -VirtualNetwork $vnet
Web uygulamaları oluşturma
Arka uç havuzu için iki web uygulaması yapılandırın. site1-name> ve< site-2-name> yerine etki alanındaki azurewebsites.net
benzersiz adları yazın.<
New-AzAppServicePlan -ResourceGroupName $rg -Name "ASP-01" -Location $location -Tier Basic `
-NumberofWorkers 2 -WorkerSize Small
New-AzWebApp -ResourceGroupName $rg -Name <site1-name> -Location $location -AppServicePlan ASP-01
New-AzWebApp -ResourceGroupName $rg -Name <site2-name> -Location $location -AppServicePlan ASP-01
Altyapıyı yapılandırma
IP yapılandırması, ön uç IP yapılandırması, arka uç havuzu, HTTP ayarları, sertifika, bağlantı noktası, dinleyici ve kuralı mevcut Standart uygulama ağ geçidiyle aynı biçimde yapılandırın. Yeni SKU, standart SKU ile aynı nesne modelini izler.
$pool değişken tanımında iki web uygulaması FQDN'nizi (örneğin: mywebapp.azurewebsites.net
) değiştirin.
$ipconfig = New-AzApplicationGatewayIPConfiguration -Name "IPConfig" -Subnet $gwSubnet
$fip = New-AzApplicationGatewayFrontendIPConfig -Name "FrontendIPCOnfig" -PublicIPAddress $publicip
$pool = New-AzApplicationGatewayBackendAddressPool -Name "Pool1" `
-BackendIPAddresses <your first web app FQDN>, <your second web app FQDN>
$fp01 = New-AzApplicationGatewayFrontendPort -Name "SSLPort" -Port 443
$fp02 = New-AzApplicationGatewayFrontendPort -Name "HTTPPort" -Port 80
$securepfxpwd = ConvertTo-SecureString -String "Azure123456!" -AsPlainText -Force
$sslCert01 = New-AzApplicationGatewaySslCertificate -Name "SSLCert" -Password $securepfxpwd `
-CertificateFile "c:\appgwcert.pfx"
$listener01 = New-AzApplicationGatewayHttpListener -Name "SSLListener" `
-Protocol Https -FrontendIPConfiguration $fip -FrontendPort $fp01 -SslCertificate $sslCert01
$listener02 = New-AzApplicationGatewayHttpListener -Name "HTTPListener" `
-Protocol Http -FrontendIPConfiguration $fip -FrontendPort $fp02
$setting = New-AzApplicationGatewayBackendHttpSettings -Name "BackendHttpSetting1" `
-Port 80 -Protocol Http -CookieBasedAffinity Disabled -PickHostNameFromBackendAddress
$rule01 = New-AzApplicationGatewayRequestRoutingRule -Name "Rule1" -RuleType basic `
-BackendHttpSettings $setting -HttpListener $listener01 -BackendAddressPool $pool -Priority 1
$rule02 = New-AzApplicationGatewayRequestRoutingRule -Name "Rule2" -RuleType basic `
-BackendHttpSettings $setting -HttpListener $listener02 -BackendAddressPool $pool -Priority 2
Otomatik ölçeklendirmeyi belirtme
Artık uygulama ağ geçidi için otomatik ölçeklendirme yapılandırmasını belirtebilirsiniz.
$autoscaleConfig = New-AzApplicationGatewayAutoscaleConfiguration -MinCapacity 2
$sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2
Bu modda, uygulama ağ geçidi uygulamanın trafik desenine bağlı olarak otomatik ölçeklendirme yapar.
Uygulama ağ geçidi oluşturma
Uygulama ağ geçidini oluşturun ve yedeklilik alanlarını ve otomatik ölçeklendirme yapılandırmasını ekleyin.
$appgw = New-AzApplicationGateway -Name "AutoscalingAppGw" -Zone 1,2,3 `
-ResourceGroupName $rg -Location $location -BackendAddressPools $pool `
-BackendHttpSettingsCollection $setting -GatewayIpConfigurations $ipconfig `
-FrontendIpConfigurations $fip -FrontendPorts $fp01, $fp02 `
-HttpListeners $listener01, $listener02 -RequestRoutingRules $rule01, $rule02 `
-Sku $sku -sslCertificates $sslCert01 -AutoscaleConfiguration $autoscaleConfig
Uygulama ağ geçidini test etme
Uygulama ağ geçidinin genel IP adresini almak için Get-AzPublicIPAddress komutunu kullanın. Genel IP adresini veya DNS adını kopyalayıp tarayıcınızın adres çubuğuna yapıştırın.
$pip = Get-AzPublicIPAddress -ResourceGroupName $rg -Name AppGwVIP
$pip.IpAddress
Kaynakları temizleme
İlk olarak uygulama ağ geçidiyle oluşturulan kaynakları keşfedin. Daha sonra artık gerekli olmadığında komutunu kullanarak Remove-AzResourceGroup
kaynak grubunu, uygulama ağ geçidini ve tüm ilgili kaynakları kaldırabilirsiniz.
Remove-AzResourceGroup -Name $rg