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

Trurl nginx-forum at nginx.us
Mon Jan 28 08:34:00 UTC 2013


Не могу ничего понять из документации.

Допустим у меня вот такой набор:
   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;
    proxy_buffer_size   8k;
    proxy_buffers       32 8k;
    proxy_busy_buffers_size 64k;
    proxy_max_temp_file_size 0; 
# ( рекомендовали тут так для ограничения дискового пространства,
используемого nginx - если что в корне не верно - поправте меня)

И при таком наборе nginx все равно запихал в кеш файл размером 249M, выкинув
всю мелочь и остался доволен.
Что я делаю не так? Как ограничить максимальный размер кешируемого файла?
Мне даже лучше чтобы в кеш попадали только файлы размером с
proxy_busy_buffers_size, а все остальные после заполнения буфферов начинали
отдаваться с апстрима, минуя кеш и темп, спокойно и не торопливо.
Тем более что у меня все равно, вдобавок,
    limit_rate_after 10000k;
    limit_rate       250k;


> Специальный процесс “cache manager” следит за максимальным размером кэша,
заданным параметром
> max_size, и при превышении его размеров удаляет наименее востребованные
данные. 
Это я вообще не понял. Общий размер кеша, на практике, ничего общего с
max_size не имеет, зато подозрительно совпадает с размером, заданным в
keys_zone, который, вроде бы должен задавать размер разделяемой памяти. 
Размер proxy_temp_path вообще не понятно как лимитируется. На практике -
достижением 100% забитости диска, после чего все помирает.

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



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