Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan använda Azure PowerShell för att konfigurera webbtrafikroutning till specifika skalbara serverpooler baserat på den URL som används för att komma åt ditt program. I den här artikeln skapar du en Azure Application Gateway med tre backendpooler genom att använda Virtual Machine Scale Set. Var och en av serverdelspoolerna har ett specifikt syfte, till exempel vanliga data, bilder och video. Genom att dirigera trafik till separata pooler ser du till att dina kunder får den information de behöver när de behöver den.
För att aktivera trafikroutning skapar du routningsregler som tilldelats lyssnare som lyssnar på specifika portar för att säkerställa att webbtrafiken kommer till lämpliga servrar i poolerna.
I den här artikeln lär du dig att:
- Konfigurera nätverket
- Skapa lyssnare, url-sökvägskarta och regler
- Skapa skalbara back-end-pooler
Om du vill kan du slutföra den här proceduren med hjälp av Azure CLI eller Azure-portalen.
Om du inte har en Azure-prenumeration, skapa ett gratis konto innan du börjar.
Note
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. För att lära dig hur du migrerar till Az PowerShell-modulen, se Migrera Azure PowerShell från AzureRM till Az.
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:
| Option | Example/Link |
|---|---|
| Välj Försök i det övre högra hörnet av kod- eller kommandoblocket. 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 den 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+Skift+V på macOS.
Välj Ange för att köra koden eller kommandot.
Om du väljer att installera och använda PowerShell lokalt kräver den här artikeln Azure PowerShell-modulen version 1.0.0 eller senare. 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). Om du kör PowerShell lokalt måste du också köra Login-AzAccount för att skapa en anslutning till Azure.
På grund av den tid som krävs för att skapa resurser kan det ta upp till 90 minuter att slutföra den här proceduren.
Skapa en resursgrupp
Skapa en resursgrupp som innehåller alla resurser för ditt program.
Skapa en Azure-resursgrupp med New-AzResourceGroup.
New-AzResourceGroup -Name myResourceGroupAG -Location eastus
Skapa nätverksresurser
Oavsett om du har ett befintligt virtuellt nätverk eller skapar ett nytt måste du se till att det innehåller ett undernät som endast används för programgatewayer. I den här artikeln skapar du ett undernät för programgatewayen och ett undernät för skalningsuppsättningarna. Du skapar en offentlig IP-adress för att ge åtkomst till resurserna i programgatewayen.
Skapa undernätskonfigurationerna myAGSubnet och myBackendSubnet med New-AzVirtualNetworkSubnetConfig. Skapa det virtuella nätverket med namnet myVNet med New-AzVirtualNetwork med undernätskonfigurationerna. Och slutligen skapar du den offentliga IP-adressen myAGPublicIPAddress med New-AzPublicIpAddress. De här resurserna används för att ge nätverksanslutning till programgatewayen och tillhörande resurser.
$backendSubnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name myBackendSubnet `
-AddressPrefix 10.0.1.0/24
$agSubnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name myAGSubnet `
-AddressPrefix 10.0.2.0/24
$vnet = New-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Name myVNet `
-AddressPrefix 10.0.0.0/16 `
-Subnet $backendSubnetConfig, $agSubnetConfig
$pip = New-AzPublicIpAddress `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Name myAGPublicIPAddress `
-AllocationMethod Static `
-Sku Standard
Skapa en applikationsgateway
I det här avsnittet skapar du stödresurser för programgatewayen och sedan själva gatewayen. De resurser som du skapar är:
- IP-konfigurationer och klientdelsport – Associerar det undernät som du tidigare skapade till programgatewayen och tilldelar en port som ska användas för att komma åt den.
- Standardpool – alla programgatewayer måste ha minst en serverpool i serverdelen.
- Standardlyssnare och -regel – standardlyssnaren lyssnar efter trafik på den tilldelade porten och standardregeln skickar trafik till standardpoolen.
Skapa IP-konfigurationerna och frontend-porten
Associera den tidigare skapade myAGSubnet till programgatewayen genom att använda New-AzApplicationGatewayIPConfiguration. Tilldela myAGPublicIPAddress till applikationsgatewayn med New-AzApplicationGatewayFrontendIPConfig.
$vnet = Get-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Name myVNet
$subnet=$vnet.Subnets[0]
$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
Skapa standardpoolen och tillhörande inställningar
Skapa standardserverdelspoolen med namnet appGatewayBackendPool för programgatewayen med New-AzApplicationGatewayBackendAddressPool. Konfigurera inställningarna för serverdelspoolen med New-AzApplicationGatewayBackendHttpSetting.
$defaultPool = New-AzApplicationGatewayBackendAddressPool `
-Name appGatewayBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
-Name myPoolSettings `
-Port 80 `
-Protocol Http `
-CookieBasedAffinity Enabled `
-RequestTimeout 120
Skapa standardlyssnare och -regel
Du behöver en lyssnare för att applikationsgatewayen ska kunna dirigera trafiken till backend-poolen på rätt sätt. I den här artikeln skapar du två lyssnare. Den första grundläggande lyssnaren som du skapar lyssnar efter trafik på rot-URL:en. Den andra lyssnaren som du skapar lyssnar efter trafik på specifika URL:er.
Skapa standardlyssnaren myDefaultListener med New-AzApplicationGatewayHttpListener, tillsammans med frontend-konfigurationen och frontend-porten som du skapade tidigare.
En regel krävs för att lyssnaren ska veta vilken backend-pool som ska användas för inkommande trafik. Skapa en grundläggande regel med namnet rule1 med New-AzApplicationGatewayRequestRoutingRule.
$defaultlistener = New-AzApplicationGatewayHttpListener `
-Name myDefaultListener `
-Protocol Http `
-FrontendIPConfiguration $fipconfig `
-FrontendPort $frontendport
$frontendRule = New-AzApplicationGatewayRequestRoutingRule `
-Name rule1 `
-RuleType Basic `
-HttpListener $defaultlistener `
-BackendAddressPool $defaultPool `
-BackendHttpSettings $poolSettings
Skapa programgatewayen
Nu när du har skapat nödvändiga stödresurser anger du parametrar för programgatewayen med namnet myAppGateway med New-AzApplicationGatewaySku och skapar den sedan med New-AzApplicationGateway.
$sku = New-AzApplicationGatewaySku `
-Name Standard_v2 `
-Tier Standard_v2 `
-Capacity 2
$appgw = New-AzApplicationGateway `
-Name myAppGateway `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-BackendAddressPools $defaultPool `
-BackendHttpSettingsCollection $poolSettings `
-FrontendIpConfigurations $fipconfig `
-GatewayIpConfigurations $gipconfig `
-FrontendPorts $frontendport `
-HttpListeners $defaultlistener `
-RequestRoutingRules $frontendRule `
-Sku $sku
Det kan ta upp till 30 minuter att skapa programgatewayen. Vänta tills distributionen har slutförts framgångsrikt innan du går vidare till nästa avsnitt.
Nu har du en programgateway som lyssnar efter trafik på port 80 och skickar trafiken till en standardserverpool.
Lägga till pooler och portar för bild- och videobackend
Lägg till serverdelspooler med namnen imagesBackendPool och videoBackendPool till din programgateway med hjälp av Add-AzApplicationGatewayBackendAddressPool. Lägg till frontend-porten för poolerna med Add-AzApplicationGatewayFrontendPort. Skicka ändringarna till programgatewayen med Set-AzApplicationGateway.
$appgw = Get-AzApplicationGateway `
-ResourceGroupName myResourceGroupAG `
-Name myAppGateway
Add-AzApplicationGatewayBackendAddressPool `
-ApplicationGateway $appgw `
-Name imagesBackendPool
Add-AzApplicationGatewayBackendAddressPool `
-ApplicationGateway $appgw `
-Name videoBackendPool
Add-AzApplicationGatewayFrontendPort `
-ApplicationGateway $appgw `
-Name bport `
-Port 8080
Set-AzApplicationGateway -ApplicationGateway $appgw
Det kan också ta upp till 20 minuter att uppdatera programgatewayen.
Lägg till backend-lyssnare
Lägg till serverdelslyssnaren med namnet backendListener som behövs för att dirigera trafik genom att använda Add-AzApplicationGatewayHttpListener.
$appgw = Get-AzApplicationGateway `
-ResourceGroupName myResourceGroupAG `
-Name myAppGateway
$backendPort = Get-AzApplicationGatewayFrontendPort `
-ApplicationGateway $appgw `
-Name bport
$fipconfig = Get-AzApplicationGatewayFrontendIPConfig `
-ApplicationGateway $appgw
Add-AzApplicationGatewayHttpListener `
-ApplicationGateway $appgw `
-Name backendListener `
-Protocol Http `
-FrontendIPConfiguration $fipconfig `
-FrontendPort $backendPort
Set-AzApplicationGateway -ApplicationGateway $appgw
Lägg till url-sökvägskarta
Url-sökvägskartor kontrollerar att url:erna som skickas till ditt program dirigeras till specifika serverdelspooler. Skapa URL-sökvägskartor med namnet imagePathRule och videoPathRule med New-AzApplicationGatewayPathRuleConfig och Add-AzApplicationGatewayUrlPathMapConfig.
$appgw = Get-AzApplicationGateway `
-ResourceGroupName myResourceGroupAG `
-Name myAppGateway
$poolSettings = Get-AzApplicationGatewayBackendHttpSetting `
-ApplicationGateway $appgw `
-Name myPoolSettings
$imagePool = Get-AzApplicationGatewayBackendAddressPool `
-ApplicationGateway $appgw `
-Name imagesBackendPool
$videoPool = Get-AzApplicationGatewayBackendAddressPool `
-ApplicationGateway $appgw `
-Name videoBackendPool
$defaultPool = Get-AzApplicationGatewayBackendAddressPool `
-ApplicationGateway $appgw `
-Name appGatewayBackendPool
$imagePathRule = New-AzApplicationGatewayPathRuleConfig `
-Name imagePathRule `
-Paths "/images/*" `
-BackendAddressPool $imagePool `
-BackendHttpSettings $poolSettings
$videoPathRule = New-AzApplicationGatewayPathRuleConfig `
-Name videoPathRule `
-Paths "/video/*" `
-BackendAddressPool $videoPool `
-BackendHttpSettings $poolSettings
Add-AzApplicationGatewayUrlPathMapConfig `
-ApplicationGateway $appgw `
-Name urlpathmap `
-PathRules $imagePathRule, $videoPathRule `
-DefaultBackendAddressPool $defaultPool `
-DefaultBackendHttpSettings $poolSettings
Set-AzApplicationGateway -ApplicationGateway $appgw
Lägg till routningsregel
Routningsregeln associerar URL-kartan med lyssnaren som du skapade. Lägg till regeln med namnet rule2 genom Add-AzApplicationGatewayRequestRoutingRule.
$appgw = Get-AzApplicationGateway `
-ResourceGroupName myResourceGroupAG `
-Name myAppGateway
$backendlistener = Get-AzApplicationGatewayHttpListener `
-ApplicationGateway $appgw `
-Name backendListener
$urlPathMap = Get-AzApplicationGatewayUrlPathMapConfig `
-ApplicationGateway $appgw `
-Name urlpathmap
Add-AzApplicationGatewayRequestRoutingRule `
-ApplicationGateway $appgw `
-Name rule2 `
-RuleType PathBasedRouting `
-HttpListener $backendlistener `
-UrlPathMap $urlPathMap
Set-AzApplicationGateway -ApplicationGateway $appgw
Skapa skalningsuppsättningar för virtuella maskiner
I det här exemplet skapar du tre VM-skalningsuppsättningar för de tre serverdelspooler du har skapat. Skalningsuppsättningarna du skapar har namnen myvmss1, myvmss2 och myvmss3. Du tilldelar skalningsuppsättningen till backend-poolen när du konfigurerar IP-inställningarna.
$vnet = Get-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Name myVNet
$appgw = Get-AzApplicationGateway `
-ResourceGroupName myResourceGroupAG `
-Name myAppGateway
$backendPool = Get-AzApplicationGatewayBackendAddressPool `
-Name appGatewayBackendPool `
-ApplicationGateway $appgw
$imagesPool = Get-AzApplicationGatewayBackendAddressPool `
-Name imagesBackendPool `
-ApplicationGateway $appgw
$videoPool = Get-AzApplicationGatewayBackendAddressPool `
-Name videoBackendPool `
-ApplicationGateway $appgw
for ($i=1; $i -le 3; $i++)
{
if ($i -eq 1)
{
$poolId = $backendPool.Id
}
if ($i -eq 2)
{
$poolId = $imagesPool.Id
}
if ($i -eq 3)
{
$poolId = $videoPool.Id
}
$ipConfig = New-AzVmssIpConfig `
-Name myVmssIPConfig$i `
-SubnetId $vnet.Subnets[1].Id `
-ApplicationGatewayBackendAddressPoolsId $poolId
$vmssConfig = New-AzVmssConfig `
-Location eastus `
-SkuCapacity 2 `
-SkuName Standard_DS2_v2 `
-UpgradePolicyMode Automatic
Set-AzVmssStorageProfile $vmssConfig `
-ImageReferencePublisher MicrosoftWindowsServer `
-ImageReferenceOffer WindowsServer `
-ImageReferenceSku 2016-Datacenter `
-ImageReferenceVersion latest `
-OsDiskCreateOption FromImage
Set-AzVmssOsProfile $vmssConfig `
-AdminUsername azureuser `
-AdminPassword "Azure123456!" `
-ComputerNamePrefix myvmss$i
Add-AzVmssNetworkInterfaceConfiguration `
-VirtualMachineScaleSet $vmssConfig `
-Name myVmssNetConfig$i `
-Primary $true `
-IPConfiguration $ipConfig
New-AzVmss `
-ResourceGroupName myResourceGroupAG `
-Name myvmss$i `
-VirtualMachineScaleSet $vmssConfig
}
Installera IIS
Varje skalningsuppsättning innehåller två virtuella datorinstanser där du installerar IIS. En exempelsida skapas för att testa om programgatewayen fungerar.
$publicSettings = @{ "fileUris" = (,"https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/appgatewayurl.ps1");
"commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File appgatewayurl.ps1" }
for ($i=1; $i -le 3; $i++)
{
$vmss = Get-AzVmss -ResourceGroupName myResourceGroupAG -VMScaleSetName myvmss$i
Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
-Name "customScript" `
-Publisher "Microsoft.Compute" `
-Type "CustomScriptExtension" `
-TypeHandlerVersion 1.8 `
-Setting $publicSettings
Update-AzVmss `
-ResourceGroupName myResourceGroupAG `
-Name myvmss$i `
-VirtualMachineScaleSet $vmss
}
Testa programgatewayen
Använd Get-AzPublicIPAddress för att hämta den offentliga IP-adressen för programgatewayen. Kopiera den offentliga IP-adressen och klistra in den i webbläsarens adressfält. Till exempel , http://52.168.55.24http://52.168.55.24:8080/images/test.htm, eller http://52.168.55.24:8080/video/test.htm.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress
Ändra URL:en till http://< ip-address>:8080/images/test.htmoch ersätt DIN IP-adress för <ip-adress> och du bör se något som liknar följande exempel:
Ändra URL:en till http://< ip-address>:8080/video/test.htmoch ersätt din IP-adress för <ip-adress> och du bör se något som liknar följande exempel:
Rensa resurser
När den inte längre behövs tar du bort resursgruppen, programgatewayen och alla relaterade resurser med Remove-AzResourceGroup.
Remove-AzResourceGroup -Name myResourceGroupAG