Кэширование в nginx, ускоряем работу сайта
2015, 13 августа
Заходим в папку с настройками nginx
cd /etc/nginx
Открываем, через ваш любимый редактор файл настроек nginx.conf и добавляем код:
#Задаёт путь и другие параметры кэша
proxy_cache_path /disk/cache levels=1:2 keys_zone=cache:30m max_size=1G;
# Задаёт имя каталога для хранения временных файлов с данными, полученными от проксируемых серверов
proxy_temp_path /var/lib/nginx/proxy 1 2;
# Запрещает обработку некоторых полей заголовка
proxy_ignore_headers Expires Cache-Control;
# Определяет, в каких случаях можно использовать устаревший закэшированный ответ
proxy_cache_use_stale error timeout invalid_header http_502;
# Задаёт условия, при которых ответ не будет сохраняться в кэш
proxy_no_cache $cookie_session;
Теперь в раздел настроек нашего сайта в блок location, который мы хотим кэшировать добавим код(в данном примере кешируем раздел сайта со статьями )
#кэшироваться будет только http://ваш сайт/articles/
location ^~ /articles/ {
proxy_cache cache;
# Задаёт время кэширования
proxy_cache_valid 40m;
# Задаёт время кэширования для 404 кодов ответа
proxy_cache_valid 404 10m;
#-----------------------------------
#тут ваши настройки location
#-----------------------------------
}
Все теперь перезагружаем nginx
sudo /etc/init.d/nginx restart
Все теперь раздел /articles/ у нас кэширует запросы, а актуальность составляет 40 минут. Это значит, что после первого запроса к разделу сайта, он попадет в кэш и в течении 40 минут все последующие запросы будут выдаваться из кэша. Это позволит снизить нагрузку и увеличить скорость работы вашего сайта.