====== Организация горячего кэширования статики в nginx ======
Источник - http://sav.ecom24.ru/2010/04/nginx-hot-cache/
В определенных ситуациях требуется быстро раздавать фиксированный набор статических файлов, например при раздаче swf файлов flash/flex приложений.
Для того, чтобы снизить нагрузку на диски и уменьшить время реакции, можно организовать горячее кэширование файлов в оперативной памяти:
Создадим хранилище для кэша на md диске:
mkdir /var/tmp/nginx
chown www:www /var/tmp/nginx
echo "md /var/tmp/nginx mfs rw,-s128m,late 2 0" >> /etc/fstab
mount /var/tmp/nginx
Организуем локальный сервер для раздачи статики, с которого будет заполняться кэш:
server
{
listen 127.0.0.1:80;
root /usr/local/www/site;
}
В контексте **http** описываем зону кэширования:
proxy_cache_path /var/tmp/nginx/store levels=1:2 keys_zone=STATIC:10m inactive=1d max_size=128m;
В контексте **server** добавляем **location** для статики, которую будем кэшировать:
location ~\.swf$ {
proxy_pass http://127.0.0.1:80;
expires 30d;
proxy_intercept_errors on;
proxy_cache STATIC;
proxy_cache_min_uses 1;
proxy_cache_valid 1d;
proxy_ignore_client_abort on;
proxy_temp_path /var/tmp/nginx/tmp;
proxy_cache_use_stale updating;
}
Перегружаем сервер и запрашиваемые swf файлы начинают кэшироваться на md диске:
/usr/local/etc/rc.d/nginx reload