Nginx proxy cache

Nginx proxy cache или серверное кэширование Nginx — позволяет сохранять на сервере результаты выполнения запросов и отдавать их повторно другим пользователям.

Nginx proxy cache, серверное кэширование

В nginx.conf в основном блоке http задается директива, которая определяет путь для сохранения файлов, keys_zone для кэша, время кэгирования и максимальный размер.

mcedit /etc/nginx/nginx.conf

proxy_cache_path /var/cache/nginx levels=2 keys_zone=one:50m max_size=150m;

Каталог нужно создать и сделать владельцем пользователя, из под которого работает веб-сервер

mkdir /var/cache/nginx

chown www-data: /var/cache/nginx

Могут задаваться и другие опции, приведены те, что используются чаще всего.

Остальные директивы добавляются обычно в блок server в виртуальном хосте или в один из блоков location.

proxy_cache one;
proxy_cache_valid 200 301 302 304 15m;
proxy_cache_lock on;
proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_ignore_headers «Cache-Control» «Expires»;
proxy_cache_key «$scheme$host$request_uri»;

Если сайтов много все директивы можно вынести в отдельный конфигурационный файл, который просто подключить через include. Это позволит быстро вносить изменения, которые затронут все сайты. Иначе править директивы придется для каждого.

После добавления директив нужно перезапустить веб-сервер

nginx -s reload

Читайте про браузерное кэширование.