ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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


 




Copyright © Lexa Software, 1996-2009.