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
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Paginare i risultati con QuickGrid in Blazor
.NET Conference Italia 2024
Selettore CSS :has() e i suoi casi d'uso avanzati
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Gestire gli accessi con Token su Azure Container Registry
Recuperare l'ultima versione di una release di GitHub
Recuperare App Service cancellati su Azure
Miglioramenti nelle performance di Angular 16
Gestione dell'annidamento delle regole dei layer in CSS