Problema di stickiness session di AWS ELB quando più cookie AWSELB esistono in una singola richiesta

Ho due applicazioni web – App-A & App-B – in 2 istanze EC2 (entrambe le applicazioni web sono in esecuzione in entrambe le istanze) fronteggiate con un AWS ELB. La stickiness della session è triggersta usando 'Application Generated Cookie Stickiness' e il cookie è impostato come "JSESSIONID".

Di seguito è lo scenario:

1) L'utente cerca prima di accedere a App-B. La richiesta va al Nodo-A e l'applicazione crea un JSESSIONID con il path "/ appb /" e ELB genera un cookie AWSELB per lo stesso path.

Intestazioni set-cookie che arrivano al browser:

Set-Cookie: JSESSIONID=8629A2C6FA26A99678599B0868511610; Path=/appb/; Secure; HttpOnly Set-Cookie: AWSELB=B321B10B128ADF1E237E8419717E1CC409A63A5C6B3EA2E2C6CEE56E4F76FCE48DFDA95F1F20ED1ADEED570326993D2492C17C070ED41500F3EDC7EB993ED53188BF73D37301213483075952D1ADAD619C3C890672;PATH=/appb/;SECURE;HTTPONLY 

2) Quindi l'utente cerca di accedere a App-A. La richiesta va al Nodo-B e l'applicazione crea un JSESSIONID con il path "/" e ELB genera un cookie AWSELB per lo stesso path.

Intestazioni set-cookie che arrivano al browser:

 Set-Cookie: JSESSIONID=5DA3507629D0CB34DE1B032FA71D1CB2; Path=/; Secure; HttpOnly Set-Cookie: AWSELB=B321B10B128ADF1E237E8419717E1CC409A63A5C6BC5080020E5701A0FB3756B152B401A70BF4CA755D30D9B06C82E5C1EB2E81E99C160A62D108BDB79947DEF2E2421C11C513C2C7452FA63B46EE8DF693FB5ED03;PATH=/;SECURE;HTTPONLY 

3) Ora l'utente tenta di accedere nuovamente ad App-B. Il browser invia i cookie JSESSIONID ei cookie 2 AWSELB, perché i cookie di App-A vengono creati per "/". Per quanto ne so, un cookie per il context di origine dovrebbe essere inviato a tutti gli altri contesti web nello stesso dominio.

Di seguito è riportto l'intestazione del cookie in App-B:

 Cookie: JSESSIONID=8629A2C6FA26A99678599B0868511610; AWSELB=B321B10B128ADF1E237E8419717E1CC409A63A5C6B3EA2E2C6CEE56E4F76FCE48DFDA95F1F20ED1ADEED570326993D2492C17C070ED41500F3EDC7EB993ED53188BF73D37301213483075952D1ADAD619C3C890672; JSESSIONID=5DA3507629D0CB34DE1B032FA71D1CB2; AWSELB=B321B10B128ADF1E237E8419717E1CC409A63A5C6BC5080020E5701A0FB3756B152B401A70BF4CA755D30D9B06C82E5C1EB2E81E99C160A62D108BDB79947DEF2E2421C11C513C2C7452FA63B46EE8DF693FB5ED03 

In questo scenario mi sono verificati problemi di stickiness della session in cui le richieste consecutive del browser per App-B passano a entrambi i nodes, piuttosto che solo al nodo-A.

Sono curioso di come AWS ELB gestisce la sensitività della session in una simile situazione. Sulla base di ciò che seleziona 1 cookie AWSELB dal 2? Mi manca una configuration nell'ELB?

Grazie in anticipo.

One Solution collect form web for “Problema di stickiness session di AWS ELB quando più cookie AWSELB esistono in una singola richiesta”

Questo è semplice, per regola e pratica standard è necessario utilizzare un ELB per un'applicazione (ma nulla ti impedisce di utilizzare più applicazioni da un ELB).

Soluzione È necessario utilizzare 2 ELB per 2 applicazioni diverse

  • Spiegazione:

Lo scopo di ELB non è solo quello di distribuire il carico a nodes diversi ma anche di mantenere la disponibilità e la scalatura (con server di alto livello).

Per get la disponibilità è necessario fornire una strategia di controllo della salute che contrassegna un nodo fuori servizio se non disponibile. Se utilizzerai un ELB per molteplici applicazioni, quale sistema di controllo dell'applicazione forniresti? Che fondamentalmente sconfiggere lo scopo di alta disponibilità.

Quindi è necessario finire per creare singoli ELB per each App. che risolverebbe il tuo problema di cookie comune AWLELB. Poichè entrambi avranno diversi cookie AWSELB che parlano con diversi ELB.

BTW AWS ELBs non sono ottimizzati per fare roba multipla come questa. Per saperne di più su questo in https://www.linkedin.com/pulse/key-benefits-limitation-aws-elb-admin-cloudfoqus

— Amazon ELB richiede la banda quando il traffico viene generato da Single IP – Questo punto viene come una sorpresa per molti utenti che utilizzano Amazon ELB. Amazon ELB si comport un po 'stranamente quando il traffico in entrata è proveniente da intervalli IP singoli o specifici, non effettua efficacemente il round robin e attacca la richiesta .—-

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.