Ускорение сайта - инструкции Htaccess и Nginx

31.10.2024 10:35
Поделиться:
Ускорение сайта - инструкции Htaccess и Nginx

Ваш сайт может работать в разных режимах сервера. В случае если вашим основным сервером является Apache, мы подготовили инструкции для .htaccess. В случае же использования сервера Nginx — инструкции, которые необходимо внести в основной конфиг или в конфиг для отдельного сайта.

1. Настройка ускорения сайта с помощью .htaccess для Apache

Файл .htaccess находится в корне веб-сайта и позволяет изменять конфигурацию сервера на уровне папки. Настройки можно добавить в этот файл для оптимизации кеширования, сжатия, уменьшения количества HTTP-запросов и улучшения производительности сайта.

Инструкции по настройке в .htaccess

1.1 Включение сжатия файлов

Сжатие файлов уменьшает размер данных, которые передаются от сервера к браузеру.

apache
<IfModule mod_deflate.c>
# Сжимаем текстовые файлы
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
</IfModule>

1.2 Настройка браузерного кэширования

Браузерное кэширование позволяет браузеру сохранять копии файлов на устройстве пользователя и уменьшает количество запросов к серверу.

apache
<IfModule mod_expires.c>
ExpiresActive On # Кэшируем изображения на 1 год
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
# Кэшируем CSS и JavaScript на 1 месяц
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>

1.3 Настройка заголовков Cache-Control

Заголовок Cache-Control помогает управлять кэшированием на стороне клиента.

apache
<IfModule mod_headers.c>
<FilesMatch "\.(jpg|jpeg|png|gif|js|css)$">
Header set Cache-Control "max-age=31536000, public"
</FilesMatch>
</IfModule>

1.4 Отключение ETag

ETag — это метка, используемая для проверки изменений в файлах. Отключение ETag может помочь сократить сетевые запросы.

apache
<IfModule mod_headers.c>
Header unset ETag
</IfModule>
FileETag None

2. Настройка ускорения сайта с помощью Nginx

Конфигурация Nginx настраивается в файлах .conf, которые могут располагаться в следующих местах:

  • /etc/nginx/nginx.conf — основной конфигурационный файл;
  • /etc/nginx/sites-available/ — каталоги с конфигурациями для отдельных сайтов;
  • /usr/local/nginx/conf — альтернативный путь для некоторых сборок Nginx.

Чтобы внести изменения, откройте нужный конфигурационный файл для редактирования.

Инструкции по настройке в Nginx

2.1 Включение сжатия файлов

Сжатие файлов выполняется через модуль gzip, который активен по умолчанию.

nginx
http {
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_comp_level 5; # Уровень сжатия от 1 (низкий) до 9 (высокий - создает нагрузку на сервер)
gzip_min_length 256; # Минимальный размер файла для сжатия
gzip_vary on; # Включение сжатия для кэшируемых файлов
}

2.2 Настройка браузерного кэширования

Для включения кэширования укажите сроки хранения кэшируемых файлов.

nginx
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d; # Кэшируем файлы на 30 дней
add_header Cache-Control "public, no-transform";
}

2.3 Настройка заголовков Cache-Control

Установка заголовков Cache-Control позволяет управлять кэшированием файлов на стороне браузера.

nginx
location ~* \.(css|js|jpg|jpeg|png|gif|ico|svg)$ {
expires 1y; # Кэшируем статические файлы на 1 год
add_header Cache-Control "public, max-age=31536000, immutable";
}

2.4 Отключение ETag

ETag можно отключить с помощью директивы etag off.

nginx
etag off;

Применение изменений

После внесения изменений в конфигурационный файл для Apache перезагрузка не требуется, однако для NGINX необходимо перезагрузить сервер:

sudo systemctl reload nginx

Заключение

Настройка сжатия, кэширования и заголовков Cache-Control может значительно улучшить производительность вашего сайта и сократить время загрузки страниц.

Мы используем файлы cookie. Продолжив использование сайта, Вы соглашаетесь с политикой использования файлов cookie, обработки персональных данных и конфиденциальности. Подробнее