Добрый день, пытаюсь настроить ревалидацию страниц сайта в кеше директивой fastcgi_cache_revalidate on; ожидаю, что если элемент кеша устарел, то nginx сам сделает запрос к бекэнду с заголовком If-Modified-Since (как это описано тут http://whitequark.org/blog/2014/04/05/page-caching-with-nginx/ ), но этого не происходит.
при устаревании элемента кеша $upstream_cache_status == EXPIRED и на бэкэнд уходит стандартный GET без заголовков на ревалидацию при включённом fastcgi_cache_revalidate on. я попробовал задавать fastcgi_cache_revalidate на разных уровнях, на случай если есть особенности наследования, но всё равно безуспешно. если же я делаю curl -i --header 'If-Modified-Since: Tue, 11 Dec 2015 10:10:24 GMT' https://site.com то получаю X-My-Cache: REVALIDATED - потому что клиентский заголовок был корректно передан на бэкэнд, который ответил header('HTTP/1.0 304 Not Modified'); вопрос: я не понимаю как должна работать директива и хочу странного или всё же задачу можно как-то решить? подскажите, пожалуйста. конфиг: fastcgi_cache_path /tmp/MAIN levels=1:2 keys_zone=MAIN:64m max_size=768m inactive=24h; server { listen ***:443 ssl; server_name site.com; ssl on; ssl_certificate /etc/nginx/ssl/certs-mcg/site_co_uk.pem; ssl_certificate_key /etc/nginx/ssl/certs-mcg/site_co_uk.key; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; error_log /home/site/logs/site-ssl.error.log error; access_log /home/site/logs/site-ssl.access.log wtimes; root /www/site/domains/site.com/public_html/; set $sock 127.0.0.1:9001; include fastcgi_params; fastcgi_index index.php; fastcgi_intercept_errors on; fastcgi_param DOCUMENT_ROOT /public_html; fastcgi_param SCRIPT_FILENAME /public_html$fastcgi_script_name; fastcgi_no_cache $cookie_login $cookie_authautologin $cookie_PHPSESSID; fastcgi_cache_bypass $cookie_login $cookie_authautologin $cookie_PHPSESSID; fastcgi_cache_revalidate on; fastcgi_temp_path /tmp/fcgi 1 2; fastcgi_cache MAIN; fastcgi_cache_key "$scheme|$request_method|$host|$request_uri"; fastcgi_cache_lock on; fastcgi_cache_methods GET HEAD; fastcgi_ignore_headers "Cache-Control" "Expires"; fastcgi_cache_valid 10s; add_header X-My-Cache $upstream_cache_status; fastcgi_param HTTP_IF_NONE_MATCH $http_if_none_match if_not_empty; fastcgi_param HTTP_IF_MODIFIED_SINCE $http_if_modified_since if_not_empty; index index.html index.php; location / { fastcgi_cache_revalidate on; try_files $uri $uri/ /index.php$is_args$args; } location ~* "^/wp-admin(/.*$|/$|$)" { fastcgi_cache off; try_files $fastcgi_script_name =404; fastcgi_pass $sock; add_header X-My-Cache-admin $upstream_cache_status; } location ~* "^/cart(/.*$|/$|$)" { fastcgi_cache off; try_files $fastcgi_script_name =404; fastcgi_pass $sock; add_header X-My-Cache-cart $upstream_cache_status; } location ~* \.php$ { fastcgi_cache_revalidate on; try_files $fastcgi_script_name =404; fastcgi_pass $sock; } # Static files location location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|docx)$ { expires 60d; access_log off; } } версии софта: nginx version: nginx/1.9.15 (из официального репозитория) PHP 5.4.45-1~dotdeb+7.1 Debian GNU/Linux 7 _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru