Een toepassingsgateway maken met interne omleiding met behulp van de Azure CLI
U kunt de Azure CLI gebruiken om omleiding van webverkeer te configureren wanneer u een toepassingsgateway maakt. In deze zelfstudie definieert u een back-endpool met behulp van een schaalset voor virtuele machines. Vervolgens configureert u listeners en regels op basis van domeinen die u bezit om ervoor te zorgen dat webverkeer bij de juiste pool aankomt. In deze zelfstudie wordt ervan uitgegaan dat u eigenaar bent van meerdere domeinen en voorbeelden van www.contoso.com en www.contoso.org gebruikt.
In dit artikel leert u het volgende:
- Het netwerk instellen
- Een toepassingsgateway maken
- Listeners en omleidingsregel toevoegen
- Een virtuele-machineschaalset maken met de back-endpool
- Een CNAME-record in uw domein maken
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 deze zelfstudie is versie 2.0.4 of hoger van de Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.
Een brongroep maken
Een resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd. Maak een resourcegroep met de opdracht 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
Maak het virtuele netwerk myVNet en het subnet myAGSubnet met az network vnet create. Vervolgens kunt u het subnet myBackendSubnet toevoegen dat nodig is voor de back-endpool van servers met behulp van az network vnet subnet create. Maak het openbare IP-adresmyAGPublicIPAddress met 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
Een toepassingsgateway maken
U kunt az network application-gateway create gebruiken om de toepassingsgateway myAppGateway te maken. Als u met de Azure CLI een toepassingsgateway maakt, geeft u configuratiegegevens op, zoals capaciteit, SKU en HTTP-instellingen. De toepassingsgateway wordt toegewezen aan myAGSubnet en myAGPublicIPAddress, die u zojuist hebt gemaakt.
az network application-gateway create \
--name myAppGateway \
--location eastus \
--resource-group myResourceGroupAG \
--vnet-name myVNet \
--subnet myAGsubnet \
--capacity 2 \
--sku Standard_Medium \
--http-settings-cookie-based-affinity Disabled \
--frontend-port 80 \
--http-settings-port 80 \
--http-settings-protocol Http \
--public-ip-address myAGPublicIPAddress
Het kan enkele minuten duren voordat de toepassingsgateway is gemaakt. Nadat de toepassingsgateway is gemaakt, kunt u de volgende nieuwe functies ervan zien:
- appGatewayBackendPool - Een toepassingsgateway moet minimaal één back-endadresgroep hebben.
- appGatewayBackendHttpSettings: hiermee wordt aangegeven dat voor de communicatie poort 80 en een HTTP-protocol worden gebruikt.
- appGatewayHttpListener: de standaard-listener die aan appGatewayBackendPool is gekoppeld.
- appGatewayFrontendIP: hiermee wordt myAGPublicIPAddress aan appGatewayHttpListener toegewezen.
- rule1 - De standaardrouteringsregel die aan appGatewayHttpListener is gekoppeld.
Listeners en regels toevoegen
Als u de toepassingsgateway wilt inschakelen om het verkeer op de juiste manier naar de back-endpool te routeren, is een listener vereist. In deze zelfstudie maakt u twee listeners voor de twee domeinen. In dit voorbeeld worden listeners gemaakt voor de domeinen van www.contoso.com en www.contoso.org.
Voeg de back-endlisteners, die voor het omleiden van verkeer nodig zijn, toe met az network application-gateway http-listener create.
az network application-gateway http-listener create \
--name contosoComListener \
--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 contosoOrgListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port appGatewayFrontendPort \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway \
--host-name www.contoso.org
De omleidingsconfiguratie toevoegen
Voeg de omleidingsconfiguratie toe waarmee verkeer van www.contoso.org naar de listener voor www.contoso.com in de toepassingsgateway wordt verzonden met behulp van az network application-gateway redirect-config create.
az network application-gateway redirect-config create \
--name orgToCom \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--type Permanent \
--target-listener contosoListener \
--include-path true \
--include-query-string true
Routeringsregels toevoegen
Regels worden verwerkt in de volgorde waarin ze worden gemaakt en verkeer wordt omgeleid met behulp van de eerste regel die overeenkomt met de URL die naar de toepassingsgateway wordt verzonden. Als u bijvoorbeeld een regel hebt die van een basislistener gebruikmaakt en een regel die via dezelfde poort van een listener voor meerdere sites gebruikmaakt, moet de regel voor de listener voor meerdere sites vermeld worden vóór de regel met de basislistener, opdat de regel voor meerdere sites kan functioneren zoals het hoort.
In dit voorbeeld maakt u twee nieuwe regels en verwijdert u de standaardregel die is gemaakt. U kunt de regel toevoegen met az network application-gateway rule create.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name contosoComRule \
--resource-group myResourceGroupAG \
--http-listener contosoComListener \
--rule-type Basic \
--address-pool appGatewayBackendPool
az network application-gateway rule create \
--gateway-name myAppGateway \
--name contosoOrgRule \
--resource-group myResourceGroupAG \
--http-listener contosoOrgListener \
--rule-type Basic \
--redirect-config orgToCom
az network application-gateway rule delete \
--gateway-name myAppGateway \
--name rule1 \
--resource-group myResourceGroupAG
Virtuele-machineschaalset maken
In dit voorbeeld maakt u een virtuele-machineschaalset die ondersteuning biedt voor de back-endpool die u hebt gemaakt. De schaalset die u maakt, heet myvmss en bevat twee exemplaren van virtuele machines waarop u NGINX installeert.
az vmss create \
--name myvmss \
--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 appGatewayBackendPool
NGINX installeren
Voer deze opdracht uit in het shell-venster:
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroupAG \
--vmss-name myvmss \
--settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"],
"commandToExecute": "./install_nginx.sh" }'
CNAME-record in uw domein maken
Als de toepassingsgateway met het bijbehorende IP-adres is gemaakt, kunt u het DNS-adres ophalen en dit gebruiken om een CNAME-record in uw domein te maken. Gebruik az network public-ip show om het DNS-adres van de toepassingsgateway op te halen. Kopieer de waarde fqdn van DNSSettings en gebruik deze als de waarde van de CNAME-record die u maakt. Het gebruik van A-records wordt niet aanbevolen, omdat de VIP kan veranderen wanneer de toepassingsgateway opnieuw wordt gestart.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [dnsSettings.fqdn] \
--output tsv
De toepassingsgateway testen
Voer uw domeinnaam in de adresbalk van de browser in. Zoals http://www.contoso.com.
Wijzig het adres in uw andere domein, bijvoorbeeld http://www.contoso.org en u ziet dat het verkeer is omgeleid naar de listener voor www.contoso.com.
Volgende stappen
In deze zelfstudie heeft u het volgende geleerd:
- Het netwerk instellen
- Een toepassingsgateway maken
- Listeners en omleidingsregel toevoegen
- Een virtuele-machineschaalset maken met de back-endpool
- Een CNAME-record in uw domein maken