Skapa en programgateway som är värd för flera webbplatser med hjälp av Azure CLI
Du kan använda Azure CLI till att konfigurera ett värdskap för flera webbplatser när du skapar en programgateway. I den här artikeln definierar du serverdelsadresspooler med hjälp av vm-skalningsuppsättningar. Du konfigurerar sedan lyssnare och regler baserat på de domäner du äger för att kontrollera att webbtrafiken anländer till rätt servrar i poolerna. Den här artikeln förutsätter att du äger flera domäner och använder exempel på www.contoso.com och www.fabrikam.com.
I den här artikeln kan du se hur du:
- Konfigurera nätverket
- Skapa en programgateway
- Skapa lyssnare för serverdelen
- Skapa cirkuleringsregler
- Skapa vm-skalningsuppsättningar med serverdelspoolerna
- Skapa en CNAME-post i domänen
Om du vill kan du slutföra den här proceduren med Hjälp av 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 det virtuella nätverket och ett undernät med namnet myAGSubnet med az network vnet create. Du kan sedan lägga till undernätet 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 programgatewayen
Du kan använda az network application-gateway create till att skapa programgatewayen. 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_v2 \
--http-settings-cookie-based-affinity Disabled \
--frontend-port 80 \
--http-settings-port 80 \
--http-settings-protocol Http \
--public-ip-address myAGPublicIPAddress \
--priority 10
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 serverdelspoolerna
Lägg till de serverdelspooler som ska innehålla serverdelsservrarna med az network application-gateway address-pool create
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name contosoPool
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name fabrikamPool
Lägga till lyssnare
Lägg till lyssnare som behövs för att dirigera trafik med az network application-gateway http-listener create.
Kommentar
Med Application Gateway eller WAF v2 SKU kan du även konfigurera upp till 5 värdnamn per lyssnare och du kan använda jokertecken i värdnamnet. Mer information finns i värdnamn med jokertecken i lyssnaren .
Om du vill använda flera värdnamn och jokertecken i en lyssnare med Hjälp av --host-name
Azure CLI måste du använda --host-names
i stället för . Med värdnamn kan du nämna upp till fem värdnamn som blankstegsavgränsade värden. Till exempel --host-names "*.contoso.com *.fabrikam.com"
az network application-gateway http-listener create \
--name contosoListener \
--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 fabrikamListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port appGatewayFrontendPort \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway \
--host-name www.fabrikam.com
Lägga till routningsregler
Regler bearbetas i den ordning de visas om fältet regelprioritet inte används. Trafiken dirigeras med den första regeln som matchar oavsett specificitet. 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 när du distribuerade programgatewayen. Du kan lägga till regeln med az network application-gateway rule create.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name contosoRule \
--resource-group myResourceGroupAG \
--http-listener contosoListener \
--rule-type Basic \
--address-pool contosoPool \
--priority 200
az network application-gateway rule create \
--gateway-name myAppGateway \
--name fabrikamRule \
--resource-group myResourceGroupAG \
--http-listener fabrikamListener \
--rule-type Basic \
--address-pool fabrikamPool \
--priority 100
az network application-gateway rule delete \
--gateway-name myAppGateway \
--name rule1 \
--resource-group myResourceGroupAG
Lägga till prioritet för routningsregler
För att säkerställa att mer specifika regler bearbetas först använder du fältet regelprioritet för att säkerställa att de har högre prioritet. Fältet Regelprioritet måste anges för alla befintliga routningsregler för begäranden och alla nya regler som skapas senare måste också ha ett regelprioritetsvärde.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name contosoRule \
--resource-group myResourceGroupAG \
--http-listener contosoListener \
--rule-type Basic \
--priority 200 \
--address-pool contosoPool
az network application-gateway rule create \
--gateway-name myAppGateway \
--name fabrikamRule \
--resource-group myResourceGroupAG \
--http-listener fabrikamListener \
--rule-type Basic \
--priority 100 \
--address-pool fabrikamPool
Skapa vm-skalningsuppsättningar
I det här exemplet skapar du tre vm-skalningsuppsättningar som stöder de tre serverdelspoolerna i programgatewayen. Skalningsuppsättningarna du skapar har namnen myvmss1, myvmss2 och myvmss3. Varje skalningsuppsättning innehåller två virtuella datorinstanser där du installerar IIS.
for i in `seq 1 2`; do
if [ $i -eq 1 ]
then
poolName="contosoPool"
fi
if [ $i -eq 2 ]
then
poolName="fabrikamPool"
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_D1_v2 \
--upgrade-policy-mode Automatic \
--app-gateway myAppGateway \
--backend-pool-name $poolName
done
Installera NGINX
for i in `seq 1 2`; 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
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.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [dnsSettings.fqdn] \
--output tsv
Användning av A-poster rekommenderas inte eftersom VIP kan ändras när programgatewayen startas om.
Testa programgatewayen
Ange domännamnet i adressfältet i webbläsaren. Som http://www.contoso.com.
Om du ändrar adressen till din andra domän bör du se något som liknar följande exempel:
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 webbadressbaserade routningsregler