Udostępnij przez


Samouczek: tworzenie bramy aplikacji, która poprawia dostęp do aplikacji internetowych

Jeśli jesteś administratorem IT mającym na celu poprawę dostępu do aplikacji internetowych, możesz zoptymalizować bramę aplikacji w celu dynamicznego skalowania na podstawie zapotrzebowania klientów i obejmującego wiele stref dostępności. Ten samouczek ułatwia konfigurowanie kluczowych funkcji usługi Azure Application Gateway w wersji 2, w tym skalowania automatycznego, nadmiarowości strefy i statycznych adresów VIP w celu uzyskania tych ulepszeń. Aby rozwiązać ten problem, użyjesz poleceń cmdlet programu Azure PowerShell i modelu wdrażania usługi Azure Resource Manager.

Z tego samouczka dowiesz się, jak wykonywać następujące działania:

  • Tworzenie certyfikatu z podpisem własnym
  • Tworzenie autoskalującej sieci wirtualnej
  • Tworzenie zastrzeżonego publicznego adresu IP
  • Konfigurowanie infrastruktury bramy aplikacji
  • Określanie automatycznego skalowania
  • Tworzenie bramy aplikacji
  • Testowanie bramy aplikacji

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Aby uzyskać więcej informacji na temat obsługi stref dostępności w usłudze Application Gateway w wersji 2, zobacz Niezawodność usługi Application Gateway w wersji 2.

Wymagania wstępne

Uwaga

Zalecamy korzystanie z modułu Azure Az programu PowerShell do interakcji z platformą Azure. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Ten samouczek wymaga lokalnego uruchomienia administracyjnej sesji programu Azure PowerShell. Musisz mieć zainstalowany moduł Azure PowerShell w wersji 1.0.0 lub nowszej. Uruchom Get-Module -ListAvailable Az, aby znaleźć wersję. Jeśli konieczne będzie uaktualnienie, zobacz Instalowanie modułu Azure PowerShell. Po zweryfikowaniu wersji programu PowerShell uruchom polecenie Connect-AzAccount, aby utworzyć połączenie z platformą Azure.

Zaloguj się na platformie Azure

Connect-AzAccount
Select-AzSubscription -Subscription "<sub name>"

Tworzenie grupy zasobów

Utwórz grupę zasobów w jednej z dostępnych lokalizacji.

$location = "East US 2"
$rg = "AppGW-rg"

#Create a new Resource Group
New-AzResourceGroup -Name $rg -Location $location

Tworzenie certyfikatu z podpisem własnym

Do użytku produkcyjnego należy zaimportować prawidłowy certyfikat podpisany przez zaufanego dostawcę. W tym samouczku utworzysz certyfikat z podpisem własnym przy użyciu polecenia New-SelfSignedCertificate. Możesz użyć polecenia Export-PfxCertificate z odciskiem palca zwróconym w celu wyeksportowania pliku pfx z certyfikatu.

New-SelfSignedCertificate `
  -certstorelocation cert:\localmachine\my `
  -dnsname www.contoso.com

Powinien zostać wyświetlony wynik podobny do następującego:

PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\my

Thumbprint                                Subject
----------                                -------
E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630  CN=www.contoso.com

Użyj odcisku palca, aby utworzyć plik pfx. Zastąp <hasło> wybranym hasłem:

$pwd = ConvertTo-SecureString -String "<password>" -Force -AsPlainText

Export-PfxCertificate `
  -cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
  -FilePath c:\appgwcert.pfx `
  -Password $pwd

Tworzenie sieci wirtualnej

Utwórz sieć wirtualną z jedną dedykowaną podsiecią dla bramy aplikacji skalowania automatycznego. Obecnie w każdej dedykowanej podsieci można wdrożyć tylko jedną bramę aplikacji skalowania automatycznego.

#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

Tworzenie zastrzeżonego publicznego adresu IP

Określ metodę alokacji elementu PublicIPAddress jako statyczną. Adres VIP w bramie aplikacji automatycznego skalowania może być wyłącznie statyczny. Dynamiczne adresy IP nie są obsługiwane. Obsługiwana jest tylko standardowa jednostka SKU PublicIpAddress.

#Create static public IP
$pip = New-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP" `
       -location $location -AllocationMethod Static -Sku Standard -Zone 1,2,3

Pobierz szczegóły

Pobierz szczegóły grupy zasobów, podsieci i adresu IP w obiekcie lokalnym, aby utworzyć szczegóły konfiguracji adresu IP dla bramy aplikacji.

$publicip = Get-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP"
$vnet = Get-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg
$gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -VirtualNetwork $vnet

Tworzenie aplikacji internetowych

Skonfiguruj dwie aplikacje webowe dla puli zaplecza serwera. Zastąp ciąg <site1-name> i <site2-name> unikatowymi nazwami w domenie azurewebsites.net .

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

Konfigurowanie infrastruktury

Skonfiguruj konfigurację adresu IP, konfigurację adresu IP frontonu, pulę zaplecza, ustawienia PROTOKOŁU HTTP, certyfikat, port, odbiornik i regułę w identycznym formacie jak istniejąca brama aplikacji w warstwie Standardowa. Nowa jednostka SKU jest zgodna z tym samym modelem obiektu co SKU w warstwie standardowej.

Zastąp dwie nazwy FQDN dla aplikacji internetowych (na przykład: mywebapp.azurewebsites.net) w definicji zmiennej $pool.

$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

Określanie automatycznego skalowania

Teraz możesz określić konfigurację skalowania automatycznego dla bramy aplikacji.

$autoscaleConfig = New-AzApplicationGatewayAutoscaleConfiguration -MinCapacity 2
$sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2

W tym trybie brama aplikacji automatycznie skaluje się na podstawie wzorca ruchu aplikacji.

Tworzenie bramy aplikacji

Utwórz bramę aplikacji i uwzględnij strefy nadmiarowości oraz konfigurację skalowania automatycznego.

$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

Testowanie bramy aplikacji

Użyj Get-AzPublicIPAddress, aby uzyskać publiczny adres IP bramy aplikacji. Skopiuj publiczny adres IP lub nazwę DNS, a następnie wklej go na pasku adresu przeglądarki.

$pip = Get-AzPublicIPAddress -ResourceGroupName $rg -Name AppGwVIP
$pip.IpAddress

Czyszczenie zasobów

Najpierw zapoznaj się z zasobami utworzonymi za pomocą bramy aplikacji. Następnie, gdy nie są już potrzebne, możesz użyć Remove-AzResourceGroup polecenia , aby usunąć grupę zasobów, bramę aplikacji i wszystkie powiązane zasoby.

Remove-AzResourceGroup -Name $rg

Następne kroki