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.
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 att optimera deras upplevelse är genom att dirigera olika typer av webbtrafik 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å URL:en.
I den här artikeln lär du dig att:
- Skapa en resursgrupp för de nätverksresurser du behöver
- Skapa nätverksresurserna
- Skapa en programgateway för trafiken som kommer från ditt program
- Ange serverpooler och routningsregler 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 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 på Windows eller macOS, överväg att köra Azure CLI i en Docker-container. För mer information, se Hur man kör 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. För att slutföra autentiseringsprocessen, följ stegen som visas i din terminal. Andra inloggningsalternativ finns i Autentisera till Azure med Azure CLI.
När du blir uppmanad, installera Azure CLI-tillägget vid första användning. Mer information om tillägg finns i Använda och hantera tillägg med Azure CLI.
Kör az version för att ta reda på 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 med namnet myVNet och undernätet med namnet myAGSubnet med .az network vnet create
Lägg sedan till ett undernät med namnet myBackendSubnet som behövs för backend-servrarna med hjälp av az network vnet subnet create
. Skapa den offentliga IP-adressen myAGPublicIPAddress med hjälp av 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 appgatewayen med en URL-karta
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:
Egenskap | Beskrivning |
---|---|
app Gateway Bakgrundspool | En applikationsgateway måste ha minst en backend-adresspool. |
AppGatewayBackendHTTP-inställningar | 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 | Standardroutningsregeln som är associerad med appGatewayHttpListener. |
Lägg till bild- och videobackenpooler och en port
Lägg till serverdelspooler med namnet imagesBackendPool och videoBackendPool i programgatewayen med hjälp av az network application-gateway address-pool create
. Du lägger till front-end-porten 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 bakgrundslyssnaren med namnet backendListener som behövs för att dirigera trafik genom 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 url-sökvägskarta
Url-sökvägskartor säkerställer att specifika URL:er dirigeras till specifika serverdelspooler. Skapa URL-sökvägskartor med namnet imagePathRule och videoPathRule med hjälp av 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 routningsregel
Routningsregeln associerar URL-mappningarna med lyssnaren som 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 skaleringsuppsättningar för virtuella maskiner
I den här artikeln skapar du tre Virtual Machine Scale Sets (virtuella maskinuppsättningar) som stöder de tre back-end pooler som du redan har skapat. Du skapar skalningsuppsättningar med namnet 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
Om du vill hämta den offentliga IP-adressen för programgatewayen använder du 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
Ä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 din IP-adress för <ip-adress> och du bör se något som liknar följande exempel.
Rensa resurser
När de inte längre behövs tar du bort resursgruppen, programgatewayen och alla relaterade resurser.
az group delete --name myResourceGroupAG