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.
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
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 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.
Kommentar
Application Gateway-klientdelen har nu stöd för IP-adresser med dubbla staplar (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).
Skapa resursgrupp
I Azure allokerar du relaterade resurser till en resursgrupp. Skapa en resursgrupp med hjälp az group create
av .
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 create
du .
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, till exempel kapacitet, SKU (till exempel: Basic
) 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.
Standard v2 SKU används i det här exemplet.
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.
- appGatewayBackendHttpSettings: 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-konfigurationer på klientsidan. 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.
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