Установка и подключение модуля компрессии Brotli для NGINX в Centos 7

Brotli + NGINX

Brotli — это новый алгоритм сжатия, который теперь широко поддерживается во многих браузерах. Метод сжатия brotli основан на современном варианте алгоритма LZ77.
По сравнению с классическим алгоритмом deflate (середина 1990-х, ZIP, gzip), brotli, как правило, достигает на 20% более высокую степень сжатия для текстовых файлов, сохраняя сходную скорость сжатия и распаковки.

Добавим репозиторий GetPageSpeed

[root@localhost]# yum -y install https://extras.getpagespeed.com/release-el7-latest.rpm

Установка NGINX была рассмотрена раньше

Установим модуль

[root@localhost]# yum -y install nginx-module-nbr

Откроем основной конфиг NGINX и подключим модуль

[root@localhost]# nano /etc/nginx/nginx.conf
...
# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
load_module "modules/ngx_http_brotli_filter_module.so";
load_module "modules/ngx_http_brotli_static_module.so";
...

Подключим Brotli компрессию во всех наших сайтах, для этого создадим файл с соответствующим содержимым

[root@localhost]# nano /etc/nginx/conf.d/brotli.conf
brotli on;
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;
brotli_comp_level 4;

Проверяем конфигурацию NGINX на ошибки и перезагружаем его

[root@localhost]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost]# systemctl restart nginx

Проверяем, подключилось ли сжатие Brotli на сайте

[root@localhost]# curl -IL https://itdraft.ru -H "Accept-Encoding: br"
...
Content-Encoding: br

Максим Макаров
У блога появился хостинг, его любезно предоставила компания Облакотека.
Облакотека - облачные сервисы для создания и управления виртуальной ИТ-инфраструктурой.
Если вам понравился мой блог и вы хотели бы видеть на нем еще больше полезных статей, большая просьба поддержать этот ресурс. Для этого достаточно кликнуть на контекстную рекламу, расположенную на сайте.
Оцените автора
IT Draft
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.

  1. Илья

    Интересная технология, не знал. Использую gzip, скажите, пожалуйста, можно ли использовать Brotli совместно c gzip?

    Ответить
    1. Максим Макаров автор

      Находил несколько статей, где в конфиге nginx они использовались совместно. У себя тоже подключил оба

      Ответить
  2. Менн

    Привет. Не получается поднять на связке: Ispmanager 5 Lite+NGINX+ Centos 7.


    [root@isp ~]# nginx -t
    nginx: [emerg] «load_module» directive is not allowed here in /etc/nginx/nginx.conf:34
    nginx: configuration file /etc/nginx/nginx.conf test failed

    Все варианты пробовал. Создавал, пересоздал…

    Прошу содействия!

    Ответить
    1. Максим Макаров автор

      Добрый день, с недавнего времени репозиторий стал платным, по-этому что бы подключить модуль Brotli, надо либо собирать nginx с этим модулем из исходников, либо искать др. репозиторий

      Ответить