Выпущены RPM- и DEB-пакеты NGINX 1.31.5 Mainline с поддержкой HTTP/3, Brotli, TLS 1.3 и OpenSSL 4.0.2 для EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

nginx 1.31.5 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.5

Для HTTP/3 нужно опубликовать и UDP-порт, а не только TCP: docker run -d -p 80:80 -p 443:443 -p 443:443/udp codeitus/nginx

Основные изменения:

  • Функция: управление API.
  • Функция: условия по расположениям.
  • Функция: модуль ngx_http_json_module.
  • Функция: директива «client_body_early_read».
  • Исправлена ошибка: use-after-free мог возникать в рабочем процессе, если выполнялось проксирование с использованием буферизации и ошибка возникала при отправке ответа HTTP/2-клиенту.
  • Исправлена ошибка: рабочий процесс больше не мог не завершаться или в журналах больше не появлялись оповещения «accept4() failed (9: Bad file descriptor)» при исчерпании файловых дескрипторов до начала планового завершения.
  • Исправлена ошибка: запросы к бэкендам FastCGI и uwsgi формировались некорректно, если имя параметра было слишком длинным.
  • Исправлены ошибки в HTTP/3, ngx_http_slice_module и ngx_http_memcached_module.

Выпущены RPM- и DEB-пакеты NGINX 1.31.4 Mainline с поддержкой HTTP/3, Brotli, TLS 1.3 и OpenSSL 4.0.1 для EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

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.

NGINX 1.25.0 Mainline, собранный с Brotli, TLS 1.3, OpenSSL 3.0.8, поддержкой http2, http3 (QUIC) для Red Hat Enterprise Linux, CentOS, Rocky, Oracle, Alma Linux EL7/EL8/EL9

В репозиторий добавлен NGINX 1.25.0 mainline с поддержкой HTTP/3, сжатия brotli от Google, http2, ngx cache purge и ngx http geoip2 module. OpenSSL собран динамически с OpenSSL+QUIC (QuicTLS) 3.0.8.

TLS 1.3 final на сегодня работает в Google Chrome 70+ и Mozilla Firefox 63+.

RHEL 7 / CentOS 7:

yum upgrade -y codeit-repo-release
yum-config-manager --disable CodeIT-quic --save
yum-config-manager --enable CodeIT-mainline --save

RHEL 8 / Alma Linux 8 / Rocky Linux 8 / CentOS 8 / Other EL8 репозиторий стал модульным. Для установки надо включить соответствующий стрим:

dnf module reset -y nginx
dnf module enable -y nginx:codeit-mainline

Для включения TLS 1.3 надо указать:

ssl_protocols TLSv1.2 TLSv1.3;

C версии 1.21.6 мы собираем OpenSSL+QUIC 3.0 отдельно, он устанавливается в /lib64 отдельно с суффиксом .so.81.3 и никак не затрагивает системные библиотеки.

С версии 1.25.0 в NGINX появилась экспериментальная поддержка HTTP/3, наши сборки выполняются с поддержкой этого экспериментального модуля (—with-http_v3_module).

Apache httpd 2.4.56, собранный с Brotli, TLS 1.3 final (RFC 8446), OpenSSL 1.1.1t, ALPN и поддержкой http2 для Rocky Linux, Red Hat Enterprise Linux, Alma Linux и CentOS

В репозиторий добавлен Apache httpd 2.4.56-1 с поддержкой сжатия brotli от Google, mod_http2 2.0.13 для Red Hat Enterprise Linux, Rocky Linux, Alma Linux и CentOS. Mod_ssl собран динамически с OpenSSL 1.1.1t.

Исправлены уязвимости:

  • CVE-2023-27522: HTTP response smuggling bug
  • CVE-2023-25690: HTTP request smuggling vulnerability

Заметим, что httpd 2.4.54 поддерживает TLS 1.3 при сборке с OpenSSL 1.1.1. Все новые шифры включены и работают.
C версии 2.4.54-2 мы собираем OpenSSL+QUIC 1.1.1 отдельно, он устанавливается в /lib64 отдельно с суффиксом .so.81.1.1 и никак не затрагивает системные библиотеки.

