Настройка кэширования на сервере

Настройка кэширования на сервере позволяет значительно сокращать время повторной загрузки страницы, сохраняя ее содержимое в кэше при первом обращении. Кэшироваться может только статика: html, css и изображения. Преимущественно из них и состоит контент любого сайта.

Суть кэширования в том, чтобы передавать веб-браузеру клиента заголовки в HTTP-запросах и ответах, заставляющие его сохранять статическое содержимое, которое изменяется редко, и отдавать его повторно уже из кэша не отправляя повторные запросы на сервер. За счет этого снижается трафик и увеличивается скорость отдачи контента.

 

Настройки кэширования можно задавать в конфигурационных файлах nginx в случае применения связки Nginx + Apache или использовании Nginx с php-fpm.

 

 

Настройка кэширования на сервере с использованием модуля headers

Если же в качестве веб-сервера применяется только Apache необходимо задействовать модуль headers.

Сервер будет лишь отдавать нужные заголовки, кэшировать данные будет клиентский браузер.

На сервере нужно убедиться в том, что модуль включен

 

apache2ctl -M | grep headers

 

Если вывод не пустой — так и есть. Модуль включен по умолчанию. При необходимости включаем:

a2enmod headers

 

Все параметры кэширования могут быть настроены в файле .htaccess, который размещается в корне сайта.

Можно задать типы файлов, которые необходимо кэшировать и временной промежуток, в течение которого данные будут отдаваться браузером из кэша. Значение max-age задается в секундах.

 

<FilesMatch «.(jpg|jpeg|png|ico|js|css|pdf)$»>
Header set Cache-Control «max-age=2592000»

 

Для опеределенных файлов (чаще всего скриптов) кэширование можно принудительно отключить. Делается это следующим образом:

 

<FilesMatch «.(php|cgi|spl|fcgi)$»>
Header unset Cache-Control

 

Расширения можно добавлять и убирать добиваясь необходимого для оптимальной работы сайта режима работы сервера.

 

 

Настройка кэширования на сервере с использованием модуля expires

 

Также для установки параметров кэширования может быть использован модуль expires. Задавать продолжительность хранения информации в кэше можно по времени доступа посетителя к файлу.


Делается так:

ExpiresActive On
ExpiresDefault «access plus 1 month»
ExpiresByType image/jpeg «access plus 1 months 1day 1 hour»

ExpiresByType text/html «access plus 1 months 1day 2 hours»

 


По умолчанию установлен срок хранения кэша в 1 месяц с момента получения доступа к содержимому, также временные интервалы можно задавать в годах, месяцах, неделях, днях, часах, минутах, секундах. Это продемонстрировано для файлов типа jpeg и html.

 

Проверить добавляется ли заголовок Cache Control можно используя сервис CACHE-CONTROL-CHECKER

 

Читайте также про настройку кэширования средствами Nginx, если на фронтэнде работает Nginx прописывать все правила следует в конфигурационных файлах этого пакета.