Попытка заменить Apache на Nginx в качестве веб-прокси перед некоторыми серверами Tomcat, имеющая дело с 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 из всего обслуживаемого контента, кэшированного или нет, что означает, что весь сайт становится без гражданства.