Настройка кэширования статических файлов в Nginx
Как ускорить загрузку страниц, оптимизировать трафик и управлять временем хранения кэша
Правильная настройка кэширования и сжатия статических ресурсов на веб-сервере значительно ускоряет загрузку сайта и снижает нагрузку на сервер. В этой статье мы рассмотрим, как настроить срок действия кэша с помощью директивы Expires и включить GZIP-сжатие для статических файлов в Nginx.
Настройка директивы Expires для статических файлов
Директива Expires задаёт период, в течение которого кэшированные ресурсы считаются актуальными. Это позволяет браузеру использовать локальные копии файлов, не отправляя повторные запросы на сервер.
Откройте конфигурационный файл Nginx для вашего виртуального хоста, обычно это /etc/nginx/nginx.conf
в Linux. Найдите блок server {}, содержащий секцию location для обработки статических файлов.
Пример конфигурации секции location:
location ~* \.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpeg|avi|zip|gz|bz2|rar|swf)$ {
root /var/www/username/data/www/usernamesite.ru;
access_log /var/www/nginx-logs/usernamesite isp;
access_log /var/www/httpd-logs/usernamesite.ru.access.log;
error_page 404 = @fallback;
expires 7d;
}
- expires 7d — указывает, что браузер будет хранить кэш 7 дней.
- Для редко обновляемых файлов, таких как CSS, JS или изображения, можно увеличить срок кэширования до нескольких месяцев или года.
Применение шаблона для всех виртуальных хостов
Чтобы автоматически применять директиву Expires для статических файлов на всех виртуальных хостах через панель управления, создайте файл /usr/local/ispmgr/etc/server.templ
со следующим содержимым:
location ~* \.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpeg|avi|zip|gz|bz2|rar|swf)$ {
expires 7d;
}
Включение GZIP-сжатия для статических файлов
GZIP-сжатие уменьшает размер текстовых файлов, что снижает объём передаваемых данных и ускоряет загрузку страниц.
Добавьте следующие директивы в блок server {} вашего виртуального хоста:
server {
...
gzip on;
gzip_disable "msie6";
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}
- gzip on; — активирует сжатие.
- gzip_disable "msie6"; — отключает сжатие для устаревших браузеров, таких как Internet Explorer 6.
- gzip_types — определяет MIME-типы файлов, которые будут сжиматься.
Примечание
На VPS и выделенных серверах вы можете гибко настраивать конфигурацию Nginx, включая кэширование и сжатие. Это помогает оптимизировать производительность сайта и снизить нагрузку на сервер.