Hello! On Wed, Apr 29, 2015 at 12:35:22PM +0300, Vasil Mikhalenya wrote:
> Коллеги, подскажите что происходит [...] > proxy_cache_path /var/lib/nginx/cache keys_zone=mycdn:20m inactive=1d > use_temp_path=off; > > > server { > listen 80; > server_name mycdn.com 127.0.0.1; > > proxy_cache mycdn; > > location / { > proxy_pass http://origin; > proxy_set_header Host $proxy_host; > proxy_cache_lock on; > proxy_cache_lock_age 2h; > proxy_cache_lock_timeout 2h; > proxy_cache_key "$uri"; > add_header Cache $upstream_cache_status; > } > } > > > [root@node ~]# ll /var/lib/nginx/cache/ | wc -l > > 228 > т.е. у nginx в cache есть около 2 сотен популярных файлов (118G > /var/lib/nginx/cache/), > он успешно отдает несколько дней, ничего нового из origin не качает, в > какой то момент случается это Видимо, это происходит в тот момент, когда ответы в кеше expire'ятся. Имеет смысл включить "proxy_cache_use_stale updating", см. тут: http://nginx.org/r/proxy_cache_use_stale/ru Кроме того, если речь идёт о больших статических файлах - имеет смысл также использовать proxy_cache_revalidate, см. тут: http://nginx.org/r/proxy_cache_revalidate/ru > [root@node ~]# ll /var/lib/nginx/cache/temp/ | wc -l > > 5714 > > Т.е. число файлов в temp растет очень быстро, хотя обычно = 0. > > restart nginx и очистка tempdir не помогает (файлы в tempdir появляются > снова), помогает только полная очистка cache Потому что proxy_cache_lock используется только при добавлении элементов в кеш. Если хочется избежать одновременных обращений на бекенд нескольких клиентов при обновлении, то надо включать "proxy_cache_use_stale updating", см. выше. -- Maxim Dounin http://nginx.org/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru