Назад | Перейти на главную страницу

Nginx: удалить cookie из кешированного содержимого

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