Re: помогите понять логику кеширования и буферизации

teo nginx-forum at nginx.us
Mon Jan 28 19:34:17 UTC 2013


Trurl Wrote:
-------------------------------------------------------
> Не могу ничего понять из документации.
> 
> Допустим у меня вот такой набор:
>    proxy_temp_path /var/lib/nginx/proxy 1 1;
>     proxy_cache_path /var/lib/nginx/proxy/cache levels=1:1
> keys_zone=main_cache:256m inactive=42h max_size=5m;

Давайте я попробую объяснить, хотя на уровень гуру не претендую.

max_size=5m задает тот размер, до которого выхотите уменьшить размер своего
кеша, если в нем перестанет хватать памяти для новых запросов,
или до какого размера он опустится при новом старте, когда запустится
фоновый "загрузчик кеша".
Т.е. - сколько вы готовы "хранить вечно"

proxy_temp_path - задает путь, чтобы облегчить в вашей системе перемещение
кешируемых файлов, потому что именно такой метод использован в nginx.
И именно поэтому это должно быть на одной файловой системе, если хотите
чтобы это происходило мгновенно, а не в виде (copy $1 $2; remove $1);
Т.ч. после перемещения файлов ее размер должен быть равен нулю или близко
Вот примерно как это выглядит в реальности для

proxy_cache_path	/var/cache/nginx/media_cache	levels=2:2
keys_zone=media:8192m inactive=7d max_size=8000m;
proxy_temp_path		/var/cache/nginx/proxy_temp 2 2;

4,0K	client_temp
4,0K	fastcgi_temp
5,2G	media_cache --- место под кеш
44M	proxy_temp           --- место под временные файлы
4,0K	scgi_temp
4,0K	uwsgi_temp
5,2G	итого

Как видим в temp_path нет "копии" тех 5 гиг, что теперь лежат в кеше.

А чтобы не помещать в кеш какие-то файлы, то для этого есть всего одна опция
proxy_no_cache
А уж какие значения вы туда подсунете - то и не будет кешироваться.
Правда желательно будет указать еще proxy_cache_bypass - с такими же
значениями, чтобы nginx не лез за ними в кеш

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235634,235674#msg-235674



Подробная информация о списке рассылки nginx-ru