ПРОЕКТЫ 


  АРХИВ 


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: Не работает proxy_cache_lock on;



Здравствуйте, Максим.

Вы писали 18 декабря 2012 г., 18:52:50:

> В приведённом логе, к сожалению, отсутствует $upstream_cache_status, 
> но подозреваю, что там было бы не MISS, а EXPIRED - т.е. речь идёт 
> об обновлении устаревшего элемента кеша.  В этом случае 
> proxy_cache_lock работать и не должен.

Да, скорее всего всё именно так. Видимо, следует дополнительно отразить этот 
момент в документации.
Из того, что там сейчас есть:

> Если включено, одновременно только одному запросу будет позволено заполнить 
> новый элемент кэша,
> идентифицируемый согласно директиве proxy_cache_key, передав запрос на 
> проксируемый сервер.

я _предположил_ (и ошибся), что фраза "заполнить новый элемент кэша" также 
применима к обновлению
устаревшего элемента.

> Остальные запросы этого же элемента будут либо ожидать появления ответа в 
> кэше, либо освобождения
> блокировки этого элемента, в течение времени, заданного директивой 
> proxy_cache_lock_timeout.

Я ожидал, что блокировка запроса к элементу также будет применима и во время 
обновления.

И да, я не читал описание директивы proxy_cache_use_stale, т.к. не собирался её 
использовать:

> Чтобы минимизировать число обращений к проксированным серверам при заполнении 
> нового элемента
> кэша, можно воспользоваться директивой proxy_cache_lock.

Использование proxy_cache_use_stale updating; разрешит отдать устаревший ответ, 
а вот варианта
"поставить запрос в очередь и дождаться обновления" - я так понимаю, нету.

То, что proxy_cache_lock не работает для процедуры обновления устаревшего 
элемента, на мой взгляд,
не ожидемо, и, думаю, что этот момент требует дополнительного уточнения в 
документации. Например,
добавить такой абзац:

"На число обращений к проксированным серверам при обновлении устаревших 
элементов кэша данная
директива не влияет. Для минимизирования числа таких обращений следует 
разрешить использование
устаревшего элемента в качестве ответа используя директиву 
proxy_cache_use_stale."

Спасибо за ответ и разъяснение.

-- 
С уважением,
 Pavel                          mailto:pavel2000@xxxxxx

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


 




Copyright © Lexa Software, 1996-2009.