Как установить и настроить Brotli

Статья обновлена 2 марта, 2022

Nginx на Centos 7 и панелью управления VestaCP

В статье расскажем, как установить и настроить Brotli в Nginx. Дана пошаговая рабочая инструкция. Установка и настройка будет осуществляется на Centos 7 под управлением панелью VestaCP. Немного истории и преимуществ сжатия Brotli.

Brotli разработан Google как альтернатива Gzip, Zopfli и Deflate, но можно сказать, что это улучшение.

Исследование Гугл показало, что степень сжатия Brotli более чем на 25% меньше, чем у текущих методов, при меньшем использовании ЦП.

В настоящее время Nginx не имеет официальной поддержки Brotli.

Но Google разработал сторонние модули на github под названием ngx_brotli, которые вы можете использовать на Nginx.

Согласно описаниям проекта Brotli Github, Brotli представляет собой универсальный алгоритм сжатия без потерь, который сжимает данные, используя комбинацию современного варианта алгоритма LZ77, кодирования Хаффмана и контекстного моделирования 2-го порядка, с коэффициентом сжатия, сравнимым с лучшим доступным в настоящее время общим алгоритмом целевых методов сжатия.

Он похож по скорости на deflate, но предлагает более плотное сжатие.

Как установить и настроить Brotli в Nginx
Как установить и настроить Brotli в Nginx на Centos 7 и панелью управления VestaCP

Как установить модуль Brotli в Nginx

Заходим в терминал. Выполняем три команды по очереди. Нажимаем Yes, когда спросят.

yum groupinstall "Development Tools" && yum install rpmdevtools yum-utils wget git

yum install gcc-c++ flex bison yajl yajl-devel curl-devel curl GeoIP-devel doxygen zlib-devel pcre-devel

yum install lmdb lmdb-devel libxml2 libxml2-devel ssdeep ssdeep-devel lua lua-devel

Выполнять всю установку и компиляцию будем в папке /usr/src (можно взять другую папку на Ваше усмотрение).

Переходим в терминале в выбранную папку, выполнив команду:

cd /usr/src

Далее необходимо клонировать ngx_brotli с Github, официальный дистрибутив — https://github.com/google/ngx_brotli

Для этого выполняем в терминале следующие три команды по очередно (установка и компиляция brotli):

git clone https://github.com/google/ngx_brotli.git

cd ngx_brotli

git submodule update --init

Следующим действием, необходимо проверить свою версию Nginx, вводим команду:

nginx -V

Установка и настройка Brotli
Проверка версии Nginx

Теперь вам нужно загрузить исходный код Nginx, в зависимости от вашей версии Nginx.

Опять возвращаемся в каталог — вводим команду в терминале:

cd /usr/src

Скачиваем именно свою версию nginx (в примере показана версия nginx-1.20.2, если у Вас другая версия, то Вам необходимо заменить все цифры на свои).

wget http://nginx.org/download/nginx-1.20.2.tar.gz

Распаковываем скаченный архив следующей командой:

tar zxvf nginx-1.20.2.tar.gz

Переходим в папку со скаченной и распакованной версией Nginx:

cd nginx-1.20.2

Далее необходимо скомпилировать Nginx с новым модулем сжатия brotli такой командой:

./configure --with-compat --add-dynamic-module=../ngx_brotli

По окончании выполнения процесса компиляции вводим следующую команду:

make modules

И после окончания операции по очереди вводим следующие 4 команды:

cp objs/ngx_http_brotli_static_module.so /etc/nginx/modules

cp objs/ngx_http_brotli_filter_module.so /etc/nginx/modules
chmod 644 /etc/nginx/modules/ngx_http_brotli_static_module.so
chmod 644 /etc/nginx/modules/ngx_http_brotli_filter_module.so

Настройка модуля сжатия Brotli в Nginx

Чтобы загрузить модули Brotli на Nginx, отредактируйте файл /etc/nginx/nginx.conf и добавьте этот код в начало конфигурации.

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;
И в Вашем блоке http добавьте этот код (перед gzip on;):
brotli on;
brotli_static on; # for static compression, explained later
brotli_comp_level 6; # this setting can vary from 1-11
brotli_types text/xml image/svg+xml application/x-font-ttf image/vnd.microsoft.icon application/x-font-opentype application/json font/eot application/vnd.ms-fontobject application/javascript font/otf application/xml application/xhtml+xml text/javascript application/x-javascript text/plain application/x-font-truetype application/xml+rss image/x-icon font/opentype text/css image/x-win-bitmap;
gzip on;

Проверьте конфигурацию Nginx с помощью команды:

nginx -t

Если выдаст в ответ:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Значит Вы все сделали правильно. Теперь перезапустите Nginx и для проверки подключения модуля введите такой запрос ЗАМЕНИВ https://mysaita.com на свой домен:

curl -s -I -H 'Accept-Encoding: br,gzip,deflate' https://mysaita.com

Должен быть примерно такой ответ:

Подключение Bortli
Проверка подключения Brotli к Nginx

Вы также можете проверить онлайн и сравнить сжатие Brotli и Gzip на сайте — https://tools.paulcalvano.com/compression.php

Brotli сжатие
Проверка на сайте Brotli сжатия

Надеюсь, Вам помогла наша инструкция — Как установить и настроить Brotli в  Nginx.

 

 

Учебные материалы

 

Понравился материал? Подписывайтесь на наш блог.

Только полезная информация и реальные кейсы

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

Ваш адрес email не будет опубликован.

 для диалога необходимо принять правила кофиденциальности *

СОБСТВЕННЫЙ ИНТЕРНЕТ МАГАЗИН!!!
ПОЛУЧИ БЕСПЛАТНО!!!

Оставайтесь с нами и Вы…

СОБСТВЕННЫЙ ПАРТНЕРСКИЙ МАГАЗИН

Подпишись сейчас и получи 5 уроков.

Запусти свой интернет магазин.

Сумеете настроить и управлять магазином.

Все это без знаний web программирования.

Материал дохотчиво изложен и доступен любому.

Пошаговая инструкция по созданию собственного партнерского магазина!

«В будущем на рынке останется два вида компаний: те, кто в Интернет и те, кто вышел из бизнеса» ~ Билл Гейтс

Получи конструктор лендингов бесплатно!

Конструктор лендингов!