ПРОЕКТЫ 


  АРХИВ 


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;



Hello!

On Tue, Dec 18, 2012 at 12:07:04AM +0700, Pavel V. wrote:

> Пытаемся внедрять кеширование ответов от скриптов.
> Кеширование происходит, но не работает директива proxy_cache_lock.
> По логам сервера видно, что на апач одновременно передается несколько 
> запросов,
> хотя используется proxy_cache_lock on; и ожидается, что на апач упадет один 
> запрос.
> 
> Подскажите, что сделано не так?
> 
> Подробности:
> 
> nginx version: nginx/1.1.17 , пакет nginx-full из оф. репозитария Debian.
> 
> Кусок лога (формат лога приведен ниже, вместе с частью конфигурации):
> 
> # tail -f /var/log/nginx/apache1.log |grep /ru/informers/small/
> [test] "2.038" 9.2.3.4 - - [17/Dec/2012:16:40:13 +0000] 200 "GET 
> /ru/informers/small/51.png HTTP/1.0"  6853 "-" "ApacheBench/2.3" 
> "127.0.0.1:80"
> [test] "2.041" 9.2.3.4 - - [17/Dec/2012:16:40:13 +0000] 200 "GET 
> /ru/informers/small/51.png HTTP/1.0"  6853 "-" "ApacheBench/2.3" 
> "127.0.0.1:80"
> [test] "2.068" 9.2.3.4 - - [17/Dec/2012:16:40:13 +0000] 200 "GET 
> /ru/informers/small/51.png HTTP/1.0"  6853 "-" "ApacheBench/2.3" 
> "127.0.0.1:80"
> [test] "2.074" 9.2.3.4 - - [17/Dec/2012:16:40:13 +0000] 200 "GET 
> /ru/informers/small/51.png HTTP/1.0"  6853 "-" "ApacheBench/2.3" 
> "127.0.0.1:80"
> [test] "2.080" 9.2.3.4 - - [17/Dec/2012:16:40:13 +0000] 200 "GET 
> /ru/informers/small/51.png HTTP/1.0"  6853 "-" "ApacheBench/2.3" 
> "127.0.0.1:80"
> [test] "2.082" 9.2.3.4 - - [17/Dec/2012:16:40:13 +0000] 200 "GET 
> /ru/informers/small/51.png HTTP/1.0"  6853 "-" "ApacheBench/2.3" 
> "127.0.0.1:80"
> [test] "2.082" 9.2.3.4 - - [17/Dec/2012:16:40:13 +0000] 200 "GET 
> /ru/informers/small/51.png HTTP/1.0"  6853 "-" "ApacheBench/2.3" 
> "127.0.0.1:80"
> [test] "2.092" 9.2.3.4 - - [17/Dec/2012:16:40:13 +0000] 200 "GET 
> /ru/informers/small/51.png HTTP/1.0"  6853 "-" "ApacheBench/2.3" 
> "127.0.0.1:80"
> [test] "2.093" 9.2.3.4 - - [17/Dec/2012:16:40:13 +0000] 200 "GET 
> /ru/informers/small/51.png HTTP/1.0"  6853 "-" "ApacheBench/2.3" 
> "127.0.0.1:80"
> [test] "-" 9.2.3.4 - - [17/Dec/2012:16:40:14 +0000] 200 "GET 
> /ru/informers/small/51.png HTTP/1.0"  6853 "-" "ApacheBench/2.3" "-"
> [test] "-" 9.2.3.4 - - [17/Dec/2012:16:40:14 +0000] 200 "GET 
> /ru/informers/small/51.png HTTP/1.0"  6853 "-" "ApacheBench/2.3" "-"
> [test] "2.420" 9.2.3.4 - - [17/Dec/2012:16:40:14 +0000] 200 "GET 
> /ru/informers/small/51.png HTTP/1.0"  6853 "-" "ApacheBench/2.3" 
> "127.0.0.1:80"
> [test] "-" 9.2.3.4 - - [17/Dec/2012:16:40:14 +0000] 200 "GET 
> /ru/informers/small/51.png HTTP/1.0"  6853 "-" "ApacheBench/2.3" "-"
> [test] "-" 9.2.3.4 - - [17/Dec/2012:16:40:14 +0000] 200 "GET 
> /ru/informers/small/51.png HTTP/1.0"  6853 "-" "ApacheBench/2.3" "-"
> [test] "-" 9.2.3.4 - - [17/Dec/2012:16:40:14 +0000] 200 "GET 
> /ru/informers/small/51.png HTTP/1.0"  6853 "-" "ApacheBench/2.3" "-"
> [test] "-" 9.2.3.4 - - [17/Dec/2012:16:40:14 +0000] 200 "GET 
> /ru/informers/small/51.png HTTP/1.0"  6853 "-" "ApacheBench/2.3" "-"
> .... Далее идут логи запросов с ответами только из кэша
> 
> Этот лог снят в момент запуска команды
> #ab -c 10 -k -n 10000 http://test/ru/informers/small/51.png
> 
> Аналогичное поведение видно для той же команды и в момент устаревания уже 
> имеющегося элемента кэша.

Для устаревания подобное поведение нормально - для устаревших 
ответов следует использовать

   proxy_cache_use_stale updating; 

См. http://nginx.org/r/proxy_cache_use_stale/ru.

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

-- 
Maxim Dounin
http://nginx.com/support.html

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


 




Copyright © Lexa Software, 1996-2009.