Dela via


Dirigera webbtrafik baserat på URL:en med hjälp av Azure CLI

Som IT-administratör som hanterar webbtrafik vill du hjälpa dina kunder och användare att få den information de behöver så snabbt som möjligt. Ett sätt som du kan optimera deras erfarenheter är genom att dirigera olika typer av Internet-trafik till olika serverresurser. Den här artikeln visar hur du använder Azure CLI för att konfigurera Application Gateway-routning för olika typer av trafik från ditt program. Routningen dirigerar sedan trafiken till olika serverpooler baserat på webbadressen.

URL routing example

I den här artikeln kan du se hur du:

  • Skapa en resursgrupp för de nätverksresurser du behöver
  • Skapa nätverksresurserna
  • Skapa en programgateway för trafik som kommer från ditt program
  • Ange serverpooler och hanteringsregler för olika typer av trafik
  • Skapa en skalningsuppsättning för varje pool så att poolen kan skalas automatiskt
  • Kör ett test så att du kan kontrollera att de olika typerna av trafik går till rätt pool

Om du vill kan du slutföra den här proceduren med hjälp av Azure PowerShell eller Azure-portalen.

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

Förutsättningar

  • 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 du distribuerar och hanterar Azure-resurser. 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. Lägg sedan till ett undernät med namnet myBackendSubnet som behövs av serverdelsservrarna 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 App Gateway med en webbadressmappning

Använd az network application-gateway create för 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 myAGPublicIPAddress.

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:

Funktion Description
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.
rule1 Standardhanteringsregel som är associerad med appGatewayHttpListener.

Lägga till serverdelspooler och en port för bilder och video

Lägg till serverdelspoolerna imagesBackendPool och videoBackendPool för programgatewayen med az network application-gateway address-pool create. Du lägger till klientdelsporten för poolerna med hjälp av 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 port8080

Lägga till en serverdelslyssnare

Lägg till serverdelslyssnaren backendListener 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 port8080 \
  --resource-group myResourceGroupAG \
  --gateway-name myAppGateway

Lägga till en webbadressmappning

Med adressmappningar ser du till att specifika webbadresser dirigeras till specifika serverdelspooler. Skapa URL-sökvägsmappningar med namnet 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 myPathMap \
  --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 myPathMap \
  --paths /video/* \
  --address-pool videoBackendPool \
  --http-settings appGatewayBackendHttpSettings

Lägga till en hanteringsregel

Routningsregeln associerar adressmappningarna med den lyssnare du skapade. Lägg till en regel med namnet rule2 med az network application-gateway rule create.

az network application-gateway rule create \
  --gateway-name myAppGateway \
  --name rule2 \
  --resource-group myResourceGroupAG \
  --http-listener backendListener \
  --rule-type PathBasedRouting \
  --url-path-map myPathMap \
  --address-pool appGatewayBackendPool \
  --priority 200

Skapa vm-skalningsuppsättningar

I den här artikeln skapar du tre vm-skalningsuppsättningar som stöder de tre serverdelspooler som du skapade. Skalningsuppsättningarna du skapar har namnen myvmss1, myvmss2 och myvmss3. Varje skalningsuppsättning innehåller två virtuella datorinstanser där du installerar NGINX.

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 azureuser \
    --admin-password Azure123456! \
    --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 eller http://40.121.222.19:8080/video/test.htm.

az network public-ip show \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress \
  --query [ipAddress] \
  --output tsv

Test base URL in application gateway

Ä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:

Test images URL in application gateway

Ä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.

Test video URL in application gateway

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

Nästa steg

Skapa en programgateway med webbadressbaserad omdirigering