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