
Atualmente temos a seguinte configuração:
[Client] -> [haproxy] -> [Nginx] -> [App Servers]
Atualmente, o Nginx define a afinidade do cookie para os servidores de aplicativos, definindo um cookie, ou seja: public-client
. No entanto, com a introdução do HAProxy, o cookie não está presente no lado do cliente e a afinidade da sessão com os servidores do aplicativo é quebrada.
Eu estava examinando a documentação e me deparei com um atributo chamadosessão de aplicaçãoisso pode ter funcionado, mas parece que está obsoleto. A recomendação é usarmesa de paumas não tenho certeza de como preservar um cookie com esse atributo.
Alguém sabe como isso pode ser feito?
Observação: estou plenamente ciente da duplicação de proxies reversos, mas nossa arquitetura exige isso.
Problema descoberto
Então, com base no comentário abaixo, executei tcdump
no servidor HAProxy e Nginx para validar onde o cookie não estava sendo definido/passado.
O comando que executei para referência:
sudo /usr/sbin/tcpdump -A -l dst port 80 -i any | grep "^Cookie: "
Isso me mostrou cookies de aplicativos em servidores HAProxy e Nginx. No entanto, o cookie que o Nginx deveria definir não estava no fluxo de tráfego para o HAProxy, o que isolou o problema de o Nginx não configurar o cookie.