Welcome! Log In Create A New Profile

Advanced

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

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

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 сам ответит редиректом из своего кеша.
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: 112
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready