nginx 1.31.4 Mainline с поддержкой HTTP/3 добавлен в репозиторий CodeIT. http2 и ngx_cache_purge встроены, а OpenSSL динамически линкуется с официальным OpenSSL 4.0.1 с поддержкой 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.4
Для HTTP/3 нужно опубликовать и UDP-порт, а не только TCP: docker run -d -p 80:80 -p 443:443 -p 443:443/udp codeitus/nginx
Основные изменения:
- Feature: директива «proxy_protocol» в модулях stream и mail теперь поддерживает версию 2 протокола PROXY.
- Change: запросы к бэкендам для HTTP/2 и gRPC теперь всегда отправляются с псевдозаголовком «:authority», а запросы HTTP/1.1 — с заголовком «Host».
- Bugfix: в рабочем процессе может возникать аварийное завершение, если использовался метод «select».
- Bugfix: неполные ответы gRPC с строкой заголовка «Content-Length» со значением не нулевым теперь считаются некорректными.
- Bugfix: устранена проблема двоичной совместимости с сторонними модулями, использующими коды сценариев; ошибка возникала в 1.31.3.
- Bugfix: устранена ошибка в модуле ngx_http_perl_module.
- Bugfixes в HTTP/2, HTTP/3, ngx_http_image_filter_module и ngx_http_grpc_module.
