Självstudie: Skapa en programgateway med webbadressbaserad omdirigering i Azure CLI
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 självstudien lär du dig att:
- Konfigurera nätverket
- Skapa en programgateway
- 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 en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Förutsättningar
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i 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 Logga in 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 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 undernätet med namnet myBackendSubnet som servrarna i serverdelen behöver med 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 programgateway
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 tillhörande portar
Du kan lägga till adresspoolerna imagesBackendPool och videoBackendPool för programgatewayens serverdel med az network application-gateway address-pool create. Du lägger till klientdelsportar för 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 serverdelslyssnarna backendListener och redirectedListener som ska 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ägga till standardmappning för webbadressen
Url-sökvägskartor kontrollerar att specifika URL:er dirigeras till specifika serverdelspooler. Du kan skapa webbadressmappningarna 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
Konfigurera omdirigering
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ägga till omdirigeringsmappning för adresser
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 VM-skalningsuppsättningar
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