ПРОЕКТЫ 


  АРХИВ 


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



Вам правильно ответили, в первую очередь нужно читать документацию.
Возможно вы удивитесь но ваш конфиг по кешированию может и должен выглядить
намного короче, как-то так

fastcgi_cache_lock on;
fastcgi_cache_revalidate on;
fastcgi_cache_methods GET HEAD;
fastcgi_cache_valid 200 301 302 0s;
fastcgi_cache_key "$host$uri$is_args$args";
fastcgi_cache_use_stale error updating http_503;

Програмить что-то более в конфиге Nginx не нужно, управлять кэшированием
нужно на стороне бекенда, это будет удобней и эффективней.
Т.е скрипты по адресу /admin /search, должны отдавать HTTP хедер
Cache-Control: no-store, это запретит кеширования на стороне Nginx и в
браузере клиента.

Скрипты по адресу /news /feed должны отдавать HTTP хедер Cache-Control:
max-age=600, это разрешит кешировать страницу на 10 минут (600 секунд),
таким образом кеш будет в браузере клиента и в Nginx, и браузер на
протяжении 10 минут, вообще не будет делать повторных запросов по этому uri,
а будет использовать свой локальный кеш, это намного быстрей чем гонять
контент по сети.

С куками тоже все просто, как правило проблема в том что в скриптах
используется session_start() всегда и везде, но эта функция автоматом
отправляет HTTP заголовки на запрет кеширования и куки с id сессии, функция
все делает правильно, просто вызывать её нужно только в тех скриптах которые
недолжны попадать в кеш, во всех остальных скриптах, функция session_start()
вызыватся не должна.

И советую не читать статьи, типа - Подводные камни при использовании
кэширования в nginx http://habrahabr.ru/post/72539/
К сожалению, в статье больше глупостей чем разумных вещей, если будите
читать документацию и пользоваться логикой, подводных камней в кэшировании
не будет и конфиг станет короче и управляемость кешем станет прозрачной а
главное само кэширования станет эффективней.

Да, насчет отрезать слеш в конце uri, лучше это тоже делать на стороне
бекенда, тогда редиректы которые сделал бекенд, соханятся в кеше Nginx и
повторные запросы со слешем в конце уже не будут приходить на бекенд, Nginx
сам ответит редиректом из своего кеша.

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,245843,245896#msg-245896

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.