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.
Du kan också slutföra den här snabbstarten med Hjälp av Azure CLI eller Azure-portalen.
Kommentar
Application Gateway-klientdelen har nu stöd för IP-adresser med dubbla staplar (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).
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Azure PowerShell version 1.0.0 eller senare (om du kör Azure PowerShell lokalt).
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. | |
Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. | |
Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. |
Så här använder du Azure Cloud Shell:
Starta Cloud Shell.
Välj knappen Kopiera i ett kodblock (eller kommandoblock) för att kopiera koden eller kommandot.
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.
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. Information om hur du kommer igång finns i Installera Azure PowerShell. 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.
- Skapa undernätskonfigurationerna med .
New-AzVirtualNetworkSubnetConfig
- Skapa det virtuella nätverket med undernätskonfigurationerna med hjälp av
New-AzVirtualNetwork
. - 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
Standard v2 SKU används i det här exemplet.
Skapa IP-konfigurationerna och klientdelsporten
- Använd
New-AzApplicationGatewayIPConfiguration
för att skapa konfigurationen som associerar det undernät som du skapade med programgatewayen. - Använd
New-AzApplicationGatewayFrontendIPConfig
för att skapa konfigurationen som tilldelar den offentliga IP-adress som du tidigare skapade för programgatewayen. - 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
- 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. - 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.
- Skapa en lyssnare med den
New-AzApplicationGatewayHttpListener
klientdelskonfiguration och klientdelsport som du skapade tidigare. - 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:
- Använd
New-AzApplicationGatewaySku
för att ange parametrar för programgatewayen. - 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
Dricks
Du kan ändra värdena för parametrarna Name
och Tier
för att använda en annan SKU. Exempel: Basic
.
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
- Hämta konfigurationen för den nyligen skapade Application Gateway-serverdelspoolen med
Get-AzApplicationGatewayBackendAddressPool
. - Skapa ett nätverksgränssnitt med
New-AzNetworkInterface
. - Skapa en konfiguration av en virtuell dator med
New-AzVMConfig
. - 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:
- Kör
Get-AzPublicIPAddress
för att hämta den offentliga IP-adressen för programgatewayen. - 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
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