Tentando substituir o Apache por Nginx como um proxy da Web na frente de alguns servidores Tomcat, lidar com Set-Cookie JSESSIONID
está se mostrando desafiador.
Nosso conteúdo do Tomcat é servido com Cache-Control e Set-Cookie.
No Apache, podemos armazenar em cache baseado puramente no Cache-Control usando o CacheIgnoreHeaders Set-Cookie
... e aqui está a parte importante: o conteúdo do cache é servido sem o Set-Cookie, então estamos evitando vazamentos de sessão.
No entanto, no Nginx, proxy_ignore_headers Set-Cookie
fará fallback para Cache-Control
para decidir se uma página deve ser armazenada em cache ... mas o conteúdo em cache será exibido com esse JSESSIONID.
A adição de proxy_hide_header Set-Cookie
remove o JSESSIONID de todo o conteúdo exibido, em cache ou não, o que significa que todo o site se torna sem estado.