Gestire il traffico Web con un gateway applicazione usando l'interfaccia della riga di comando di Azure

Il gateway applicazione viene usato per gestire e proteggere il traffico Web verso i server gestiti. È possibile usare l'interfaccia della riga di comando di Azure per creare un gateway applicazione che usa un set di scalabilità di macchine virtuali per server back-end. In questo esempio, il set di scalabilità contiene due istanze di macchina virtuale. Il set di scalabilità viene aggiunto al pool back-end predefinito del gateway applicazione.

In questo articolo vengono illustrate le operazioni seguenti:

  • Configurare la rete
  • Creare un gateway applicazione
  • Creare un set di scalabilità di macchine virtuali con il pool back-end predefinito

Se si preferisce, è possibile completare questa procedura usando Azure PowerShell.

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Prerequisiti

  • Per questa esercitazione è necessaria la versione 2.0.4 o successiva dell'interfaccia della riga di comando di Azure. Se si usa Azure Cloud Shell, la versione più recente è già installata.

Creare un gruppo di risorse

Un gruppo di risorse è un contenitore logico in cui vengono distribuite e gestite le risorse di Azure. Creare un gruppo di risorse usando az group create.

L'esempio seguente crea un gruppo di risorse denominato myResourceGroupAG nella località eastus.

az group create --name myResourceGroupAG --location eastus

Creare risorse di rete

Creare la rete virtuale denominata myVNet e la subnet denominata myAGSubnet usando az network vnet create. È quindi possibile aggiungere la subnet denominata myBackendSubnet necessaria per i server back-end tramite az network vnet subnet create. Creare l'indirizzo IP pubblico denominato myAGPublicIPAddress tramite 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

Creare un gateway applicazione

Usare az network application-gateway create per creare il gateway applicazione denominato myAppGateway. Quando si crea un gateway applicazione usando l'interfaccia della riga di comando di Azure, specificare le informazioni di configurazione, ad esempio le impostazioni relative a capacità, SKU e HTTP. Il gateway applicazione viene assegnato alla subnet myAGSubnet e all'indirizzo IP pubblico myPublicIPAddress creati in precedenza.

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

Il processo di creazione del gateway applicazione può richiedere alcuni minuti. Dopo aver creato il gateway applicazione, saranno disponibili le nuove funzionalità seguenti:

  • appGatewayBackendPool: un gateway applicazione deve avere almeno un pool di indirizzi back-end.
  • appGatewayBackendHttpSettings: specifica che per le comunicazioni vengono usati la porta 80 e il protocollo HTTP.
  • appGatewayHttpListener: il listener predefinito associato ad appGatewayBackendPool.
  • appGatewayFrontendIP: assegna myAGPublicIPAddress ad appGatewayHttpListener.
  • rule1: regola di routing predefinita associata ad appGatewayHttpListener.

Creare un set di scalabilità di macchine virtuali

In questo esempio viene creato un set di scalabilità di macchine virtuali che fornisce i server per il pool back-end nel gateway applicazione. Le macchine virtuali nel set di scalabilità sono associate a myBackendSubnet e appGatewayBackendPool. Per creare il set di scalabilità, usare az vmss create.

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

Installare NGINX

Ora è possibile installare NGINX nel set di scalabilità di macchine virtuali in modo da potere testare la connettività HTTP al pool back-end.

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" }'

Testare il gateway applicazione

Per ottenere l'indirizzo IP pubblico del gateway applicazione, usare az network public-ip show. Copiare l'indirizzo IP pubblico e quindi incollarlo nella barra degli indirizzi del browser.

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

Testare l'URL di base nel gateway applicazione

Pulire le risorse

Quando non sono più necessari, rimuovere il gruppo di risorse, il gateway applicazione e tutte le risorse correlate.

az group delete --name myResourceGroupAG --location eastus

Passaggi successivi

Limitare il traffico Web con un web application firewall