Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: как лучше управлять кешированием fastcgi_cache
On Thursday 26 December 2013 18:14:05 VovansystemS wrote:
[..]
> Также не совсем понятно, как избавится от if, когда на то, нужно ли
> кешировать (отдавать закешированный) контент, влияет несколько
> факторов (есть ли определённая кука ИЛИ метод запроса post ИЛИ есть
> аргументы (например)). Возможно ли и стоит ли переписать это на map'ы
> и как это будет выглядеть? Как бы сделали Вы?
>
>
> 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;
> 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
http://nginx.org/r/fastcgi_cache_methods/ru
> }
> if ($https = on) {
> set $no_cache 1; # не кешируем https
> }
> if ($query_string != "") {
> set $no_cache 0; # кешируем страницы с аргументами
> }
Обращаю ваше внимание на то, что вы таким образом разрешаете
кешировать POST запросы по https с аргументами. Сомневаюсь,
что именно такая логика вам была нужна.
> # не кешируем, если есть такие куки
> if ($http_cookie ~*
> "auth_user|login|comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no
> _cache|wordpress_logged_in")
{
> set $no_cache 1;
> }
Скорее всего вы хотите:
map $args $empty_args {
default 0;
"" 1
}
fastcgi_no_cache $empty_args $https $cookie_auth_user $cookie_login .. ;
--
Валентин Бартенев
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|