brotli: Модули Brotli для NGINX
Установка
Вы можете установить этот модуль в любом дистрибутиве на базе RHEL, включая, но не ограничиваясь:
- RedHat Enterprise Linux 7, 8, 9 и 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 и Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-brotli
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-brotli
Активируйте модуль, добавив следующее в начало файла /etc/nginx/nginx.conf:
load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;
Этот документ описывает nginx-module-brotli v0.1.4, выпущенный 1 июля 2021 года.
Brotli — это универсальный алгоритм сжатия без потерь, который сжимает данные, используя комбинацию современного варианта алгоритма LZ77, кодирования Хаффмана и моделирования контекста второго порядка, с коэффициентом сжатия, сопоставимым с лучшими в настоящее время доступными методами общего назначения. Он похож по скорости на deflate, но предлагает более плотное сжатие.
ngx_brotli — это набор из двух модулей nginx:
- ngx_brotli filter module — используется для сжатия ответов на лету,
- ngx_brotli static module — используется для обслуживания предварительно сжатых файлов.
Директивы конфигурации
brotli_static
- синтаксис:
brotli_static on|off|always - по умолчанию:
off - контекст:
http,server,location
Включает или отключает проверку существования предварительно сжатых файлов с расширением .br. При значении always предварительно сжатый файл используется во всех случаях, без проверки, поддерживает ли клиент его.
brotli
- синтаксис:
brotli on|off - по умолчанию:
off - контекст:
http,server,location,if
Включает или отключает сжатие ответов на лету.
brotli_types
- синтаксис:
brotli_types <mime_type> [..] - по умолчанию:
text/html - контекст:
http,server,location
Включает сжатие ответов на лету для указанных MIME-типов в дополнение к text/html. Специальное значение * соответствует любому MIME-типу. Ответы с MIME-типом text/html всегда сжимаются.
brotli_buffers
- синтаксис:
brotli_buffers <number> <size> - по умолчанию:
32 4k|16 8k - контекст:
http,server,location
Устарело, игнорируется.
brotli_comp_level
- синтаксис:
brotli_comp_level <level> - по умолчанию:
6 - контекст:
http,server,location
Устанавливает качество (уровень) сжатия Brotli на лету. Допустимые значения находятся в диапазоне от 0 до 11.
brotli_window
- синтаксис:
brotli_window <size> - по умолчанию:
512k - контекст:
http,server,location
Устанавливает размер окна Brotli. Допустимые значения: 1k, 2k, 4k, 8k, 16k, 32k, 64k, 128k, 256k, 512k, 1m, 2m, 4m, 8m и 16m.
brotli_min_length
- синтаксис:
brotli_min_length <length> - по умолчанию:
20 - контекст:
http,server,location
Устанавливает минимальную длину ответа, который будет сжат. Длина определяется только по полю заголовка ответа Content-Length.
Переменные
$brotli_ratio
Достигнутый коэффициент сжатия, вычисляемый как отношение между оригинальным и сжатым размерами ответа.
Пример конфигурации
brotli on;
brotli_comp_level 6;
brotli_static on;
brotli_types application/atom+xml application/javascript application/json application/rss+xml
application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype
application/x-font-ttf application/x-javascript application/xhtml+xml application/xml
font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon
image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;
GitHub
Вы можете найти дополнительные советы по конфигурации и документацию для этого модуля в репозитории GitHub для nginx-module-brotli.