Установка и подключение модуля компрессии 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 с этим модулем из исходников, либо искать др. репозиторий

      Ответить