Snabbstart: Dirigera webbtrafik med Azure Application Gateway – Azure CLI

I den här snabbstarten använder du Azure CLI för att skapa en programgateway. Sedan testar du den för att se till att den fungerar korrekt.

Programgatewayen dirigerar programwebbtrafik till specifika resurser i en serverdelspool. Du tilldelar lyssnare till portar, skapar regler och lägger till resurser i en serverdelspool. För enkelhetens skull använder den här artikeln en enkel konfiguration med en offentlig IP-adress för klientdelen, en grundläggande lyssnare som värd för en enskild plats på programgatewayen, en grundläggande routningsregel för begäranden och två virtuella datorer i serverdelspoolen.

application gateway resources

Du kan också slutföra den här snabbstarten 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 artikeln 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 resursgrupp

I Azure allokerar du relaterade resurser till en resursgrupp. Skapa en resursgrupp med hjälp az group createav .

I följande exempel skapas en resursgrupp med namnet myResourceGroupAG på platsen eastus.

az group create --name myResourceGroupAG --location eastus

Skapa nätverksresurser

För att Azure ska kunna kommunicera mellan resurserna som du skapar krävs ett virtuellt nätverk. Undernätet för en programgateway kan endast innehålla programgatewayer. Inga andra resurser är tillåtna. Du kan antingen skapa ett nytt undernät för Application Gateway eller använda ett befintligt. I det här exemplet skapar du två undernät: ett för programgatewayen och ett annat för serverdelsservrarna. Du kan konfigurera klientdels-IP-adressen för Application Gateway så att den är offentlig eller privat enligt ditt användningsfall. I det här exemplet väljer du en OFFENTLIG KLIENTDELS-IP-adress.

Kommentar

Application Gateway-klientdelen har nu stöd för IP-adresser med dubbla staplar (offentlig förhandsversion). Nu kan du skapa upp till fyra IP-adresser för klientdelen: två IPv4-adresser (offentliga och privata) och två IPv6-adresser (offentliga och privata).

Om du vill skapa det virtuella nätverket och undernätet använder du az network vnet create. Kör az network public-ip create för att skapa den offentliga IP-adressen.

az network vnet create \
  --name myVNet \
  --resource-group myResourceGroupAG \
  --location eastus \
  --address-prefix 10.21.0.0/16 \
  --subnet-name myAGSubnet \
  --subnet-prefix 10.21.0.0/24
az network vnet subnet create \
  --name myBackendSubnet \
  --resource-group myResourceGroupAG \
  --vnet-name myVNet   \
  --address-prefix 10.21.1.0/24
az network public-ip create \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress \
  --allocation-method Static \
  --sku Standard

Skapa serverdelsservrarna

En serverdel kan ha nätverkskort, VM-skalningsuppsättningar, offentliga IP-adresser, interna IP-adresser, fullständigt kvalificerade domännamn (FQDN) och serverdelar för flera klientorganisationer som Azure App Service. I det här exemplet skapar du två virtuella datorer som ska användas som serverdelsservrar för programgatewayen. Du installerar även NGINX på de virtuella datorerna för att testa programgatewayen.

Skapa två virtuella datorer

Installera NGINX-webbservern på de virtuella datorerna för att verifiera att programgatewayen har skapats. Du kan använda en konfigurationsfil för cloud-init för att installera NGINX och köra en ”Hello World”-Node.js-app på en virtuell Linux-dator. Mer information om cloud-init finns i avsnittet om stöd för cloud-init för virtuella datorer i Azure.

I Azure Cloud Shell kopierar du och klistrar in följande konfiguration i en fil som heter cloud-init.txt. Ange editor cloud-init.txt för att skapa filen.

#cloud-config
package_upgrade: true
packages:
  - nginx
  - nodejs
  - npm
