Уменьшаем размер загружаемого контента и ускоряем загрузку сайта с помощью модуля gzip в NGINX
GZIP - популярная программа сжатия данных.
Выполним настройку NGINX на использование gzip для сжатия файлов, которые он обслуживает «на лету».
Эти файлы затем распаковываются браузерами, которые поддерживают его при извлечении без каких-либо потерь, но с выгодой для передачи меньшего количества данных между веб-сервером и браузером.
Сжатие файлов использует ресурсы сервера, поэтому лучше всего сжимать только те файлы, которые значительно уменьшат размер в результате. Текстовые файлы сжимаются хорошо, JPEG или PNG уже сжаты по своей природе и большого результата при сжатии их GZIP можно не ожидать.
Модуль GZIP по умолчанию установлен в NGINX, необходимо включить его и настроить.
Создаем новый конфигурационный файл /etc/nginx/conf.d/gzip.conf
:
gzip on; |
gzip on
- включаем поддержку GZIP сжатия. gzip_disable "msie6"
- исключаем IE6 из браузеров, которые будут получать сжатые файлы. (не поддерживает GZIP) gzip_buffers
- задаёт число
и размер
буферов, в которые будет сжиматься ответ. По умолчанию размер одного буфера равен размеру страницы. В зависимости от платформы это или 4K
, или 8K
.gzip_proxied
- сжимать данные ответов для proxy-серверов; gzip_vary on
- включает добавление в ответ заголовка "Vary: Accept-Encoding"
, для IE4-6 это приведёт к не кешированию данных из-за бага.gzip_comp_level 6
- устанавливаем, сколько файлов будет сжато. Чем выше число, тем выше уровень сжатия и использование ресурсов. уровень сжатия, 1 - минимальное, 9 - максимальное; gzip_http_version 1.1
- директива используется для ограничения сжатия gzip для браузеров, поддерживающих протокол HTTP/1.1. Если браузер не поддерживает его, вероятно, что он не поддерживает и gzip. gzip_min_length 1100
- сообщаем NGINX не сжимать файлы размером менее 256 байт. gzip_types
- отображает все типы MIME, которые будут сжаты. В этом случае список включает страницы HTML, таблицы стилей CSS, файлы Javascript и JSON, файлы XML, значки, изображения SVG и веб-шрифты.
Для применения настроек перезагрузим NGINX.
systemctl restart nginx |
Проверяем.
$ curl -H "Accept-Encoding: gzip" -I https://bogachev.biz |