Re: Каким образом можно заставить nginx возвращать заголовки Last-Modified и If-Modified-Since?
Maxim Dounin
mdounin at mdounin.ru
Wed Nov 12 11:06:05 UTC 2014
Hello!
On Wed, Nov 12, 2014 at 04:17:12AM -0500, Sferg wrote:
> Возможно, Вы и правы... А возможно ли это реализовать на уровне Nginx вместо
> правки PHP-кода?
Нет.
> Например, одни советуют добавить в секцию PHP файла конфигурации nginx
> следующие строки:
>
> expires -1;
> add_header Last-Modified $sent_http_Expires;
>
> В результате чего заголовок Last-Modified появляется при обращении к
> PHP-скриптам (правда, не уверен, хорошая ли это идея).
Это малоосмысленное действие. В ответ будет просто добавлен заголовок
Last-Modified с текущим временем (если повезёт - вообще говоря
переменная $sent_http_expires тут не обязана работать, и однажды
может и перестать), но возвращать 304 на запросы с
If-Modified-Since никто не будет - и соответственно экономии
ресурсов не будет.
> Другие советуют добавить в секцию PHP эти строки:
>
> if_modified_since off;
> fastcgi_pass_header Last-Modified;
>
> Но второй вариант не приводит к появлению заголовка Last-Modified.
Это совсем бессмысленное действие. Директива "if_modified_since
off" отключает собственную обработку nginx'ом запросов с
If-Modified-Since, но для php-запросов эта обработка и так
отключена, ей должен заниматься бекенд. Директива
fastcgi_pass_header имеет смысл только с заголовками, которые
клиенту по умолчанию не передаются, т.е. Status и X-Accel-*.
Документация где-то тут:
http://nginx.org/ru/docs/http/ngx_http_core_module.html#if_modified_since
http://nginx.org/ru/docs/http/ngx_http_fastcgi_module.html#fastcgi_pass_header
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru