nginx-0.8.1
Volkov Oleg
nginx at teratelecom.ru
Fri Jun 12 22:11:37 MSD 2009
В Птн, 12/06/2009 в 15:47 +0400, Igor Sysoev пишет:
> On Fri, Jun 12, 2009 at 02:52:19PM +0400, Volkov Oleg wrote:
>
> > Еще заметил, если в кеше лежит нечто без expire (например страница 404)
> > а бекенд отдает страницу 200 но с истекшим expire то нгинкс первый раз
> > отдает страницу от бэкенда (200) и заклинивает - он не может обновить
> > кеш и следующие запросы отдаются из кеша (страница 404), в логах при
> > этом статус UPDATING
> >
> > Пока такое лечится очисткой кэша.
>
> В кэше expires есть всегда: если его нет в заголовках ответа, то
> proxy/fastcgi_cache_valid. Но сути ошибки я не понял, можно сделать
> отладочный лог ?
Лог получить сложно, так как я почистил кеш, а 404 в него попало
случайно.
Если придумаю как воспроизвести проблему искусственно - пришлю.
Смысл в том, что кеш то истек, но бэкенд выдавал страницу с expire на
несколько лет назад. Поэтому nginx не заменял ею страницу в кеше (она
свежее считалась). Но nginx не подумал, что в кеше то 404, а ему
предлагают 200. И по непонятным причинам все дальнейшие запросы попадали
под
proxy_cache_use_stale updating;
то есть "залипал" статус UPDATING. Хотя первая страничка, судя по логам,
отдавалась нормально (статус 200, EXPIRED).
Воспроизвожу все по памяти.
--
С уважением,
Волков Олег
More information about the nginx-ru
mailing list