Snabbstart: Dirigera webbtrafik med Azure Application Gateway med Hjälp av Azure PowerShell

I den här snabbstarten använder du Azure PowerShell för att skapa en programgateway. Sedan testar du den för att se till att den fungerar korrekt.

Programgatewayen dirigerar programwebbtrafik till specifika resurser i en serverdelspool. Du tilldelar lyssnare till portar, skapar regler och lägger till resurser i en serverdelspool. För enkelhetens skull använder den här artikeln en enkel konfiguration med en offentlig IP-adress för klientdelen, en grundläggande lyssnare som värd för en enskild plats på programgatewayen, en grundläggande routningsregel för begäranden och två virtuella datorer i serverdelspoolen.

application gateway resources

Du kan också slutföra den här snabbstarten med Hjälp av Azure CLI eller Azure-portalen.

Förutsättningar

Azure Cloud Shell

Azure är värd för Azure Cloud Shell, en interaktiv gränssnittsmiljö som du kan använda via webbläsaren. Du kan använda antingen Bash eller PowerShell med Cloud Shell för att arbeta med Azure-tjänster. Du kan använda förinstallerade Cloud Shell-kommandon för att köra koden i den här artikeln, utan att behöva installera något i din lokala miljö.

Så här startar du Azure Cloud Shell:

Alternativ Exempel/länk
Välj Prova i det övre högra hörnet i en kod eller ett kommandoblock. Om du väljer Prova kopieras inte koden eller kommandot automatiskt till Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. Button to launch Azure Cloud Shell.
Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. Screenshot that shows the Cloud Shell button in the Azure portal

Så här använder du Azure Cloud Shell:

  1. Starta Cloud Shell.

  2. Välj knappen Kopiera i ett kodblock (eller kommandoblock) för att kopiera koden eller kommandot.

  3. Klistra in koden eller kommandot i Cloud Shell-sessionen genom att välja Ctrl+Skift+V i Windows och Linux, eller genom att välja Cmd+Shift+V på macOS.

  4. Välj Retur för att köra koden eller kommandot.

Kommentar

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 artikeln om att migrera Azure PowerShell från AzureRM till Az.

Ansluta till Azure

Om du vill ansluta till Azure kör du Connect-AzAccount.

Skapa en resursgrupp

I Azure allokerar du relaterade resurser till en resursgrupp. Du kan antingen använda en befintlig resursgrupp eller skapa en ny.

Om du vill skapa en ny resursgrupp använder du cmdleten New-AzResourceGroup :

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

Skapa nätverksresurser

För att Azure ska kunna kommunicera mellan resurserna som du skapar krävs ett virtuellt nätverk. Undernätet för en programgateway kan endast innehålla programgatewayer. Inga andra resurser är tillåtna. Du kan antingen skapa ett nytt undernät för Application Gateway eller använda ett befintligt. Du skapar två undernät i det här exemplet: ett för programgatewayen och ett för backend-servrarna. Du kan konfigurera klientdels-IP-adressen för Application Gateway så att den är offentlig eller privat enligt ditt användningsfall. I det här exemplet väljer du en OFFENTLIG KLIENTDELS-IP-adress.

  1. Skapa undernätskonfigurationerna med .New-AzVirtualNetworkSubnetConfig
  2. Skapa det virtuella nätverket med undernätskonfigurationerna med hjälp av New-AzVirtualNetwork.
  3. Skapa den offentliga IP-adressen med .New-AzPublicIpAddress

Kommentar

Principer för tjänstslutpunkter för virtuella nätverk stöds för närvarande inte i ett Application Gateway-undernät.

$agSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myAGSubnet `
  -AddressPrefix 10.21.0.0/24
$backendSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myBackendSubnet `
  -AddressPrefix 10.21.1.0/24
New-AzVirtualNetwork `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myVNet `
  -AddressPrefix 10.21.0.0/16 `
  -Subnet $agSubnetConfig, $backendSubnetConfig
New-AzPublicIpAddress `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myAGPublicIPAddress `
  -AllocationMethod Static `
  -Sku Standard

Skapa en programgateway

Skapa IP-konfigurationerna och klientdelsporten

  1. Använd New-AzApplicationGatewayIPConfiguration för att skapa konfigurationen som associerar det undernät som du skapade med programgatewayen.
  2. Använd New-AzApplicationGatewayFrontendIPConfig för att skapa konfigurationen som tilldelar den offentliga IP-adress som du tidigare skapade för programgatewayen.
  3. Använd New-AzApplicationGatewayFrontendPort för att tilldela port 80 för åtkomst till programgatewayen.
$vnet   = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myAGSubnet
$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

Kommentar

Application Gateway-klientdelen har nu stöd för IP-adresser med dubbla staplar (offentlig förhandsversion). Nu kan du skapa upp till fyra IP-adresser för klientdelen: två IPv4-adresser (offentliga och privata) och två IPv6-adresser (offentliga och privata).

Skapa serverdelspoolen

  1. Använd New-AzApplicationGatewayBackendAddressPool för att skapa serverdelspoolen för programgatewayen. Serverdelspoolen är tom för tillfället. När du skapar serverdelsserverns nätverkskort i nästa avsnitt lägger du till dem i serverdelspoolen.
  2. Konfigurera inställningarna för serverdelspoolen med New-AzApplicationGatewayBackendHttpSetting.
