О web-разработке
и даже немного больше...

Как включить сжатие GZip в Nginx?

Технология сжатия трафика не является новой, однако не теряет свою актуальность и по сегодняшний день. Сегодня практически каждый браузер умеет работать со сжатым контентом, по той причине, что возможность сжатия является частью протокола HTTP 1.1. Как известно сжатие позволяет оптимизировать размеры статичных файлов, таких как CSS, JavaScript, HTML и других текстовых файлов. Оптимизация размера файлов может достигать до 70%. Это довольно существенный объём в вопросе оптимизации, особенно если это касается hightload-проектов.

Принцип работы сжатия очень прост. Традиционным образом на сервере располагаются исходные статичные файлы, которые должны отдаваться в браузер пользователя по запросу. При использовании сжатия, сервер сжимает данные, тем самым оптимизируя их размер. После получения файлов, браузер выполняет распаковку и показ конечному пользователю. Весь процесс сжатия и распаковки занимает минимальное время, которое пользователь едва ли может заметить. Однако в случае колоссальным трафиком на сервер, увеличивается пропускная способность канала связи, за счёт уменьшения объема передаваемых данных по каналу.

Настройка сжатия в Nginx

Перед настройкой сжатия нужно определиться с типами, файлов, которые следует сжимать сервером. В большинстве случаев сжимать следует файлы: HTML, XML, CSS, JavaScript, TXT, а также другие текстовые файлы. После этого в настройках конфигурации сервера в Nginx следует включить GZip:

server {
    ....
    gzip on;
    gzip_disable "msie6";
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
}

Стоит понимать, что сжатие файлов так же занимает некоторое процессорное время сервера. По этой причине для оптимизации нагрузки на процессор сервера следует настроить оптимальное значение уровня сжатия.

Gzip для сжатия данных может использовать несколько уровней. От быстрого сжатия – менее эффективного, до более ресурсоёмкого в плане процессора – но и более существенного сжатия. Для этого можно задать значение от 1 до 9:

gzip_comp_level 5;

1 – это максимально быстрый уровень сжатия, 9 – максимально эффективный уровень сжатия, но требует больше ресурсов от процессора. Оптимальное значение среднее, (в нашем примере 5). Далее в зависимости от ситуации можно выставлять более подходящее значение. Тут уже всё зависит от запаса процессорной мощности вашего веб-сервера.

Настройка сжатия через htaccess файл

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

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

Для работы этого метода так следует убедиться, что в Apache используется модуль mod_deflate. Если у вас есть доступ к файлам конфигурации сервера Apache, то настроить сжатие трафика посредством GZip можно и в конфигурации самого сервера.

Опубликован: 18.05.2020 г.

См. также:

Преимущества и недостатки веб-серверов Nginx и Apache
Подробнее о логах в Apache
Ротация логов в Linux
Denwer в локальной сети
HTTP авторизация
Просмотр списка загруженных модулей Apache
httpd грузит процессор, что делать?
Тестирование сайта под нагрузкой

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта