Re: nginx кеширование

Maxim Dounin mdounin at mdounin.ru
Thu Apr 18 13:10:39 UTC 2013


Hello!

On Thu, Apr 18, 2013 at 12:59:56PM +0300, Rosavitskiy Valintin wrote:

> On 18.04.2013 12:26, Maxim Dounin wrote:
> >Hello!
> >
> >On Thu, Apr 18, 2013 at 11:03:34AM +0300, Rosavitskiy Valintin wrote:
> >
> >>On 18.04.2013 10:50, Maxim Dounin wrote:
> >>>Hello!
> >>>
> >>>On Thu, Apr 18, 2013 at 02:03:30AM +0300, Валентин Росавицкий wrote:
> >>>
> >>>>18.04.2013 1:53, Maxim Dounin пишет:
> >>>>>Hello!
> >>>>>
> >>>>>
> >>>>>А в чём проблема, кроме необходимости слегка изменить название
> >>>>>директивы?
> >>>>>
> >>>>>http://nginx.org/r/fastcgi_cache_use_stale
> >>>>>
> >>>>В том что 502 ошибку не поддерживает.
> >>>Если вы про http_502, то на самом деле - поддерживает, это просто
> >>>документация по fastcgi_cache_use_stale слегка устарела.
> >>>
> >>>Но, вообще говоря, оно вам не нужно.  Параметры http_* нужны для
> >>>обработки полноценных ответов, возвращённых бекендом (бывает нужно
> >>>при многоуровневом проксировании).  Ошибки же, которые обнаруживаются
> >>>при общении с бекендом непосредственно в самом nginx'е, в
> >>>*_cache_use_stale следует указывать именно как ошибки - error,
> >>>timeout, invalid_header.
> >>>
> >>Вот так сейчас выглядит.
> >>
> >>fastcgi_cache_use_stale error timeout invalid_header updating
> >>http_500 http_503;
> >>
> >>На сервере стоит nginx/1.2.8
> >>Когда добавляем http_502 то на нее ругается.
> >Да, действительно, до fastcgi в этом месте ещё нужно константу
> >дотащить.  Но, повторяю, - оно вам не нужно.  Параметры http_* имеют
> >смысл только в том случае, если бекенд возвращает честный ответ, и
> >в этом ответе написано "случилась ошибка 5xx".  Такая обработка
> >имеет смысл в основном при многоуровневом проксировании (за
> >исключением разве что http_500).
> >
> Понял.
> Есть ли у кого идеии как средствами nginx скрыть ошибку?
> Узкое место - mysql при сбросе кеша но пока это не справить.

Так и попробуйте для начала так же, как раньше делали - 
fastcgi_cache + fastcgi_cache_use_stale, всё должно получиться.

С учётом наличия ещё одного кеша - я бы рекомендовал конфигурить 
что-то нибудь неоченьдолгоживующее, и видимо только для 
востребованных ресурсов (fastcgi_cache_min_uses).  Это, впрочем, 
частности.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



Подробная информация о списке рассылки nginx-ru