Dela via


Skapa en programgateway med intern omdirigering med hjälp av Azure CLI

Du kan använda Azure CLI för att konfigurera omdirigering av webbtrafik när du skapar en programgateway. I den här självstudien definierar du en serverdelspool med hjälp av en vm-skalningsuppsättning. Sedan konfigurerar du lyssnare och regler baserat på domäner som du äger för att se till att webbtrafiken kommer till rätt pool. Den här självstudien förutsätter att du äger flera domäner och använder exempel på www.contoso.com och www.contoso.org.

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

  • Konfigurera nätverket
  • Skapa en programgateway
  • Lägga till lyssnare och omdirigeringsregel
  • Skapa en VM-skalningsuppsättning med serverdelspoolen
  • Skapa en CNAME-post i domänen

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 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 med namnet myBackendSubnet som behövs av serverdelspoolen med servrar 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

Skapa en programgateway

Du kan använda 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 myAGPublicIPAddress 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_Medium \
  --http-settings-cookie-based-affinity Disabled \
  --frontend-port 80 \
  --http-settings-port 80 \
  --http-settings-protocol Http \
  --public-ip-address myAGPublicIPAddress

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ägga till lyssnare och regler

Du behöver en lyssnare så att programgatewayen kan dirigera trafiken till serverdelspoolen på rätt sätt. I den här självstudien skapar du två lyssnare för de två domänerna. I det här exemplet skapas lyssnare för domänerna för www.contoso.com och www.contoso.org.

Lägg till lyssnarna för serverdelen som ska dirigera trafiken med az network application-gateway http-listener create.

az network application-gateway http-listener create \
  --name contosoComListener \
  --frontend-ip appGatewayFrontendIP \
  --frontend-port appGatewayFrontendPort \
  --resource-group myResourceGroupAG \
  --gateway-name myAppGateway \
  --host-name www.contoso.com
az network application-gateway http-listener create \
  --name contosoOrgListener \
  --frontend-ip appGatewayFrontendIP \
  --frontend-port appGatewayFrontendPort \
  --resource-group myResourceGroupAG \
  --gateway-name myAppGateway \
  --host-name www.contoso.org

Lägg till omdirigeringskonfigurationen

Lägg till omdirigeringskonfigurationen som skickar trafik från www.consoto.org till lyssnaren för www.contoso.com i programgatewayen med az network application-gateway redirect-config create.

az network application-gateway redirect-config create \
  --name orgToCom \
  --gateway-name myAppGateway \
  --resource-group myResourceGroupAG \
  --type Permanent \
  --target-listener contosoListener \
  --include-path true \
  --include-query-string true

Lägga till routningsregler

Regler bearbetas i den ordning de skapas och trafiken dirigeras med den första regeln som matchar URL:en som skickas till programgatewayen. Om du till exempel har en regel med en grundläggande lyssnare och en regel med en lyssnare för flera webbplatser för samma port så måste regeln med lyssnare för flera platser stå innan regeln med den grundläggande lyssnaren om regeln för flera platser ska fungera som förväntat.

I det här exemplet skapar du två nya regler och tar bort standardregeln som skapades. Du kan lägga till regeln med az network application-gateway rule create.

az network application-gateway rule create \
  --gateway-name myAppGateway \
  --name contosoComRule \
  --resource-group myResourceGroupAG \
  --http-listener contosoComListener \
  --rule-type Basic \
  --address-pool appGatewayBackendPool
az network application-gateway rule create \
  --gateway-name myAppGateway \
  --name contosoOrgRule \
  --resource-group myResourceGroupAG \
  --http-listener contosoOrgListener \
  --rule-type Basic \
  --redirect-config orgToCom
az network application-gateway rule delete \
  --gateway-name myAppGateway \
  --name rule1 \
  --resource-group myResourceGroupAG

Skapa VM-skalningsuppsättningar

I det här exemplet skapar du en VM-skalningsuppsättning som stöder serverdelspoolen som du skapade. Skalningsuppsättningen som du skapar heter myvmss och innehåller två virtuella datorinstanser där du installerar NGINX.

az vmss create \
  --name myvmss \
  --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 appGatewayBackendPool

Installera NGINX

Kör det här kommandot i shell-fönstret:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroupAG \
  --vmss-name myvmss \
  --settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"],
  "commandToExecute": "./install_nginx.sh" }'

Skapa en CNAME-post i domänen

När du har skapat programgatewayen med dess offentliga IP-adress kan du hämta DNS-adressen och använda den till att skapa en CNAME-post i domänen. Hämta den DNS-adressen till programgatewayen med az network public-ip show. Kopiera värdet fqdn för DNSSettings och använd det som värde för CNAME-posten du skapar. Du bör inte använda A-poster eftersom den virtuella IP-adressen kan ändras när programgatewayen startas om.

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

Testa programgatewayen

Ange domännamnet i adressfältet i webbläsaren. Som http://www.contoso.com.

Test contoso site in application gateway

Ändra till exempel http://www.contoso.org adressen till din andra domän och du bör se att trafiken har omdirigerats tillbaka till lyssnaren för www.contoso.com.

Nästa steg

I den här självstudiekursen lärde du dig att:

  • Konfigurera nätverket
  • Skapa en programgateway
  • Lägga till lyssnare och omdirigeringsregel
  • Skapa en VM-skalningsuppsättning med serverdelspoolen
  • Skapa en CNAME-post i domänen