nginx 1.31.6 Mainline с поддержкой HTTP/3 добавлен в репозиторий CodeIT. http2 и ngx_cache_purge встроены, а OpenSSL динамически линкуется с официальным OpenSSL 4.0.2 с поддержкой QUIC. Модуль сжатия Brotli от Google и ngx_http_geoip2 поставляются как динамические модули — в пакетах nginx-module-brotli и nginx-module-geoip2, которые rpm-пакет nginx устанавливает автоматически (зависимость оставлена, чтобы существующие установки обновлялись без потери этих директив; через несколько месяцев мы её уберём, и оба модуля станут полностью необязательными). Пакеты собраны для RHEL, CentOS, AlmaLinux, Rocky Linux и Oracle Linux 7, 8, 9 и 10, а также для Ubuntu 22.04 и 24.04.
Это обновление устраняет уязвимости. Рекомендуется обновиться.
Остальные динамические модули собраны отдельно и устанавливаются по желанию: nginx-module-lua вместе с lua-resty-core и lua-resty-lrucache, nginx-module-acme для автоматических сертификатов ACMEv2, nginx-module-njs, nginx-module-perl, nginx-module-xslt и nginx-module-image-filter. Каждый пакет сам добавляет строку load_module в /etc/nginx/modules-enabled, поэтому модуль работает сразу после установки и править nginx.conf вручную не нужно. Lua и ACME собираются для EL9, EL10 и Ubuntu; для EL7 вместо них есть nginx-module-geoip, а njs, Perl, XSLT и image-filter доступны только в rpm.
Тот же выпуск есть на Docker Hub как codeitus/nginx: образ собран на AlmaLinux 9 из этих же пакетов и опубликован для amd64 и arm64:
- самый свежий образ, из того пула, который вышел последним: docker pull codeitus/nginx
- самый свежий образ Mainline: docker pull codeitus/nginx:mainline
- именно этот выпуск: docker pull codeitus/nginx:1.31.6
Для HTTP/3 нужно опубликовать и UDP-порт, а не только TCP: docker run -d -p 80:80 -p 443:443 -p 443:443/udp codeitus/nginx
Основные изменения:
- Изменение: параметры расширения transport QUIC, полученные в SSL-соединении, теперь всегда игнорируются.
- Исправление: двоичное обновление не выполнялось, если был задан сокет control API и новый исполняемый файл nginx был собран с модулем ngx_http_perl_module.
- Исправление: ошибка при вычислении предиката в location предиката игнорировалась, и предикат трактовался как false.
- Исправление: ошибка при поиске во вложенном location могла игнорироваться, если locations, заданные регулярными выражениями или предикатами, были настроены на текущем уровне.
- Исправление: при чтении конфигурации мог возникать сбой сегментации, если использовалась директива «geo» с параметром «ranges», а соответствующий двоичный базовый файл был повреждён.
Исправленные уязвимости:
- Безопасность: в рабочем процессе при некоторых конфигурациях могла возникать переполненная область памяти heap при использовании HTTP/3 с OpenSSL 3.5.0 и более ранними (CVE-2026-90439).
