ПРОЕКТЫ 


  АРХИВ 


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: nginx-0.8.1



В Птн, 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).

Воспроизвожу все по памяти.
-- 
С уважением,
Волков Олег





 




Copyright © Lexa Software, 1996-2009.