尝试用 Nginx 替代 Apache 作为某些 Tomcat 服务器前端的 Web 代理,处理起来Set-Cookie JSESSIONID
非常有挑战性。我们的 Tomcat 内容通过 Cache-Control 和 Set-Cookie 提供。
在 Apache 中,我们可以通过使用 ... 来完全基于 Cache-Control 进行缓存,CacheIgnoreHeaders Set-Cookie
这是重要的部分:缓存的内容无需 Set-Cookie 即可提供,因此我们可以避免会话泄漏。但在 Nginx 中,proxy_ignore_headers Set-Cookie
将回退到Cache-Control
决定是否应缓存页面... 但缓存的内容随后会使用该 JSESSIONID 提供。
添加proxy_hide_header Set-Cookie
将从所有提供的内容(无论是否缓存)中删除 JSESSIONID,这意味着整个站点变为无状态的。