Настройка модуля GZIP в NGINX
Уменьшаем размер загружаемого контента и ускоряем загрузку сайта с помощью модуля gzip в NGINX
GZIP - популярная программа сжатия данных.
Выполним настройку NGINX на использование gzip для сжатия файлов, которые он обслуживает «на лету».
Эти файлы затем распаковываются браузерами, которые поддерживают его при извлечении без каких-либо потерь, но с выгодой для передачи меньшего количества данных между веб-сервером и браузером.
Сжатие файлов использует ресурсы сервера, поэтому лучше всего сжимать только те файлы, которые значительно уменьшат размер в результате. Текстовые файлы сжимаются хорошо, JPEG или PNG уже сжаты по своей природе и большого результата при сжатии их GZIP можно не ожидать.
Модуль GZIP по умолчанию установлен в NGINX, необходимо включить его и настроить.
Создаем новый конфигурационный файл /etc/nginx/conf.d/gzip.conf:
1 | 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.
1 | systemctl restart nginx |
Проверяем.
1 | $ curl -H "Accept-Encoding: gzip" -I https://bogachev.biz |