Udostępnij za pośrednictwem


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

Jeśli jesteś administratorem IT zajmującym się ulepszaniem dostępu do aplikacji internetowych, możesz zoptymalizować bramę aplikacji pod kątem skalowania na podstawie zapotrzebowania klienta i obejmować wiele stref dostępności. Ten samouczek ułatwia konfigurowanie funkcji usługi Azure Application Gateway w wersji 2, które to robią: skalowanie automatyczne, nadmiarowość stref i statyczne adresy VIP. 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.

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