Для установки в EL8 нужно включить соответствующий Module stream:

dnf module enable -y httpd:codeit

TLS 1.3 final на сегодня работает в Google Chrome 70+ и Mozilla Firefox 63+.

Для работы с SELinux в rpm включена соответствующая минимальная политика.

Модуль brotli уже включён в базовый RPM. Всё, что нужно — настроить фильтр

AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript

Apache httpd 2.4.55, собранный с Brotli, TLS 1.3 final (RFC 8446), OpenSSL 1.1.1s, ALPN и поддержкой http2 для Rocky Linux, Red Hat Enterprise Linux, Alma Linux и CentOS

В репозиторий добавлен Apache httpd 2.4.55-1 с поддержкой сжатия brotli от Google, mod_http2 2.0.2 для Red Hat Enterprise Linux, Rocky Linux, Alma Linux и CentOS. Mod_ssl собран динамически с OpenSSL 1.1.1o.

Исправлены уязвимости:

  • CVE-2022-37436: Apache HTTP Server: mod_proxy prior to 2.4.55 allows a backend to trigger HTTP response splitting
  • CVE-2022-36760: Apache HTTP Server: mod_proxy_ajp Possible request smuggling
  • CVE-2006-20001: mod_dav out of bounds read, or write of zero byte

Заметим, что httpd 2.4.54 поддерживает TLS 1.3 при сборке с OpenSSL 1.1.1. Все новые шифры включены и работают. C версии 2.4.54-2 мы собираем OpenSSL+QUIC 1.1.1 отдельно, он устанавливается в /lib64 отдельно с суффиксом .so.81.1.1 и никак не затрагивает системные библиотеки.

Для установки в EL8 нужно включить соответствующий Module stream:

dnf module enable -y httpd:codeit

TLS 1.3 final на сегодня работает в Google Chrome 70+ и Mozilla Firefox 63+.

Для работы с SELinux в rpm включена соответствующая минимальная политика.

Модуль brotli уже включён в базовый RPM. Всё, что нужно — настроить фильтр

AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript

NGINX 1.23.3 QUIC, собранный с Brotli, TLS 1.3, OpenSSL 1.1.1s, поддержкой http2 для Red Hat Enterprise Linux, CentOS, Rocky, Oracle, Alma Linux EL7/EL8/EL9

В репозиторий добавлен NGINX 1.23.3 mainline с поддержкой HTTP/3, сжатия brotli от Google, http2, ngx cache purge и ngx http geoip2 module. OpenSSL собран динамически с OpenSSL+QUIC 1.1.1s.

TLS 1.3 final на сегодня работает в Google Chrome 70+ и Mozilla Firefox 63+.

RHEL 7 / CentOS 7:

yum upgrade -y codeit-repo-release
yum-config-manager --enable CodeIT-quic --save

RHEL 8 / Alma Linux 8 / Rocky Linux 8 / CentOS 8 / Other EL8 репозиторий стал модульным. Для установки надо включить соответствующий стрим:

dnf module enable -y nginx:codeit-quic

Для включения TLS 1.3 надо указать:

ssl_protocols TLSv1.2 TLSv1.3;

C версии 1.21.6 мы собираем OpenSSL+QUIC 1.1.1 отдельно, он устанавливается в /lib64 отдельно с суффиксом .so.81.1.1 и никак не затрагивает системные библиотеки.

NGINX 1.23.3 mainline, собранный с Brotli, TLS 1.3, OpenSSL 1.1.1s, поддержкой http2 для Red Hat Enterprise Linux, CentOS, Rocky, Oracle, Alma Linux EL7/EL8/EL9

В репозиторий добавлен NGINX 1.23.3 mainline с поддержкой сжатия brotli от Google, http2, ngx cache purge и ngx http geoip2 module. OpenSSL собран динамически с OpenSSL+QUIC 1.1.1s.

TLS 1.3 final на сегодня работает в Google Chrome 70+ и Mozilla Firefox 63+.

