Snelstart: webverkeer omleiden met Azure Application Gateway - Azure CLI
In deze quickstart gebruikt u Azure CLI om een toepassingsgateway te maken. Vervolgens test u de toepassing om te controleren of alles correct werkt.
De toepassingsgateway stuurt webverkeer van toepassingen naar specifieke resources in een back-endpool. U wijst listeners toe aan poorten, maakt regels en voegt resources toe aan een back-endpool. Ter vereenvoudiging gebruikt dit artikel een eenvoudige installatie met een openbaar front-end-IP-adres, een basislistener voor het hosten van één site op de toepassingsgateway, een eenvoudige regel voor aanvraagroutering en twee virtuele machines in de back-endpool.
U kunt deze quickstart ook uitvoeren met Azure PowerShell of Azure Portal.
Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
Vereisten
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
- Voor dit artikel is versie 2.0.4 of hoger van Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.
Notitie
Application Gateway-front-end ondersteunt nu IP-adressen met dubbele stack (preview). U kunt nu maximaal vier front-end-IP-adressen maken: twee IPv4-adressen (openbaar en privé) en twee IPv6-adressen (openbaar en privé).
Resourcegroep maken
In Azure kunt u verwante resources toewijzen aan een resourcegroep. Maak een resourcegroep met behulp van az group create
.
In het volgende voorbeeld wordt de resourcegroep myResourceGroupAG gemaakt op de locatie eastus.
az group create --name myResourceGroupAG --location eastus
Netwerkbronnen maken
Er is een virtueel netwerk nodig voor communicatie tussen de resources die u maakt. Het subnet van de toepassingsgateway kan alleen bestaan uit toepassingsgateways. Andere resources zijn niet toegestaan. U kunt een nieuw subnet maken voor Application Gateway of een bestaand subnet gebruiken. In dit voorbeeld maakt u twee subnetten: één voor de toepassingsgateway en één voor de back-endservers. Afhankelijk van uw toepassing kunt u het IP-adres voor de front-end van de toepassingsgateway als openbaar of privé configureren. In dit voorbeeld kiest u voor een openbaar IP-adres voor de front-end.
Notitie
Application Gateway-front-end ondersteunt nu DUBBELE IP-adressen (openbare preview). U kunt nu maximaal vier front-end-IP-adressen maken: twee IPv4-adressen (openbaar en privé) en twee IPv6-adressen (openbaar en privé).
Gebruik az network vnet create
om het virtuele netwerk en subnet te maken. Voer az network public-ip create
uit om het openbare IP-adres te maken.
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
De back-endservers maken
Een back-end kan NIC's, virtuele-machineschaalsets, openbare IP-adressen, interne IP-adressen, FQDN-namen (Fully Qualified Domain Names) en multitenant back-ends zoals Azure-app Service hebben. In dit voorbeeld maakt u twee virtuele machines die worden gebruikt als back-endservers voor de toepassingsgateway. U installeert NGINX ook op de virtuele machines om de toepassingsgateway te testen.
Twee virtuele machines maken
Installeer de NGINX-webserver op de virtuele machines om te controleren of de toepassingsgateway is gemaakt. U kunt een cloud-init-configuratiebestand maken om NGINX te installeren en een 'Hallo wereld' Node.js-app uit te voeren op een virtuele Linux-machine. Zie Cloud-init-ondersteuning voor virtuele machines in Azure voor meer informatie over cloud-init.
Kopieer in uw Azure Cloud Shell de volgende configuratie en plak deze in een bestand met de naam cloud-init.txt. Voer editor cloud-init.txt in om het bestand te maken.
#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
Maak de netwerkinterfaces met az network nic create
. Voor het maken van de virtuele machines gebruikt u az vm create
.
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
De toepassingsgateway maken
Maak een toepassingsgateway met az network application-gateway create
. Wanneer u een toepassingsgateway maakt met de Azure CLI, geeft u configuratiegegevens op, zoals capaciteit, SKU (bijvoorbeeld: Basic
) en HTTP-instellingen. Azure voegt dan de privé-IP-adressen van de netwerkinterfaces toe als servers in de back-endpool van de toepassingsgateway.
De Standard v2-SKU wordt in dit voorbeeld gebruikt.
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
Het kan tot 30 minuten duren om de toepassingsgateway te maken in Azure. Wanneer deze is gemaakt, kunt u de volgende instellingen bekijken in het gedeelte Instellingen van de pagina Toepassingsgateway:
- appGatewayBackendPool: bevindt zich op de pagina Back-endpools . Hier is te zien wat de vereiste back-endpool is.
- appGatewayBackendHttpSettings: bevindt zich op de pagina HTTP-instellingen . Hier wordt aangegeven dat de toepassingsgateway voor communicatie gebruikmaakt van poort 80 en het HTTP-protocol.
- appGatewayHttpListener: bevindt zich op de pagina Listeners. Hier staat wat de standaard-listener is die aan appGatewayBackendPool is gekoppeld.
- appGatewayFrontendIP: bevindt zich op de pagina front-end-IP-configuraties . Hiermee wordt myAGPublicIPAddress aan appGatewayHttpListener toegewezen.
- rule1: Bevindt zich op de pagina Regels . Hier wordt aangegeven welke standaardrouteringsregel aan appGatewayHttpListener is gekoppeld.
De toepassingsgateway testen
Het is in Azure niet nodig een NGINX-webserver te installeren om de toepassingsgateway te maken, maar u hebt de server in deze quickstart geïnstalleerd om te controleren of het maken van de toepassingsgateway in Azure is geslaagd. Gebruik az network public-ip show
om het openbare IP-adres van de nieuwe toepassingsgateway op te halen.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
Kopieer het openbare IP-adres en plak het in de adresbalk van de browser.
Als u de browser vernieuwt, ziet u de naam van de tweede VM. Dit geeft aan dat de toepassingsgateway is gemaakt en dat deze verbinding kan maken met de back-end.
Resources opschonen
Wanneer u de resources die u bij de toepassingsgateway hebt gemaakt niet meer nodig hebt, gebruikt u de opdracht az group delete
om de resourcegroep te verwijderen. Wanneer u de resourcegroep verwijdert, verwijdert u ook de toepassingsgateway en alle resources die hieraan zijn gerelateerd.
az group delete --name myResourceGroupAG