Welcome! Log In Create A New Profile

Advanced

как лучше управлять кешированием fastcgi_cache

VovansystemS
December 26, 2013 04:18AM
Добрый день,

скажите, пожалуйста, каким образом правильнее в nginx 1.5.x + php5-fpm (chroot):

1. выставлять разные параметры кеширования для различных локейшнов,
при использовании CMS на основе kohana (всё реврайтится на index.php)?
сейчас я делаю это через if и $request_uri.

2. Есть ли смысл в ключе кеширования указывать также
"$http_if_modified_since|$http_if_none_match|"? Etag будет одинаковый
для некоторого числа запросов, а вот $http_if_modified_since просто
будет плодить элементы кэша, но работать они будут тогда, когда два
таких запроса придут в одну и ту же секунду?

Сейчас использую примерно вот такой конфиг - как лучше его переписать:

fastcgi_cache_path /run/shm/MAIN levels=1:2 keys_zone=MAIN:64m
max_size=100m inactive=240h;

server {
listen 80;
server_name domain.com;
charset utf-8;
error_log /var/log/nginx/domain.error.log error;
access_log /var/log/nginx/domain.access.log;

root /home/user/domain.com/public_html/;

set $no_cache 0;
if ($request_method = POST) {
set $no_cache 1; # не кешируем POST
}
if ($https = on) {
set $no_cache 1; # не кешируем https
}
if ($query_string != "") {
set $no_cache 0; # кешируем страницы с аргументами
}
if ($request_uri ~* "^/admin(/?.*)$") {
set $no_cache 1; # не кешируем админку
}
if ($request_uri ~* "^/search/(.*)$") {
set $no_cache 1; # не кешируем поиск
}
# не кешируем, если есть такие куки
if ($http_cookie ~*
"auth_user|login|comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in")
{
set $no_cache 1;
}

location / {
rewrite ^/(.*)/$ /$1 redirect; # все ури должны быть без слэша на конце
try_files $uri /index.php$is_args$args;
}

location = /index.php {

include fastcgi_params;
fastcgi_pass 127.0.0.1:9001;
fastcgi_intercept_errors on;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /public_html/index.php;
fastcgi_param DOCUMENT_ROOT /public_html;
fastcgi_param KOHANA_ENV production;

# если $no_cache отличен от нуля, отдаём некешированную страницу
fastcgi_cache_bypass $no_cache;
fastcgi_no_cache $no_cache;
# ревалидируем элемент кэша при помощи условных запросов с
полем заголовка "If-Modified-Since"
fastcgi_cache_revalidate on;
fastcgi_temp_path /run/shm/fcgi 1 2;
fastcgi_cache MAIN;
fastcgi_cache_key
"$scheme|$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
fastcgi_ignore_headers "Cache-Control" "Expires" "Set-Cookie";
fastcgi_cache_min_uses 1;
fastcgi_cache_valid 1h;
fastcgi_cache_valid any 10s;
fastcgi_cache_use_stale updating error timeout invalid_header
http_500; # отдаём устаревший закешированный ответ в этих случаях

}

# все остальные .php файлы
location ~* \.php$ { return 403; }

# статика
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-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

как лучше управлять кешированием fastcgi_cache

VovansystemS December 26, 2013 04:18AM

Re: как лучше управлять кешированием fastcgi_cache

Maxim Dounin December 26, 2013 07:30AM

Re: как лучше управлять кешированием fastcgi_cache

VovansystemS December 26, 2013 10:16AM

Re: как лучше управлять кешированием fastcgi_cache

Maxim Dounin December 26, 2013 10:44AM

Re: как лучше управлять кешированием fastcgi_cache

VovansystemS December 26, 2013 01:20PM

Re: как лучше управлять кешированием fastcgi_cache

S.A.N December 29, 2013 01:04AM

Re: как лучше управлять кешированием fastcgi_cache

Валентин Бартенев December 26, 2013 10:52AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 307
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