Настройка Кэш (cache) в Nginx

Модель ngx_http_proxy_module позволяет передавать запросы другому серверу и управляет настройкой кеширования.

Nginx (с версии 0.7.44) умеет кэшировать, что позволяет повысить скорость отдачи часто используемых страниц. Nginx сохраняет сгенерированные страницы Apache в виде HTML- файлов на диске и при повторном обращении по одинаковому URL файл из кэша отдается клиенту. Ключом и именем файла в кэше является результат функции MD5 от проксированного URL.

Настройку кэширования нужно проводить внимательно, потому что на динамических сайтах может быть утерян функционал, например, перестанут работать корзины на сайтах-магазинах. Если движок сайта(CMS) известен можно попробовать найти готовые конфигурационный файлы для Nginx в интернете.

Настройки кэша в nginx. Конфигурирует кэш, который может хранить различные метаданные.

proxy_pass_header Set-Cookie;
# разрешает передавать от проксируемого сервера клиенту запрещённые для передачи строки
proxy_ignore_headers "Expires" "Cache-Control";
# запрещает обработку некоторых строк заголовка из ответа проксированного сервера

Пример кода для включения кэширования в виртуальном хосте nginx вашего сайта:

location ~* ^.+\.(?:css|cur|js|jpe?g|gif|htc|ico|png|html|xml|otf|ttf|eot|woff|woff2|svg)$ {
    expires 30d;
    add_header Cache-Control public;
}

Вариант из интернета, включит кэш на бесконечный срок для файлов с перечисленными расширениями

server {
...
location ~* ^.+.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
expires max;
}
...
}