Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questa guida rapida, utilizzerai l'interfaccia della riga di comando di Azure per creare un gateway applicativo. Poi si testa per assicurarsi che funzioni correttamente.
Il gateway applicativo indirizza il traffico web dell'applicazione a risorse specifiche in un pool di backend. Verranno assegnati i listener alle porte, verranno create le regole e verranno aggiunte le risorse a un pool back-end. Per semplicità, questo articolo utilizza una configurazione semplice con un indirizzo IP front-end pubblico, un listener di base per ospitare un singolo sito nel gateway applicativo, una regola di routing delle richieste e due macchine virtuali nel pool di back-end.
È anche possibile completare questa guida di avvio rapido usando Azure PowerShell oppure il portale di Azure.
Se non si ha un account Azure, creare un account gratuito prima di iniziare.
Prerequisiti
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Introduzione ad Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando localmente, installare l'Azure CLI. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Eseguire l'autenticazione ad Azure con l'interfaccia della riga di comando di Azure.
Installare l'estensione CLI di Azure al primo utilizzo quando richiesto. Per altre informazioni sulle estensioni, vedere Usare e gestire le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
- Questo articolo richiede l'interfaccia della riga di comando di Azure versione 2.0.4 o successiva. Se si usa Azure Cloud Shell, la versione più recente è già installata.
Nota
Il front-end di Gateway Applicazione ora supporta indirizzi IP dual stack (in anteprima). È ora possibile creare fino a quattro indirizzi IP front-end: due indirizzi IPv4 (pubblici e privati) e due indirizzi IPv6 (pubblici e privati).
Crea gruppo di risorse
In Azure, si allocano le risorse correlate a un gruppo di risorse. Per creare un gruppo di risorse, usare il comando 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
Per le comunicazioni tra le risorse create in Azure è necessaria una rete virtuale. La subnet del gateway applicativo può contenere solo i gateway applicativi. Non sono consentite altre risorse. È possibile creare una nuova subnet per il gateway applicazione o usarne una esistente. In questo esempio vengono create due subnet: una per il gateway applicazione e l'altra per i server back-end. L'IP front-end del gateway applicazione può essere configurato come pubblico o privato a seconda del caso d'uso. In questo esempio si sceglierà un indirizzo IP front-end pubblico.
Nota
Il front-end del Gateway delle applicazioni supporta indirizzi IP dual-stack (anteprima pubblica). È ora possibile creare fino a quattro indirizzi IP front-end: due indirizzi IPv4 (pubblici e privati) e due indirizzi IPv6 (pubblici e privati).
Per creare la rete virtuale e la subnet, usare il comando az network vnet create. Eseguire az network public-ip create per creare l'indirizzo IP pubblico.
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
Creare un gruppo di sicurezza di rete
Creare un gruppo di sicurezza di rete con il comando az network nsg create. Le regole predefinite nel gruppo di sicurezza di rete bloccano l'accesso in ingresso da Internet.
az network nsg create \
--resource-group myResourceGroupAG \
--name myNSG
Nota
Le regole predefinite del gruppo di sicurezza di rete bloccano tutti gli accessi in ingresso da Internet, incluso SSH. Per connettersi alla macchina virtuale, usare Azure Bastion. Per altre informazioni, vedere Avvio rapido: Distribuire Azure Bastion con le impostazioni predefinite.
Creare i server back-end
Un backend può disporre di schede di interfaccia di rete, set di scalabilità di macchine virtuali, indirizzi IP pubblici, indirizzi IP interni, nomi di dominio completi (FQDN) e backend multitenant come Azure App Service. In questo esempio vengono create due macchine virtuali da usare come server back-end per il gateway applicazione. Si installa inoltre NGINX nelle macchine virtuali per testare il gateway applicativo.
Creare due macchine virtuali
Installare il server Web NGINX sulle macchine virtuali per verificare l'avvenuta creazione del gateway dell'applicazione. È possibile usare un file di configurazione cloud-init per installare NGINX ed eseguire un'app Node.js "Hello World" in una macchina virtuale Linux. Per altre informazioni su cloud-init, vedere gli Supporto di cloud-init per macchine virtuali in Azure.
In Azure Cloud Shell, copiare e incollare la configurazione seguente in un file denominato cloud-init.txt. Immettere editor cloud-init.txt per creare il file.
#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
Creare le interfacce di rete usando il comando az network nic create. Per creare le macchine virtuali, usare il comando 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 \
--network-security-group myNSG
az vm create \
--resource-group myResourceGroupAG \
--name myVM$i \
--nics myNic$i \
--image Ubuntu2204 \
--public-ip-address "" \
--admin-username azureuser \
--generate-ssh-keys \
--custom-data cloud-init.txt
done
Creare il gateway dell'applicazione
Creare un gateway applicativo usando az network application-gateway create. Quando si crea un gateway applicativo con Azure CLI, è necessario specificare le informazioni di configurazione, come la capacità, l'SKU (ad esempio, Basic) e le impostazioni HTTP. Azure aggiunge quindi gli indirizzi IP privati delle interfacce di rete, come server nel pool back-end del gateway dell'applicazione.
In questo esempio, viene usato lo SKU Standard v2.
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
Il processo di creazione del gateway applicazione in Azure può richiedere fino a 30 minuti. Dopo averlo creato, è possibile visualizzare le impostazioni seguenti nella sezione Impostazioni della pagina Gateway applicazione:
- appGatewayBackendPool: si trova nella pagina Pool back-end. Specifica il pool back-end richiesto.
- appGatewayBackendHttpSettings: disponibile nella pagina Impostazioni HTTP. Specifica che il gateway applicazione usa la porta 80 e il protocollo HTTP per la comunicazione.
- appGatewayHttpListener: disponibile nella pagina Listener. Specifica il listener predefinito associato ad appGatewayBackendPool.
- appGatewayFrontendIP: disponibile nella pagina Configurazioni IP front-end. Assegna myAGPublicIPAddress ad appGatewayHttpListener.
- rule1: disponibile nella pagine Rules. Specifica la regola di gestione predefinita associata ad appGatewayHttpListener.
Nota
Nelle aree che supportano le zone di disponibilità, se non si specificano zone durante la creazione tramite l'interfaccia della riga di comando, PowerShell, ARM/Bicep o l'API REST, il gateway applicazione di Azure abilita automaticamente la ridondanza della zona, distribuendo istanze tra più zone di disponibilità per migliorare la resilienza
Testare il gateway dell'applicazione
Nonostante Azure non richieda un server Web NGINX per creare il gateway di applicazione, lo hai installato in questa guida introduttiva per verificare se Azure ha creato correttamente il gateway di applicazione. Usare il comando az network public-ip show per ottenere l'indirizzo IP pubblico del nuovo gateway applicativo.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
Copiare e incollare l'indirizzo IP pubblico nella barra degli indirizzi del browser.
Quando si aggiorna il browser, dovrebbe apparire il nome della seconda macchina virtuale. Questo indica che il gateway dell'applicazione è stato creato correttamente e può connettersi al backend.
Pulire le risorse
Quando le risorse create con il gateway applicazione non sono più necessarie, usare il comando az group delete per eliminare il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione del gateway applicazione e di tutte le risorse correlate.
az group delete --name myResourceGroupAG