Guida introduttiva: indirizzare il traffico Web con un gateway applicazione di Azure usando Azure PowerShell
In questa guida di avvio rapido si userà Azure PowerShell per creare un gateway applicazione. Successivamente, verrà testato il gateway per verificare che funzioni correttamente.
Il gateway applicazione indirizza il traffico Web dell'applicazione a risorse specifiche in un pool back-end. 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 applicazione, una regola di gestione per l'instradamento delle richieste e due macchine virtuali nel pool back-end.
È anche possibile completare questa guida di avvio rapido usando l'interfaccia della riga di comando di Azure oppure il portale di Azure.
Nota
Il front-end del gateway applicazione supporta ora indirizzi IP dual stack (anteprima). È ora possibile creare fino a quattro indirizzi IP front-end: due indirizzi IPv4 (pubblici e privati) e due indirizzi IPv6 (pubblici e privati).
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Azure PowerShell versione 1.0.0 o successiva (se si esegue Azure PowerShell in locale).
Azure Cloud Shell
Azure Cloud Shell è un ambiente di shell interattivo ospitato in Azure e usato tramite il browser. È possibile usare Bash o PowerShell con Cloud Shell per usare i servizi di Azure. È possibile usare i comandi preinstallati di Cloud Shell per eseguire il codice contenuto in questo articolo senza dover installare strumenti nell'ambiente locale.
Per avviare Azure Cloud Shell:
Opzione | Esempio/Collegamento |
---|---|
Selezionare Prova nell'angolo superiore destro di un blocco di codice o di comando. Quando si seleziona Prova, il codice o il comando non viene copiato automaticamente in Cloud Shell. | |
Passare a https://shell.azure.com o selezionare il pulsante Avvia Cloud Shell per aprire Cloud Shell nel browser. | |
Selezionare il pulsante Cloud Shell nella barra dei menu nell'angolo in alto a destra del portale di Azure. |
Per usare Azure Cloud Shell:
Avviare Cloud Shell.
Selezionare il pulsante Copia in un blocco di codice (o in un blocco di comando) per copiare il codice o il comando.
Incollare il codice o il comando nella sessione di Cloud Shell selezionando CTRL+MAIUSC+V in Windows e Linux o selezionando CMD+MAIUSC+V in macOS.
Selezionare Invio per eseguire il codice o il comando.
Nota
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Connect to Azure
Per connettersi ad Azure, eseguire Connect-AzAccount
.
Creare un gruppo di risorse
In Azure, si allocano le risorse correlate a un gruppo di risorse. È possibile usare un gruppo di risorse esistente o crearne uno nuovo.
Per creare un nuovo gruppo di risorse, usare il cmdlet New-AzResourceGroup
:
New-AzResourceGroup -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 applicazione può contenere solo i gateway applicazione. 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. È possibile configurare l'indirizzo IP front-end del gateway applicazione come pubblico o privato, a seconda dell'uso. In questo esempio si sceglierà un indirizzo IP front-end pubblico.
- Creare le configurazioni delle subnet usando
New-AzVirtualNetworkSubnetConfig
. - Crea la rete virtuale con le configurazioni delle subnet usando
New-AzVirtualNetwork
. - Creare l'indirizzo IP pubblico usando
New-AzPublicIpAddress
.
Nota
I criteri degli endpoint servizio di rete virtuale non sono attualmente supportati in una subnet del gateway applicazione.
$agSubnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name myAGSubnet `
-AddressPrefix 10.21.0.0/24
$backendSubnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name myBackendSubnet `
-AddressPrefix 10.21.1.0/24
New-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Name myVNet `
-AddressPrefix 10.21.0.0/16 `
-Subnet $agSubnetConfig, $backendSubnetConfig
New-AzPublicIpAddress `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Name myAGPublicIPAddress `
-AllocationMethod Static `
-Sku Standard
Creare un gateway applicazione
In questo esempio, viene usato lo SKU Standard v2.
Creare le configurazioni IP e la porta front-end
- Usare
New-AzApplicationGatewayIPConfiguration
per creare la configurazione che associa la subnet creata al gateway applicazione. - Usare
New-AzApplicationGatewayFrontendIPConfig
per creare la configurazione che assegna l'indirizzo IP pubblico creato in precedenza per il gateway applicazione. - Usare
New-AzApplicationGatewayFrontendPort
per assegnare la porta 80 per accedere al gateway applicazione.
$vnet = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myAGSubnet
$pip = Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress
$gipconfig = New-AzApplicationGatewayIPConfiguration `
-Name myAGIPConfig `
-Subnet $subnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig `
-Name myAGFrontendIPConfig `
-PublicIPAddress $pip
$frontendport = New-AzApplicationGatewayFrontendPort `
-Name myFrontendPort `
-Port 80
Nota
Il front-end del gateway applicazione supporta ora 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).
Creare il pool back-end
- Usare
New-AzApplicationGatewayBackendAddressPool
per creare il pool back-end per il gateway applicazione. Al momento il pool back-end è vuoto. Quando verranno create le schede di interfaccia di rete del server back-end nella sezione successiva, queste verranno aggiunte al pool back-end. - Configurare le impostazioni per il pool back-end con
New-AzApplicationGatewayBackendHttpSetting
.
$backendPool = New-AzApplicationGatewayBackendAddressPool `
-Name myAGBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
-Name myPoolSettings `
-Port 80 `
-Protocol Http `
-CookieBasedAffinity Enabled `
-RequestTimeout 30
Creare il listener e aggiungere una regola
Azure richiede un listener per consentire al gateway applicazione di instradare il traffico in modo appropriato al pool back-end. È necessaria inoltre una regola per comunicare al listener quale pool back-end usare per il traffico in ingresso.
- Creare il listener usando
New-AzApplicationGatewayHttpListener
con la configurazione front-end e la porta front-end creata prima. - Usare
New-AzApplicationGatewayRequestRoutingRule
per creare una regola denominata rule1.
$defaultlistener = New-AzApplicationGatewayHttpListener `
-Name myAGListener `
-Protocol Http `
-FrontendIPConfiguration $fipconfig `
-FrontendPort $frontendport
$frontendRule = New-AzApplicationGatewayRequestRoutingRule `
-Name rule1 `
-RuleType Basic `
-Priority 100 `
-HttpListener $defaultlistener `
-BackendAddressPool $backendPool `
-BackendHttpSettings $poolSettings
Creare il gateway applicazione
Dopo aver creato le risorse di supporto necessarie, creare il gateway applicazione:
- Usare
New-AzApplicationGatewaySku
per specificare i parametri per il gateway applicazione. - Usare
New-AzApplicationGateway
per creare il gateway applicazione.
$sku = New-AzApplicationGatewaySku `
-Name Standard_v2 `
-Tier Standard_v2 `
-Capacity 2
New-AzApplicationGateway `
-Name myAppGateway `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-BackendAddressPools $backendPool `
-BackendHttpSettingsCollection $poolSettings `
-FrontendIpConfigurations $fipconfig `
-GatewayIpConfigurations $gipconfig `
-FrontendPorts $frontendport `
-HttpListeners $defaultlistener `
-RequestRoutingRules $frontendRule `
-Sku $sku
Suggerimento
È possibile modificare i valori dei parametri Name
e Tier
per usare uno SKU diverso. Ad esempio: Basic
.
Server back-end
Dopo aver creato il gateway applicazione, creare le macchine virtuali back-end che ospiteranno i siti Web. Il back-end può essere costituito da schede di interfaccia di rete, set di scalabilità di macchine virtuali, IP pubblici, IP interni, nomi di dominio completi (FQDN) e back-end multitenant come il Servizio app di Azure.
In questo esempio vengono create due macchine virtuali da usare come server back-end per il gateway applicazione. È anche possibile installare IIS nelle macchine virtuali per verificare l'avvenuta creazione del gateway applicazione in Azure.
Creare due macchine virtuali
- Ottenere la configurazione del pool back-end del gateway applicazione creata di recente con il comando
Get-AzApplicationGatewayBackendAddressPool
. - Creare un'interfaccia di rete con
New-AzNetworkInterface
. - Creare una configurazione di macchina virtuale con
New-AzVMConfig
. - Creare la macchina virtuale con
New-AzVM
.
Quando si esegue l'esempio di codice seguente per creare le macchine virtuali, Azure richiede le credenziali. Immettere un nome utente e una password:
$appgw = Get-AzApplicationGateway -ResourceGroupName myResourceGroupAG -Name myAppGateway
$backendPool = Get-AzApplicationGatewayBackendAddressPool -Name myAGBackendPool -ApplicationGateway $appgw
$vnet = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myBackendSubnet
$cred = Get-Credential
for ($i=1; $i -le 2; $i++)
{
$nic = New-AzNetworkInterface `
-Name myNic$i `
-ResourceGroupName myResourceGroupAG `
-Location EastUS `
-Subnet $subnet `
-ApplicationGatewayBackendAddressPool $backendpool
$vm = New-AzVMConfig `
-VMName myVM$i `
-VMSize Standard_DS2_v2
Set-AzVMOperatingSystem `
-VM $vm `
-Windows `
-ComputerName myVM$i `
-Credential $cred
Set-AzVMSourceImage `
-VM $vm `
-PublisherName MicrosoftWindowsServer `
-Offer WindowsServer `
-Skus 2016-Datacenter `
-Version latest
Add-AzVMNetworkInterface `
-VM $vm `
-Id $nic.Id
Set-AzVMBootDiagnostic `
-VM $vm `
-Disable
New-AzVM -ResourceGroupName myResourceGroupAG -Location EastUS -VM $vm
Set-AzVMExtension `
-ResourceGroupName myResourceGroupAG `
-ExtensionName IIS `
-VMName myVM$i `
-Publisher Microsoft.Compute `
-ExtensionType CustomScriptExtension `
-TypeHandlerVersion 1.4 `
-SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
-Location EastUS
}
Testare il gateway applicazione
Nonostante l'installazione di IIS non sia necessaria per creare il gateway applicazione, è stata eseguita in questa guida di avvio rapido per verificare se il gateway applicazione è stato creato correttamente in Azure.
Usare IIS per testare il gateway applicazione:
- Eseguire
Get-AzPublicIPAddress
per ottenere l'indirizzo IP pubblico del gateway applicazione. - Copiare e incollare l'indirizzo IP pubblico nella barra degli indirizzi del browser. Quando si aggiorna il browser, dovrebbe apparire il nome della macchina virtuale. Una risposta valida verifica che il gateway applicazione sia stato creato correttamente e possa connettersi al back-end.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress
Pulire le risorse
Quando le risorse create con il gateway applicazione non sono più necessarie, eliminare il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione del gateway applicazione e di tutte le risorse correlate.
Per eliminare il gruppo di risorse, chiamare il cmdlet Remove-AzResourceGroup
:
Remove-AzResourceGroup -Name myResourceGroupAG