Перейти к содержанию

compression-normalize: Модуль нормализации Accept-Encoding для 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-compression-normalize
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-compression-normalize

Включите модуль, добавив следующее в начало файла /etc/nginx/nginx.conf:

load_module modules/ngx_http_compression_normalize_module.so;

Этот документ описывает nginx-module-compression-normalize v1.0.0, выпущенный 6 января 2026 года.


Описание

ngx_http_compression_normalize_module — это модуль Nginx, предназначенный для разбора, нормализации и управления заголовками Accept-Encoding из клиентских запросов. Он обеспечивает последовательную обработку алгоритмов сжатия, стандартизируя значения Accept-Encoding, что облегчает управление сжатием и улучшает производительность кэша vary.

Синопсис

http {
    compression_normalize_accept_encoding gzip,br,zstd gzip,br zstd br gzip;

    server {
        listen 80;
        server_name example.com;

        location / {
            # Ваши настройки
        }
    }
}

Директивы

compression_normalize_accept_encoding

Синтаксис: compression_normalize_accept_encoding combinations1 [combinations2 ..] | off;

По умолчанию: compression_normalize_accept_encoding off;

Контекст: http, server, location

Включает нормализацию заголовка Accept-Encoding, указывая предпочтительные комбинации алгоритмов сжатия. Эта директива принимает список методов сжатия, позволяя определить порядок и приоритет типов кодирования, которые сервер должен предпочитать при ответе на клиентские запросы.

Например, с следующей конфигурацией

compression_normalize_accept_encoding gzip,br,zstd gzip,br zstd br gzip;

Если заголовок запроса Accept-Encoding содержит gzip, br и zstd одновременно, значение стандартизированного заголовка Accept-Encoding будет gzip,br,zstd. Если вышеуказанные условия не выполнены, но заголовок запроса содержит gzip и br, значение стандартизированного заголовка Accept-Encoding будет gzip,br. И так далее, пока не будут проверены все комбинации, указанные в директиве compression_normalize_accept_encoding. Если ни одна комбинация не была найдена, заголовок Accept-Encoding будет просто удален.

Значение off отключит эту функцию.

Переменные

\$compression_original_accept_encoding

сохраняет оригинальное значение заголовка Accept-Encoding запроса.

GitHub

Вы можете найти дополнительные советы по конфигурации и документацию для этого модуля в репозитории GitHub для nginx-module-compression-normalize.