write_files:
  - owner: www-data:www-data
  - path: /etc/nginx/sites-available/default
    content: |
      server {
        listen 80;
        location / {
          proxy_pass http://localhost:3000;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection keep-alive;
          proxy_set_header Host $host;
          proxy_cache_bypass $http_upgrade;
        }
      }
  - owner: azureuser:azureuser
  - path: /home/azureuser/myapp/index.js
    content: |
      var express = require('express')
      var app = express()
      var os = require('os');
      app.get('/', function (req, res) {
        res.send('Hello World from host ' + os.hostname() + '!')
      })
      app.listen(3000, function () {
        console.log('Hello world app listening on port 3000!')
      })
runcmd:
  - service nginx restart
  - cd "/home/azureuser/myapp"
  - npm init
  - npm install express -y
  - nodejs index.js

Skapa nätverksgränssnitten med az network nic create. Om du vill skapa de virtuella datorerna använder az vm createdu .

for i in `seq 1 2`; do
  az network nic create \
    --resource-group myResourceGroupAG \
    --name myNic$i \
    --vnet-name myVNet \
    --subnet myBackendSubnet
  az vm create \
    --resource-group myResourceGroupAG \
    --name myVM$i \
    --nics myNic$i \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --custom-data cloud-init.txt
done

Skapa programgatewayen

Skapa en programgateway med .az network application-gateway create När du skapar en programgateway med Azure CLI anger du konfigurationsinformation såsom kapacitet, SKU och HTTP-inställningar. Azure lägger sedan till de privata IP-adresserna för nätverksgränssnitten som servrar i serverdelspoolen för programgatewayen.

address1=$(az network nic show --name myNic1 --resource-group myResourceGroupAG | grep "\"privateIPAddress\":" | grep -oE '[^ ]+$' | tr -d '",')
address2=$(az network nic show --name myNic2 --resource-group myResourceGroupAG | grep "\"privateIPAddress\":" | grep -oE '[^ ]+$' | tr -d '",')
az network application-gateway create \
  --name myAppGateway \
  --location eastus \
  --resource-group myResourceGroupAG \
  --capacity 2 \
  --sku Standard_v2 \
  --public-ip-address myAGPublicIPAddress \
  --vnet-name myVNet \
  --subnet myAGSubnet \
  --servers "$address1" "$address2" \
  --priority 100

Det kan ta upp till 30 minuter för Azure att skapa programgatewayen. När den har skapats kan du visa följande inställningar i avsnittet Inställningar på sidan Programgateway:

  • appGatewayBackendPool: Finns på sidan Serverdelspooler . Den anger den serverpool som krävs.
  • appGatewayBackendHttp Inställningar: Finns på sidan HTTP-inställningar. Den anger att programgatewayen använder port 80 och HTTP-protokollet för kommunikation.
  • appGatewayHttpListener: Finns på sidan Lyssnare. Den anger den standardlyssnare som är associerad med appGatewayBackendPool.
  • appGatewayFrontendIP: Finns på sidan IP-konfigurationerklientsidan. Den tilldelar myAGPublicIPAddress till appGatewayHttpListener.
  • rule1: Finns på sidan Regler . Den anger den standardroutningsregel som är associerad med appGatewayHttpListener.

Testa programgatewayen

Azure kräver inte en NGINX-webbserver för skapande av programgatewayen, men du installerade det i den här snabbstarten för att kontrollera om Azure lyckades skapa programgatewayen. Om du vill hämta den offentliga IP-adressen för den nya programgatewayen använder du az network public-ip show.

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

Kopiera och klistra in den offentliga IP-adressen i webbläsarens adressfält. ​ Test application gateway

När du uppdaterar webbläsaren bör du se namnet på den andra virtuella datorn. Detta anger att programgatewayen har skapats och kan ansluta till serverdelen.

Rensa resurser

När du inte längre behöver de resurser som du skapade med programgatewayen az group delete använder du kommandot för att ta bort resursgruppen. När du tar bort resursgruppen tar du även bort programgatewayen och alla dess relaterade resurser.

az group delete --name myResourceGroupAG

Nästa steg