Welcome! Log In Create A New Profile

Advanced

ревалидация кеша fastcgi

VovansystemS
May 04, 2016 08:00AM
Добрый день,

пытаюсь настроить ревалидацию страниц сайта в кеше директивой
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
Subject Author Posted

ревалидация кеша fastcgi

VovansystemS May 04, 2016 08:00AM

Re: ревалидация кеша fastcgi

S.A.N May 04, 2016 08:13AM

Re: ревалидация кеша fastcgi

Maxim Dounin May 04, 2016 08:16AM

Re: ревалидация кеша fastcgi

VovansystemS May 04, 2016 08:34AM

Re: ревалидация кеша fastcgi

S.A.N May 04, 2016 08:38AM

Re: ревалидация кеша fastcgi

VovansystemS May 04, 2016 10:26AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 213
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready