Cos'è il gateway applicazione di Azure?What is Azure Application Gateway?

Il gateway applicazione di Azure è un servizio di bilanciamento del carico del traffico Web che consente di gestire il traffico verso le applicazioni Web.Azure Application Gateway is a web traffic load balancer that enables you to manage traffic to your web applications.

I servizi di bilanciamento del carico tradizionali operano a livello di trasporto (OSI livello 4 - TCP e UDP) ed eseguono il routing del traffico da un indirizzo IP e una porta di origine verso un indirizzo IP e una porta di destinazione.Traditional load balancers operate at the transport layer (OSI layer 4 - TCP and UDP) and route traffic based on source IP address and port, to a destination IP address and port. Con il gateway applicazione si può essere ancora più specifici.But with the Application Gateway you can be even more specific. Ad esempio, è possibile eseguire il rounting del traffico in base all'URL in ingresso.For example, you can route traffic based on the incoming URL. Pertanto, se /images è nell'URL in ingresso, è possibile eseguire il rounting del traffico verso un set specifico di server, detto pool, configurato per le immagini.So if /images is in the incoming URL, you can route traffic to a specific set of servers (known as a pool) configured for images. Se /video è nell'URL, viene eseguito il rounting di quel traffico verso un altro pool ottimizzato per i video.If /video is in the URL, that traffic is routed to another pool optimized for videos.

imageURLroute

Questo tipo di routing è detto bilanciamento del carico a livello di applicazione (OSI livello 7).This type of routing is known as application layer (OSI layer 7) load balancing. Il gateway applicazione di Azure può eseguire il routing basato su URL e molto altro.Azure Application Gateway can do URL-based routing and more. Il gateway applicazione di Azure offre le funzionalità seguenti:The following features are included with Azure Application Gateway:

Routing basato su URLURL-based routing

Il routing basato su percorso URL consente di instradare il traffico a pool di server back-end in base ai percorsi URL della richiesta.URL Path Based Routing allows you to route traffic to back-end server pools based on URL Paths of the request. Uno degli scenari è il rounting delle richieste di tipi di contenuto diversi a pool diversi.One of the scenarios is to route requests for different content types to different pool.

Ad esempio, per le richieste http://contoso.com/video/* viene eseguito il rounting verso VideoServerPool mentre per le richieste http://contoso.com/images/* viene eseguito il rounting verso ImageServerPool.For example, requests for http://contoso.com/video/* are routed to VideoServerPool, and http://contoso.com/images/* are routed to ImageServerPool. In caso di mancata corrispondenza dei percorsi, viene selezionato DefaultServerPool.DefaultServerPool is selected if none of the path patterns match.

ReindirizzamentoRedirection

Uno scenario comune per molte applicazioni Web è il supporto del reindirizzamento automatico da HTTP a HTTPS per assicurare che tutte le comunicazioni tra l'applicazione e gli utenti avvengano tramite un percorso crittografato.A common scenario for many web applications is to support automatic HTTP to HTTPS redirection to ensure all communication between an application and its users occurs over an encrypted path.

In passato si usavano usato tecniche come la creazione di un pool dedicato il cui unico scopo è quello di reindirizzare le richieste ricevute su HTTP a HTTPS.In the past, you may have used techniques such as creating a dedicated pool whose sole purpose is to redirect requests it receives on HTTP to HTTPS. Il gateway applicazione consente di reindirizzare il traffico sul gateway applicazione.Application gateway supports the ability to redirect traffic on the Application Gateway. Questo semplifica la configurazione delle applicazioni, ottimizza l'utilizzo delle risorse e supporta i nuovi scenari di reindirizzamento, tra cui il reindirizzamento globale e basato sul percorso.This simplifies application configuration, optimizes the resource usage, and supports new redirection scenarios, including global and path-based redirection. Il supporto del reindirizzamento nel gateway applicazione non è limitato al solo reindirizzamento da HTTP a HTTPS.Application Gateway redirection support is not limited to HTTP to HTTPS redirection alone. Si tratta di un meccanismo di reindirizzamento generico che consente di eseguire il reindirizzamento da e verso qualsiasi porta definita mediante regole.This is a generic redirection mechanism, so you can redirect from and to any port you define using rules. Supporta anche il reindirizzamento a un sito esterno.It also supports redirection to an external site as well.

Il supporto del reindirizzamento nel gateway applicazione offre le funzionalità seguenti:Application Gateway redirection support offers the following capabilities:

  • Reindirizzamento globale da una porta a un'altra porta nel gateway.Global redirection from one port to another port on the Gateway. che consente il reindirizzamento da HTTP a HTTPS in un sito.This enables HTTP to HTTPS redirection on a site.
  • Reindirizzamento basato sul percorso.Path-based redirection. Questo tipo di reindirizzamento consente il reindirizzamento da HTTP a HTTPS solo in un'area specifica del sito, ad esempio l'area del carrello acquisti indicata da /cart/*.This type of redirection enables HTTP to HTTPS redirection only on a specific site area, for example a shopping cart area denoted by /cart/*.
  • Reindirizzamento a un sito esterno.Redirect to an external site.

Hosting di più sitiMultiple-site hosting

L'hosting di più siti consente di configurare più siti Web nella stessa istanza del gateway applicazione.Multiple-site hosting enables you to configure more than one web site on the same application gateway instance. Questa funzionalità permette di configurare una topologia più efficiente per le distribuzioni aggiungendo fino a 20 siti Web a un unico gateway applicazione.This feature allows you to configure a more efficient topology for your deployments by adding up to 20 web sites to one application gateway. Ogni sito Web può essere indirizzato al proprio pool.Each web site can be directed to its own pool. Ad esempio, il gateway applicazione può servire il traffico per contoso.com e fabrikam.com da due pool di server denominati ContosoServerPool e FabrikamServerPool.For example, application gateway can serve traffic for contoso.com and fabrikam.com from two server pools called ContosoServerPool and FabrikamServerPool.

Per le richieste http://contoso.com viene eseguito il routing verso ContosoServerPool mentre per le richieste http://fabrikam.com viene eseguito il routing verso FabrikamServerPool.Requests for http://contoso.com are routed to ContosoServerPool, and http://fabrikam.com are routed to FabrikamServerPool.

Analogamente, la stessa distribuzione del gateway applicazione può ospitare due sottodomini dello stesso dominio padre.Similarly, two subdomains of the same parent domain can be hosted on the same application gateway deployment. Gli esempi di uso di sottodomini possono includere http://blog.contoso.com e http://app.contoso.com ospitati in una singola distribuzione del gateway applicazione.Examples of using subdomains could include http://blog.contoso.com and http://app.contoso.com hosted on a single application gateway deployment.

Affinità di sessioneSession affinity

L'affinità di sessione basata su cookie è utile quando si vuole mantenere una sessione utente nello stesso server.The cookie-based session affinity feature is useful when you want to keep a user session on the same server. Usando cookie gestiti dal gateway, il gateway applicazione può indirizzare il traffico successivo proveniente da una sessione utente allo stesso server per l'elaborazione.By using gateway-managed cookies, the Application Gateway can direct subsequent traffic from a user session to the same server for processing. Questo è importante nei casi in cui lo stato della sessione viene salvato in locale sul server per una sessione utente.This is important in cases where session state is saved locally on the server for a user session.

Terminazione di Secure Sockets Layer (SSL)Secure Sockets Layer (SSL) termination

Il gateway applicazione supporta la terminazione SSL nel gateway, dopo la quale il traffico scorre generalmente non crittografato verso i server back-end.Application gateway supports SSL termination at the gateway, after which traffic typically flows unencrypted to the backend servers. Questa funzionalità consente ai server Web di non gestire il costoso carico di crittografia e decrittografia.This feature allows web servers to be unburdened from costly encryption and decryption overhead. Tuttavia in alcuni casi le comunicazioni non crittografate verso i server non rappresentano un'opzione accettabile.However, sometimes unencrypted communication to the servers is not an acceptable option. Questo potrebbe dipendere da requisiti di sicurezza e conformità o da un'applicazione in grado di accettare solo connessioni protette.This could be due to security requirements, compliance requirements, or the application may only accept a secure connection. Per tali applicazioni, il gateway applicazione supporta ora la crittografia SSL end-to-end.For such applications, application gateway supports end to end SSL encryption.

Web application firewallWeb application firewall

Web application firewall (WAF) è una funzionalità del gateway applicazione che offre una protezione centralizzata delle applicazioni Web da exploit e vulnerabilità comuni.Web application firewall (WAF) is a feature of Application Gateway that provides centralized protection of your web applications from common exploits and vulnerabilities. WAF si basa su regole di set di regole principali OWASP (Open Web Application Security Project) 3.0 o 2.2.9.WAF is based on rules from the OWASP (Open Web Application Security Project) core rule sets 3.0 or 2.2.9.

Le applicazioni Web sono sempre più vittime di attacchi che sfruttano le più comuni vulnerabilità note.Web applications are increasingly targets of malicious attacks that exploit common known vulnerabilities. Per citarne alcuni, tra i più comuni troviamo gli attacchi SQL injection e gli attacchi di scripting intersito.Common among these exploits are SQL injection attacks, cross site scripting attacks to name a few. Impedire questo tipo di attacchi nel codice dell'applicazione può essere un'operazione complessa e potrebbe richiedere una manutenzione rigorosa, l'applicazione di patch e il monitoraggio a più livelli della topologia dell'applicazione.Preventing such attacks in application code can be challenging and may require rigorous maintenance, patching and monitoring at many layers of the application topology. Un Web application firewall centralizzato semplifica notevolmente la gestione della sicurezza e offre agli amministratori delle applicazioni migliori garanzie contro le minacce o le intrusioni.A centralized web application firewall helps make security management much simpler and gives better assurance to application administrators against threats or intrusions. Una soluzione WAF è anche in grado di reagire più velocemente a una minaccia alla sicurezza tramite l'applicazione di patch su una vulnerabilità nota in una posizione centrale, anziché proteggere ogni singola applicazione Web.A WAF solution can also react to a security threat faster by patching a known vulnerability at a central location versus securing each of individual web applications. È possibile convertire facilmente i gateway applicazione esistenti in un gateway applicazione con Web application firewall.Existing application gateways can be converted to a web application firewall enabled application gateway easily.

Traffico Websocket e HTTP/2Websocket and HTTP/2 traffic

Il gateway applicazione offre il supporto nativo per i protocolli WebSocket e HTTP/2.Application Gateway provides native support for the WebSocket and HTTP/2 protocols. Non esistono impostazioni configurabili dall'utente per abilitare o disabilitare in modo selettivo il supporto di WebSocket.There's no user-configurable setting to selectively enable or disable WebSocket support. Il supporto di HTTP/2 può essere abilitato con Azure PowerShell.HTTP/2 support can be enabled using Azure PowerShell.

I protocolli WebSocket HTTP/2 consentono una comunicazione full duplex tra un server e un client su una connessione TCP con esecuzione prolungata.The WebSocket and HTTP/2 protocols enable full duplex communication between a server and a client over a long running TCP connection. Questo consente una comunicazione più interattiva tra il server Web e il client che può essere bidirezionale senza necessità di polling che invece è richiesto nelle implementazioni basate su HTTP.This allows for a more interactive communication between the web server and the client, which can be bidirectional without the need for polling as required in HTTP-based implementations. A differenza del protocollo HTTP, questi protocolli presentano un sovraccarico ridotto e possono riutilizzare la stessa connessione TCP per più richieste/risposte garantendo così un uso più efficiente delle risorse.These protocols have low overhead, unlike HTTP, and can reuse the same TCP connection for multiple request/responses resulting in a more efficient utilization of resources. Questi protocolli sono progettati per usare le porte HTTP 80 e 443 tradizionali.These protocols are designed to work over traditional HTTP ports of 80 and 443.

Passaggi successiviNext steps

A seconda dei requisiti e dell'ambiente, è possibile creare un'applicazione gateway di test usando il portale di Azure, Azure PowerShell o l'interfaccia della riga di comando di Azure:Depending on your requirements and environment, you can create a test Application Gateway using either the Azure portal, Azure PowerShell, or Azure CLI: