L'integrazione tra Azure App Service e Application Gateway offre un modo potente per gestire il traffico verso le nostre applicazioni, garantendo scalabilità e alta disponibilità. Il Gateway è particolarmente utile per proteggere le applicazioni utilizzando un Web Application Firewall (WAF), migliorando la sicurezza, e per gestire con flessibilità i percorsi di routing, assicurandoci che il traffico venga indirizzato correttamente.
Un aspetto cruciale di questa integrazione è la gestione della session affinity, che garantisce un'esperienza utente fluida. La session affinity è una funzionalità che consente di mantenere le richieste successive di un utente verso la stessa istanza dell'applicazione. Questo è particolarmente utile per applicazioni che memorizzano dati di sessione localmente, evitando problemi di consistenza. Tuttavia, comporta alcuni svantaggi, come una ridotta distribuzione del carico e una possibile saturazione di alcune istanze.
Nel contesto di Azure App Service, la session affinity è implementata utilizzando il cookie ARRAffinity. Questo cookie viene generato automaticamente e consente di gestire correttamente le richieste mantenendo la coerenza delle sessioni. Per supportare scenari in cui il dominio del cookie deve adattarsi a un header in ingresso dal reverse proxy, come X-Original-Host o X-Forwarded-Host, è necessario abilitare la funzionalità clientAffinityProxyEnabled, operazione eseguibile anche tramite il portale come mostrato nell'immagine seguente.

Questo consente alla session affinity di adattare il dominio del cookie a quello specificato negli header.
Come pratica consigliata, è fondamentale conoscere il dominio che verrà utilizzato dal reverse proxy e configurare adeguatamente le restrizioni di accesso sul sito per garantire che il traffico provenga solo dal proxy autorizzato. Questa configurazione è facilmente eseguibile tramite il portale Azure, dove è possibile abilitare l'opzione per supportare il dominio personalizzato del cookie.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Gestione degli eventi nei Web component HTML
Utilizzare Hybrid Cache in .NET 9
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Dallo sviluppo locale ad Azure con .NET Aspire
Esporre un server MCP con Azure API Management
Montare Azure Blob Storage su Linux con BlobFuse2
Configurare e gestire sidecar container in Azure App Service
Potenziare la ricerca su Cosmos DB con Full Text Search
Integrare un servizio esterno con .NET Aspire
Anonimizzare i dati sensibili nei log di Azure Front Door
Abilitare automaticamente il force push di un gruppo su Azure DevOps
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Le DirectInk API nella Universal Windows Platform
- Sfruttare una CDN con i bundle di ASP.NET
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Gli oggetti CallOut di Expression Blend 4.0
- Inserire le news di Punto Informatico nel proprio sito