RHEL 8 / Alma Linux 8 / Rocky Linux 8 / CentOS 8 / Other EL8 репозиторий стал модульным. Для установки надо включить соответствующий стрим:

dnf module enable -y nginx:codeit-mainline

Для включения TLS 1.3 надо указать:

ssl_protocols TLSv1.2 TLSv1.3;

C версии 1.21.6 мы собираем OpenSSL+QUIC 1.1.1 отдельно, он устанавливается в /lib64 отдельно с суффиксом .so.81.1.1 и никак не затрагивает системные библиотеки.

NGINX 1.22.1 stable, собранный с Brotli, TLS 1.3, OpenSSL 1.1.1r, поддержкой http2 для Red Hat Enterprise Linux, CentOS, Rocky, Oracle, Alma Linux EL7/EL8/EL9

В репозиторий добавлен NGINX 1.22.1 stable с поддержкой сжатия brotli от Google, http2, ngx cache purge и ngx http geoip2 module. OpenSSL собран динамически с OpenSSL+QUIC 1.1.1r.

TLS 1.3 final на сегодня работает в Google Chrome 70+ и Mozilla Firefox 63+.

RHEL 8 / Alma Linux 8 / Rocky Linux 8 / CentOS 8 / Other EL8 репозиторий стал модульным. Для установки надо включить соответствующий стрим:

dnf module enable -y nginx:codeit-mainline

Для включения TLS 1.3 надо указать:

ssl_protocols TLSv1.2 TLSv1.3;

C версии 1.21.6 мы собираем OpenSSL+QUIC 1.1.1 отдельно, он устанавливается в /lib64 отдельно с суффиксом .so.81.1.1 и никак не затрагивает системные библиотеки.

NGINX 1.23.2 QUIC, собранный с Brotli, TLS 1.3, OpenSSL 1.1.1r, поддержкой http2 для Red Hat Enterprise Linux, CentOS, Rocky, Oracle, Alma Linux EL7/EL8/EL9

В репозиторий добавлен NGINX 1.23.2 mainline с поддержкой сжатия brotli от Google, http2, ngx cache purge и ngx http geoip2 module. OpenSSL собран динамически с OpenSSL+QUIC 1.1.1r.

TLS 1.3 final на сегодня работает в Google Chrome 70+ и Mozilla Firefox 63+.

RHEL 7 / CentOS 7:

yum upgrade -y codeit-repo-release
yum-config-manager --enable CodeIT-quic --save

RHEL 8 / Alma Linux 8 / Rocky Linux 8 / CentOS 8 / Other EL8 репозиторий стал модульным. Для установки надо включить соответствующий стрим:

dnf module enable -y nginx:codeit-quic

Для включения TLS 1.3 надо указать:

ssl_protocols TLSv1.2 TLSv1.3;

C версии 1.21.6 мы собираем OpenSSL+QUIC 1.1.1 отдельно, он устанавливается в /lib64 отдельно с суффиксом .so.81.1.1 и никак не затрагивает системные библиотеки.

NGINX 1.23.2 mainline, собранный с Brotli, TLS 1.3, OpenSSL 1.1.1r, поддержкой http2 для Red Hat Enterprise Linux, CentOS, Rocky, Oracle, Alma Linux EL7/EL8/EL9

В репозиторий добавлен NGINX 1.23.2 mainline с поддержкой сжатия brotli от Google, http2, ngx cache purge и ngx http geoip2 module. OpenSSL собран динамически с OpenSSL+QUIC 1.1.1r.

TLS 1.3 final на сегодня работает в Google Chrome 70+ и Mozilla Firefox 63+.

RHEL 8 / Alma Linux 8 / Rocky Linux 8 / CentOS 8 / Other EL8 репозиторий стал модульным. Для установки надо включить соответствующий стрим:

dnf module enable -y nginx:codeit-mainline

Для включения TLS 1.3 надо указать:

ssl_protocols TLSv1.2 TLSv1.3;

C версии 1.21.6 мы собираем OpenSSL+QUIC 1.1.1 отдельно, он устанавливается в /lib64 отдельно с суффиксом .so.81.1.1 и никак не затрагивает системные библиотеки.