$backendPool = New-AzApplicationGatewayBackendAddressPool `
  -Name myAGBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
  -Name myPoolSettings `
  -Port 80 `
  -Protocol Http `
  -CookieBasedAffinity Enabled `
  -RequestTimeout 30

Skapa lyssnaren och lägga till en regel

Azure kräver att en lyssnare aktiverar programgatewayen för korrekt dirigering av trafiken till serverdelspoolen. Azure kräver även en regel för att lyssnaren ska veta vilken serverdelspool som ska användas för inkommande trafik.

  1. Skapa en lyssnare med den New-AzApplicationGatewayHttpListener klientdelskonfiguration och klientdelsport som du skapade tidigare.
  2. Använd New-AzApplicationGatewayRequestRoutingRule för att skapa en regel med namnet rule1.
$defaultlistener = New-AzApplicationGatewayHttpListener `
  -Name myAGListener `
  -Protocol Http `
  -FrontendIPConfiguration $fipconfig `
  -FrontendPort $frontendport
$frontendRule = New-AzApplicationGatewayRequestRoutingRule `
  -Name rule1 `
  -RuleType Basic `
  -Priority 100 `
  -HttpListener $defaultlistener `
  -BackendAddressPool $backendPool `
  -BackendHttpSettings $poolSettings

Skapa programgatewayen

Nu när du har skapat de nödvändiga stödresurserna skapar du programgatewayen:

  1. Använd New-AzApplicationGatewaySku för att ange parametrar för programgatewayen.
  2. Använd New-AzApplicationGateway för att skapa programgatewayen.
$sku = New-AzApplicationGatewaySku `
  -Name Standard_v2 `
  -Tier Standard_v2 `
  -Capacity 2
New-AzApplicationGateway `
  -Name myAppGateway `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -BackendAddressPools $backendPool `
  -BackendHttpSettingsCollection $poolSettings `
  -FrontendIpConfigurations $fipconfig `
  -GatewayIpConfigurations $gipconfig `
  -FrontendPorts $frontendport `
  -HttpListeners $defaultlistener `
  -RequestRoutingRules $frontendRule `
  -Sku $sku

Serverdelsservrar

Nu när du har skapat Application Gateway skapar du de virtuella serverdelsdatorerna som ska vara värdar för webbplatserna. En serverdel kan bestå av nätverkskort, vm-skalningsuppsättningar, offentlig IP-adress, intern IP-adress, fullständigt kvalificerade domännamn (FQDN) och serverdelar för flera klientorganisationer som Azure App Service.

I det här exemplet skapar du två virtuella datorer som ska användas som serverdelsservrar för programgatewayen. Du installerar även IIS på de virtuella datorerna för att verifiera att Azure har skapat programgatewayen.

Skapa två virtuella datorer

  1. Hämta konfigurationen för den nyligen skapade Application Gateway-serverdelspoolen med Get-AzApplicationGatewayBackendAddressPool.
  2. Skapa ett nätverksgränssnitt med New-AzNetworkInterface.
  3. Skapa en konfiguration av en virtuell dator med New-AzVMConfig.
  4. Skapa den virtuella datorn med New-AzVM.

När du kör följande kodexempel för att skapa virtuella datorer uppmanas du av Azure att ange autentiseringsuppgifter. Ange ett användarnamn och ett lösenord:

$appgw = Get-AzApplicationGateway -ResourceGroupName myResourceGroupAG -Name myAppGateway
$backendPool = Get-AzApplicationGatewayBackendAddressPool -Name myAGBackendPool -ApplicationGateway $appgw
$vnet   = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myBackendSubnet
$cred = Get-Credential
for ($i=1; $i -le 2; $i++)
{
  $nic = New-AzNetworkInterface `
    -Name myNic$i `
    -ResourceGroupName myResourceGroupAG `
    -Location EastUS `
    -Subnet $subnet `
    -ApplicationGatewayBackendAddressPool $backendpool
  $vm = New-AzVMConfig `
    -VMName myVM$i `
    -VMSize Standard_DS2_v2
  Set-AzVMOperatingSystem `
    -VM $vm `
    -Windows `
    -ComputerName myVM$i `
    -Credential $cred
  Set-AzVMSourceImage `
    -VM $vm `
    -PublisherName MicrosoftWindowsServer `
    -Offer WindowsServer `
    -Skus 2016-Datacenter `
    -Version latest
  Add-AzVMNetworkInterface `
    -VM $vm `
    -Id $nic.Id
  Set-AzVMBootDiagnostic `
    -VM $vm `
    -Disable
  New-AzVM -ResourceGroupName myResourceGroupAG -Location EastUS -VM $vm
  Set-AzVMExtension `
    -ResourceGroupName myResourceGroupAG `
    -ExtensionName IIS `
    -VMName myVM$i `
    -Publisher Microsoft.Compute `
    -ExtensionType CustomScriptExtension `
    -TypeHandlerVersion 1.4 `
    -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
    -Location EastUS
}

Testa programgatewayen

Även om IIS inte krävs för att skapa programgatewayen installerade du den i den här snabbstarten för att kontrollera om Azure har skapat programgatewayen.

Använd IIS för att testa programgatewayen:

  1. Kör Get-AzPublicIPAddress för att hämta den offentliga IP-adressen för programgatewayen.
  2. Kopiera och klistra in den offentliga IP-adressen i webbläsarens adressfält. När du uppdaterar webbläsaren bör du se namnet på den virtuella datorn. Ett giltigt svar verifierar att programgatewayen har skapats och att den kan ansluta till serverdelen.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress

Test application gateway

Rensa resurser

När du inte längre behöver de resurser som du skapade med programgatewayen tar du bort resursgruppen. När du tar bort resursgruppen tar du även bort programgatewayen och alla dess relaterade resurser.

Om du vill ta bort resursgruppen anropar du cmdleten Remove-AzResourceGroup :

Remove-AzResourceGroup -Name myResourceGroupAG

Nästa steg