Как отключить кэширование динамического контента в nginx?
Как отключить кэширование динамического контента в nginx? Имеется ввиду не только файлы php , но и просто генерируемые через php страницы типа domen.ru/page1/
Я запутался в конфигах - их несколько . Но... Не получаю заголовок if modified since средствами php .
При этом браузер отсылает этот заголовок а nginx отвечает даже при динамическом контенте. Чего я добиваюсь? Как я понимаю, прокси кэширует динамические страницы и при очередном запросе сравнивает версии и выдает ответ Last Modified или Not modified. Естественно я хочу сам отдавать ответ Not modified с помощью легкого скрипта без формирования целой страницы движком.
Lynn «Кофеман», Да почему не о чем? я обозначил проблему. Мне нужно чтобы nginx не перехватывал if modified since для динамических файлов. Проблема как на локальном сервере (open server) так и на внешнем, никаких команд кэшировать динамический контент я не заметил. Возможно ли это по умолчанию и как это отключить? Попробую сбросить все конфиги
location ^~ /apacheicons/ {
alias %sprogdir%/modules/http/%httpdriver%/icons/;
}
location ^~ /apacheerror/ {
alias %sprogdir%/modules/http/%httpdriver%/error/;
}
# Service configuration (do not edit!)
# ----------------------------
location /openserver/ {
root '%sprogdir%/modules/system/html';
autoindex off;
index index.php index.html index.htm;
Проверочный скрипт ( результат - пустая страница) : /ee1.php
header('Last-Modified: '. gmdate("D, d M Y H:i:s GMT",strtotime('2021-10-16 13:35:57')));
header('ETag: 1');
$ist=$_ENV['HTTP_IF_MODIFIED_SINCE']??$_SERVER['HTTP_IF_MODIFIED_SINCE']??null;
if ($ist!==null) echo $ist ;
Браузер
GENERAL
Request URL: /ee1.php
Request Method: GET
Status Code: 200
Remote Address: 127.0.0.1:443
Referrer Policy: strict-origin-when-cross-origin
Да проблема решена, if modified стал ловиться средствами php, на локальном openserver все еще пустая страница, видимо дело в разных настройках nginx. В любом случае спасибо за ответы, они мне помогли разобраться.
Lynn «Кофеман», Да я запутался в локальном и внешнем сервере и с перекачкой проверочного файла . Для внешнего сервера браузер отправляет IF modified и сейчас php ловит этот заголовок. На локальном сервере заголовок до сих пор не ловится, но я вижу и браузер не отправляет этот заголовок. Но это уже другая решаемая проблема, в любом случае спасибо вам, просто мне надо было быть внимательнее.
Такое кэширование (безотносительно его бесполезности) по умолчанию и не включено. Наоборот - даже для кэша статических документов нужны отдельные директивы.