Dela via


Självstudie: Skapa en programgateway som förbättrar åtkomsten till webbprogram

Om du är IT-administratör och vill förbättra åtkomsten till webbprogram kan du optimera programgatewayen så att den kan skalas dynamiskt baserat på kundernas efterfrågan och omfatta flera tillgänglighetszoner. Den här självstudien hjälper dig att konfigurera viktiga Azure Application Gateway v2-funktioner, inklusive autoskalning, zonredundans och statiska VIP:er, för att uppnå dessa förbättringar. Du använder Azure PowerShell-cmdletar och Azure Resource Manager-distributionsmodellen för att lösa problemet.

I den här tutorialen lär du dig följande:

  • Skapa ett självsignerat certifikat
  • Skapa ett virtuellt nätverk för automatisk skalning
  • Skapa en reserverad offentlig IP-adress
  • Konfigurera din programgatewayinfrastruktur
  • Ange automatiskt skalning
  • Skapa programgatewayen
  • Testa programgatewayen

Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

Mer information om stöd för tillgänglighetszoner i Application Gateway v2 finns i Tillförlitlighet för Application Gateway v2.

Förutsättningar

Anmärkning

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i Migrera Azure PowerShell från AzureRM till Az.

Den här handledningen kräver att du kör en administrativ Azure PowerShell-session lokalt. Du måste ha Azure PowerShell-modul version 1.0.0 eller senare installerad. Kör Get-Module -ListAvailable Az för att hitta versionen. Om du behöver uppgradera kan du läsa Install Azure PowerShell module (Installera Azure PowerShell-modul). När du har verifierat PowerShell-versionen kör du Connect-AzAccount för att skapa en anslutning till Azure.

Logga in på Azure

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

Skapa en resursgrupp

Skapa en resursgrupp på någon av de tillgängliga platserna.

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

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

Skapa ett självsignerat certifikat

För produktionsanvändning bör du importera ett giltigt certifikat som signerats av en betrodd provider. I den här självstudiekursen skapar du ett självsignerat certifikat med New-SelfSignedCertificate. Du kan använda Export-PfxCertificate med det tumavtryck som returnerades och exportera en pfx-fil från certifikatet.

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

Du bör se något som liknar det här resultatet:

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

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

Använd tumavtrycket för att skapa pfx-filen. Ersätt <lösenordet> med ett valfritt lösenord:

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

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

Skapa ett virtuellt nätverk

Skapa ett virtuellt nätverk med ett dedikerat undernät för en programgateway för automatisk skalning. För närvarande kan endast en programgateway för automatisk skalning distribueras i varje dedikerat undernät.

#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

Skapa en reserverad offentlig IP-adress

Ange allokeringsmetoden publicIPAddress som statisk. En VIP för en autoskalande applikationsgateway kan endast vara statisk. Dynamiska IP-adresser stöds inte. Endast standard-SKU:n PublicIpAddress stöds.

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

Hämta information

Hämta information om resursgruppen, undernätet och IP-adressen i ett lokalt objekt för att skapa IP-konfigurationsinformationen för programgatewayen.

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

Skapa webbappar

Konfigurera två webbappar för backend-poolen. Ersätt <site1-name> och <site2-name> med unika namn i domänen 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

Konfigurera infrastrukturen

Konfigurera IP-konfigurationen, frontend-IP-konfigurationen, backendpoolen, HTTP-inställningarna, certifikatet, porten, lyssnaren och regeln i samma format som den befintliga standardapplikationsgatewayen. Den nya SKU:n följer samma objektmodell som standard-SKU:n.

Ersätt dina två FQDN för webbappar (till exempel: mywebapp.azurewebsites.net) i $pool variabeldefinition.

$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

Ange automatiskt skalning

Nu kan du ange autoskalningskonfigurationen för programgatewayen.

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

I det här läget skalas programgatewayen automatiskt baserat på programmets trafikmönster.

Skapa programgatewayen

Skapa tillämpningsgatewayen och inkludera redundanszoner samt autoskalningskonfigurationen.

$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

Testa programgatewayen

Använd Get-AzPublicIPAddress för att hämta den offentliga IP-adressen för programgatewayen. Kopiera den offentliga IP-adressen eller DNS-namnet och klistra sedan in den i webbläsarens adressfält.

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

Rensa resurser

Utforska först de resurser som skapades med programgatewayen. När de inte längre behövs kan du sedan använda Remove-AzResourceGroup kommandot för att ta bort resursgruppen, programgatewayen och alla relaterade resurser.

Remove-AzResourceGroup -Name $rg

Nästa steg