<div dir="ltr"><div>проблема все еще воспроизводится с таким конфигом,</div><div><br></div><div>    location / {</div><div>        proxy_pass <a href="http://origin.example.com">http://origin.example.com</a>;</div><div>        proxy_set_header Host       $proxy_host;</div><div>        proxy_cache_lock on;</div><div>        proxy_cache_lock_age 1d;</div><div>        proxy_cache_lock_timeout 1d;</div><div>        proxy_cache_revalidate on;</div><div>        proxy_cache_use_stale updating;</div><div>        proxy_cache_key "$uri";</div><div>        add_header Cache $upstream_cache_status;</div><div>        add_header X-ID  "{{ ansible_hostname }}";</div><div>    }</div><div><br></div><div>за пару часов nginx просто съедает >1Tb локального диска, помогает только остановка nginx, очистка tmp кеша, запуск nginx, иногда делать это нужно несколько раз</div><div><br></div><div>в логах в этот момент</div><div><br></div><div><div><div>2016/02/11 05:08:42 [crit] 9777#9777: *54423736 cache file "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long header, client: 67.11.37.88,</div><div>2016/02/11 05:08:44 [crit] 9777#9777: *54423724 cache file "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long header, client: 67.11.37.88,</div><div>2016/02/11 05:08:44 [crit] 9777#9777: *54423726 cache file "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long header, client: 67.11.37.88,</div><div>2016/02/11 05:08:44 [crit] 9777#9777: *54423729 cache file "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long header, client: 67.11.37.88,</div><div>2016/02/11 05:08:44 [crit] 9777#9777: *54423737 cache file "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long header, client: 67.11.37.88,</div></div></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-04-30 14:05 GMT+03:00 Vasil Mikhalenya <span dir="ltr"><<a href="mailto:bazilek@gmail.com" target="_blank">bazilek@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Спасибо, пробуем. <div><br></div><div>Однако это не совсем очевидно, что во время валидации cache в tmpdir начинают появляться файлы на каждый range запрос.</div></div><div class="gmail_extra"><div><div class="h5"><br><div class="gmail_quote">2015-04-29 14:18 GMT+03:00 Maxim Dounin <span dir="ltr"><<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello!<br>
<br>
On Wed, Apr 29, 2015 at 12:35:22PM +0300, Vasil Mikhalenya wrote:<br>
<br>
> Коллеги, подскажите что происходит<br>
<br>
[...]<br>
<span><br>
> proxy_cache_path /var/lib/nginx/cache keys_zone=mycdn:20m inactive=1d<br>
> use_temp_path=off;<br>
><br>
><br>
> server {<br>
>     listen 80;<br>
>     server_name <a href="http://mycdn.com" target="_blank">mycdn.com</a> 127.0.0.1;<br>
><br>
>     proxy_cache mycdn;<br>
><br>
>     location / {<br>
>         proxy_pass <a href="http://origin" target="_blank">http://origin</a>;<br>
>         proxy_set_header Host       $proxy_host;<br>
>         proxy_cache_lock on;<br>
>         proxy_cache_lock_age 2h;<br>
>         proxy_cache_lock_timeout 2h;<br>
>         proxy_cache_key "$uri";<br>
>         add_header Cache $upstream_cache_status;<br>
>     }<br>
> }<br>
><br>
><br>
> [root@node ~]# ll /var/lib/nginx/cache/ | wc -l<br>
><br>
> 228<br>
> т.е. у nginx в cache есть около 2 сотен популярных файлов  (118G<br>
> /var/lib/nginx/cache/),<br>
> он успешно отдает несколько дней, ничего нового из origin не качает, в<br>
> какой то момент случается это<br>
<br>
</span>Видимо, это происходит в тот момент, когда ответы в кеше<br>
expire'ятся.  Имеет смысл включить "proxy_cache_use_stale<br>
updating", см. тут:<br>
<br>
<a href="http://nginx.org/r/proxy_cache_use_stale/ru" target="_blank">http://nginx.org/r/proxy_cache_use_stale/ru</a><br>
<br>
Кроме того, если речь идёт о больших статических файлах - имеет<br>
смысл также использовать proxy_cache_revalidate, см. тут:<br>
<br>
<a href="http://nginx.org/r/proxy_cache_revalidate/ru" target="_blank">http://nginx.org/r/proxy_cache_revalidate/ru</a><br>
<span><br>
> [root@node ~]# ll /var/lib/nginx/cache/temp/ | wc -l<br>
><br>
> 5714<br>
><br>
> Т.е. число файлов в temp растет очень быстро, хотя обычно = 0.<br>
><br>
> restart nginx и очистка tempdir не помогает (файлы в tempdir появляются<br>
> снова), помогает только полная очистка cache<br>
<br>
</span>Потому что proxy_cache_lock используется только при добавлении<br>
элементов в кеш.  Если хочется избежать одновременных обращений на<br>
бекенд нескольких клиентов при обновлении, то надо включать<br>
"proxy_cache_use_stale updating", см.  выше.<br>
<span><font color="#888888"><br>
--<br>
Maxim Dounin<br>
<a href="http://nginx.org/" target="_blank">http://nginx.org/</a><br>
</font></span><div><div><br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></div></div></blockquote></div><br><br clear="all"><div><br></div></div></div><span class="">-- <br><div>Best regards,<br>Vasil Mikhalenya</div>
</span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Best regards,<br>Vasil Mikhalenya</div>
</div>