<p dir="ltr">Если я все правильно понял, то указанные заголовки возвращаются исходя из даты изменения файла. Поскольку пхп возвращает динамический контент, то такой информации у nginx нет и быть не может, и соответственно, ответственность за заголовки лежит на бекенде</p>
<div class="gmail_quote">09.11.2014 20:33 пользователь "Sferg" <<a href="mailto:nginx-forum@nginx.us">nginx-forum@nginx.us</a>> написал:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Здравствуйте, господа. Установлена связка nginx + php-fpm. При обращении к<br>
статичному контенту (html, jpg и т.д.) заголовок Last-Modified возвращается<br>
нормально, но не возвращается If-Modified-Since. Если же обращаюсь к<br>
динамичному контенту (php), то ни один из этих заголовков не возвращается.<br>
Подскажите, пожалуйста, каким образом можно заставить nginx возвращать<br>
заголовки Last-Modified и If-Modified-Since? В качестве средства проверки<br>
использую сайт <a href="http://last-modified.com/ru/if-modified-since.html" target="_blank">http://last-modified.com/ru/if-modified-since.html</a>.<br>
<br>
Вот мой конфиг nginx:<br>
<br>
user www-data www-data;<br>
worker_processes 2;<br>
worker_cpu_affinity 0101 1010;<br>
worker_rlimit_nofile 8192;<br>
worker_priority -5;<br>
timer_resolution 100ms;<br>
error_log /var/log/nginx/error.log warn;<br>
pid /var/run/nginx.pid;<br>
<br>
events {<br>
    worker_connections 2048;<br>
    multi_accept on;<br>
    accept_mutex on;<br>
    use epoll;<br>
}<br>
<br>
http {<br>
    include mime.types;<br>
    default_type application/octet-stream;<br>
    index index.html index.htm index.php;<br>
<br>
    upstream <a href="http://example.com" target="_blank">example.com</a> {<br>
        server unix:/var/run/php5-fpm_example.com.sock max_fails=3<br>
fail_timeout=3s;<br>
    }<br>
<br>
    server {<br>
        listen *:80;<br>
        server_name <a href="http://example.com" target="_blank">example.com</a>;<br>
        root /home/<a href="http://example.com/www" target="_blank">example.com/www</a>;<br>
        access_log /var/log/nginx/access.log;<br>
<br>
        location ~ ^.+\.php(?:/.*)?$ {<br>
            fastcgi_pass <a href="http://example.com" target="_blank">example.com</a>;<br>
            include fastcgi_params;<br>
            fastcgi_split_path_info ^(.+?\.php)(/.*)$;<br>
            if ($uri ~ ^(?<script_name>.+\.php)?(?<path_info>/.*)?$) {}<br>
<br>
            set $path_info_final $path_info;<br>
            if ($fastcgi_path_info != '') {<br>
                set $path_info_final $fastcgi_path_info;<br>
            }<br>
<br>
            fastcgi_param PATH_INFO $path_info_final;<br>
<br>
            set $script_name_final '/index.php';<br>
            if ($script_name != '') {<br>
            set $script_name_final $script_name;<br>
            }<br>
<br>
            fastcgi_param SCRIPT_FILENAME $document_root$script_name_final;<br>
<br>
            if (!-e $document_root$script_name_final) {<br>
                return 404;<br>
            }<br>
<br>
            fastcgi_param SCRIPT_NAME $script_name_final;<br>
<br>
            set $request_uri_final $request_uri;<br>
            if ($path_info_final != '') {<br>
                set $request_uri_final $path_info_final$is_args$args;<br>
            }<br>
<br>
            fastcgi_param REQUEST_URI $request_uri_final;<br>
            fastcgi_index index.php;<br>
            fastcgi_next_upstream error timeout;<br>
            fastcgi_keep_conn on;<br>
            fastcgi_hide_header "X-Powered-By";<br>
        }<br>
<br>
        location / {<br>
            index index.html index.htm index.php;<br>
            try_files $uri $uri/ /index.html /index.htm /index.php;<br>
        }<br>
<br>
        location /blog {<br>
            try_files $uri $uri/ /blog/index.php?q=$uri&$args;<br>
        }<br>
<br>
        location ~ \.(htc|js|js2|js3|js4)$ {<br>
            expires 31536000s;<br>
            add_header Pragma "public";<br>
            add_header Cache-Control "max-age=31536000, public,<br>
must-revalidate, proxy-revalidate";<br>
        }<br>
<br>
        location ~ \.(html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml)$ {<br>
            expires 3600s;<br>
            add_header Pragma "public";<br>
            add_header Cache-Control "max-age=3600, public, must-revalidate,<br>
proxy-revalidate";<br>
        }<br>
<br>
        location ~<br>
\.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|json|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$<br>
{<br>
            expires 31536000s;<br>
            add_header Pragma "public";<br>
            add_header Cache-Control "max-age=31536000, public,<br>
must-revalidate, proxy-revalidate";<br>
        }<br>
<br>
    }<br>
<br>
}<br>
<br>
Posted at Nginx Forum: <a href="http://forum.nginx.org/read.php?21,254706,254706#msg-254706" target="_blank">http://forum.nginx.org/read.php?21,254706,254706#msg-254706</a><br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div>