У меня есть nginx с апстримом.
Верхний поток устанавливает заголовки:
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Поскольку я хочу, чтобы эта страница была кеширована, в nginx у меня есть следующий conf:
location ~* ^.+\.(html)$ {
proxy_pass http://websitefarm.php73;
add_header Pragma "";
add_header x-pragma "OK";
expires 1d;
}
он успешно удаляет Expires и Cache-Control, но Pragma остается.
обратите внимание, что мой тестовый заголовок "x-pragma" установлен. так что конф "работает" определенно
expires: Sat, 25 Jul 2020 12:13:04 GMT
cache-control: max-age=86400
pragma: no-cache
x-pragma: OK
если я попробую установить "Pragma" на что-нибудь другое, это сработает, но "" не сработает.
Это проблема конфигурации PHP. Вы установили session.cache_limiter
к nocache
, либо оставив значение по умолчанию, либо явно задав его в коде, либо и то, и другое.
Если интересующие страницы действительно кешируются и не предназначены для авторизованных пользователей, вам необходимо поговорить с разработчиком приложения о ненадлежащем использовании сеансов.
Похоже, это можно удалить только с помощью proxy_hide_header
директива
Следующая конфигурация работает:
location ~* ^.+\.(html)$ {
proxy_pass http://websitefarm.php73;
proxy_hide_header Pragma;
expires 1d;
}