Anteckning
Å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 CLI till att konfigurera webbadressbaserade routningsregler när du skapar en programgateway. I den här självstudien skapar du serverdelspooler med VM-skalningsuppsättningar. Sedan skapar du routningsregler som ser till att webbtrafiken dirigeras till rätt serverdelspool.
I den här handledningen lär du dig:
- Konfigurera nätverket
- Skapa en applikationsgateway
- Lägga till lyssnare och routningsregler
- Skapa VM-skalningsuppsättningar för serverdelspooler
I följande exempel visas hur trafiken kommer från portarna 8080 och 8081 och dirigeras till samma serverdelspooler:
Om du vill kan du utföra den här självstudien med Azure PowerShell.
Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.
Förutsättningar
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Kom igång med Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Autentisera till Azure med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda och hantera tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
- Den här självstudien kräver version 2.0.4 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.
Skapa en resursgrupp
En resursgrupp är en logisk container där Azure-resurser distribueras och hanteras. Skapa en resursgrupp med az group create.
I följande exempel skapas en resursgrupp med namnet myResourceGroupAG på platsen eastus.
az group create --name myResourceGroupAG --location eastus
Skapa nätverksresurser
Skapa ett virtuellt nätverk med namnet myVNet och ett undernät med namnet myAGSubnet med az network vnet create. Du kan sedan lägga till det undernät som heter myBackendSubnet och som backendservrarna behöver, med hjälp av az network vnet subnet create. Skapa den offentliga IP-adressen med namnet myAGPublicIPAddress med az network public-ip create.
az network vnet create \
--name myVNet \
--resource-group myResourceGroupAG \
--location eastus \
--address-prefix 10.0.0.0/16 \
--subnet-name myAGSubnet \
--subnet-prefix 10.0.1.0/24
az network vnet subnet create \
--name myBackendSubnet \
--resource-group myResourceGroupAG \
--vnet-name myVNet \
--address-prefix 10.0.2.0/24
az network public-ip create \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--allocation-method Static \
--sku Standard
Skapa en applikationsgateway
Använd az network application-gateway create till att skapa en programgateway med namnet myAppGateway. När du skapar en programgateway med hjälp av Azure CLI anger du konfigurationsinformation, till exempel kapacitet, sku och HTTP-inställningar. Programgatewayen tilldelas till myAGSubnet och myPublicIPAddress som du skapade tidigare.
az network application-gateway create \
--name myAppGateway \
--location eastus \
--resource-group myResourceGroupAG \
--vnet-name myVNet \
--subnet myAGsubnet \
--capacity 2 \
--sku Standard_v2 \
--http-settings-cookie-based-affinity Disabled \
--frontend-port 80 \
--http-settings-port 80 \
--http-settings-protocol Http \
--public-ip-address myAGPublicIPAddress \
--priority 100
Det kan ta flera minuter att skapa programgatewayen. När programgatewayen har skapats ser du de här nya funktionerna:
- appGatewayBackendPool – en programgateway måste ha minst en serverdelsadresspool.
- appGatewayBackendHttpSettings – anger att port 80 och ett HTTP-protokoll används för kommunikation.
- appGatewayHttpListener – standardlyssnaren som är associerad med appGatewayBackendPool.
- appGatewayFrontendIP – tilldelar myAGPublicIPAddress till appGatewayHttpListener.
- regel 1 – standardroutningsregel som är associerad med appGatewayHttpListener.
Lägg till serverdelspooler och portar
Du kan lägga till backend-adresspoolerna imagesBackendPool och videoBackendPool till din applikations-gateway genom att använda az network application-gateway address-pool create. Du lägger till frontend-portar till poolerna med az network application-gateway frontend-port create.
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name imagesBackendPool
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name videoBackendPool
az network application-gateway frontend-port create \
--port 8080 \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name bport
az network application-gateway frontend-port create \
--port 8081 \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name rport
Lägga till lyssnare och regler
Lägga till lyssnare
Lägg till backend-lyssnarna backendListener och redirectedListener som behövs för att dirigera trafiken med az network application-gateway http-listener create.
az network application-gateway http-listener create \
--name backendListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port bport \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway
az network application-gateway http-listener create \
--name redirectedListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port rport \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway
Lägg till standardkartan för URL-sökväg
Url-sökvägskartor kontrollerar att specifika URL:er dirigeras till specifika serverdelspooler. Du kan skapa URL-sökvägsmapparna imagePathRule och videoPathRule med az network application-gateway url-path-map create och az network application-gateway url-path-map rule create
az network application-gateway url-path-map create \
--gateway-name myAppGateway \
--name urlpathmap \
--paths /images/* \
--resource-group myResourceGroupAG \
--address-pool imagesBackendPool \
--default-address-pool appGatewayBackendPool \
--default-http-settings appGatewayBackendHttpSettings \
--http-settings appGatewayBackendHttpSettings \
--rule-name imagePathRule
az network application-gateway url-path-map rule create \
--gateway-name myAppGateway \
--name videoPathRule \
--resource-group myResourceGroupAG \
--path-map-name urlpathmap \
--paths /video/* \
--address-pool videoBackendPool
Lägg till omdirigeringskonfiguration
Du kan konfigurera omdirigering för lyssnaren med az network application-gateway redirect-config create.
az network application-gateway redirect-config create \
--gateway-name myAppGateway \
--name redirectConfig \
--resource-group myResourceGroupAG \
--type Found \
--include-path true \
--include-query-string true \
--target-listener backendListener
Lägg till omdirigeringsmappning för URL-sökvägar
az network application-gateway url-path-map create \
--gateway-name myAppGateway \
--name redirectpathmap \
--paths /images/* \
--resource-group myResourceGroupAG \
--redirect-config redirectConfig \
--rule-name redirectPathRule
Lägga till routningsregler
Routningsreglerna associerar adressmappningarna med de lyssnare du har skapat. Du kan lägga till regler med namnen defaultRule och redirectedRule med az network application-gateway rule create.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name defaultRule \
--resource-group myResourceGroupAG \
--http-listener backendListener \
--rule-type PathBasedRouting \
--url-path-map urlpathmap \
--address-pool appGatewayBackendPool \
--priority 100
az network application-gateway rule create \
--gateway-name myAppGateway \
--name redirectedRule \
--resource-group myResourceGroupAG \
--http-listener redirectedListener \
--rule-type PathBasedRouting \
--url-path-map redirectpathmap \
--address-pool appGatewayBackendPool \
--priority 100
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. Varje skalningsuppsättning innehåller två virtuella datorinstanser där du installerar NGINX.
Ersätt <azure-användare> och <lösenord> med valfritt användarnamn och lösenord.
for i in `seq 1 3`; do
if [ $i -eq 1 ]
then
poolName="appGatewayBackendPool"
fi
if [ $i -eq 2 ]
then
poolName="imagesBackendPool"
fi
if [ $i -eq 3 ]
then
poolName="videoBackendPool"
fi
az vmss create \
--name myvmss$i \
--resource-group myResourceGroupAG \
--image Ubuntu2204 \
--admin-username <azure-user> \
--admin-password <password> \
--instance-count 2 \
--vnet-name myVNet \
--subnet myBackendSubnet \
--vm-sku Standard_DS2 \
--upgrade-policy-mode Automatic \
--app-gateway myAppGateway \
--backend-pool-name $poolName
done
Installera NGINX
for i in `seq 1 3`; do
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroupAG \
--vmss-name myvmss$i \
--settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"], "commandToExecute": "./install_nginx.sh" }'
done
Testa programgatewayen
Hämta den offentliga IP-adressen för programgatewayen med az network public-ip show. Kopiera den offentliga IP-adressen och klistra in den i webbläsarens adressfält. Till exempel http://40.121.222.19, http://40.121.222.19:8080/images/test.htm, http://40.121.222.19:8080/video/test.htm eller http://40.121.222.19:8081/images/test.htm.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
Ändra URL:en till http://< ip-address>:8080/images/test.html, 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.html, ersätt IP-adressen för <ip-adress> och du bör se något som liknar följande exempel:
Ändra nu URL:en till http://< ip-address>:8081/images/test.htm, ersätta ip-adressen för <ip-adress>, och du bör se trafik omdirigerad tillbaka till serverdelspoolen för bilder på http://< ip-address>:8080/images.
Rensa resurser
När du inte behöver dem längre tar du bort resursgruppen, programgatewayen och alla relaterade resurser.
az group delete --name myResourceGroupAG