NGINX 1.31.8 Mainline RPM and DEB packages with HTTP/3, Brotli, TLS 1.3 and OpenSSL 4.0.3 for EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

nginx 1.31.8 Mainline with HTTP/3 support has been added to the CodeIT repository. http2 and ngx_cache_purge are built in, and OpenSSL is linked dynamically against the official OpenSSL 4.0.3 with QUIC support. The Brotli compression module from Google and ngx_http_geoip2 ship as dynamic modules, in nginx-module-brotli and nginx-module-geoip2, both optional like the rest of the nginx-module-* set. The packages are built for RHEL, CentOS, AlmaLinux, Rocky Linux and Oracle Linux 7, 8, 9 and 10, and for Ubuntu 22.04 and 24.04.

More dynamic modules are packaged alongside and are optional: nginx-module-lua with lua-resty-core and lua-resty-lrucache, nginx-module-acme for automatic ACMEv2 certificates, nginx-module-njs, nginx-module-perl, nginx-module-xslt and nginx-module-image-filter. Each one ships its own load_module line in /etc/nginx/modules-enabled, so it works the moment it is installed and nothing has to be added to nginx.conf by hand. Lua and ACME are built for EL9, EL10 and Ubuntu; EL7 gets nginx-module-geoip instead, and njs, Perl, XSLT and image-filter are RPM only.

The same release is on Docker Hub as codeitus/nginx, built on AlmaLinux 9 from these packages and published for amd64 and arm64:

  • the newest image, from whichever pool was released last: docker pull codeitus/nginx
  • the newest Mainline image: docker pull codeitus/nginx:mainline
  • this exact release: docker pull codeitus/nginx:1.31.8

HTTP/3 needs the UDP port published as well as the TCP ones: docker run -d -p 80:80 -p 443:443 -p 443:443/udp codeitus/nginx

Major changes:

  • Change in internal API: now the JSON parser reports strings with escape sequences as separate events, and the ngx_json_unescape_string() function decodes a string into a separate buffer.
  • Change: now the path specified in the “working_directory” directive is relative to nginx prefix directory, but not to the current directory.
  • Bugfix: worker processes exited on start or during reconfiguration if an invalid directory was specified in the “working_directory” directive.
  • Bugfix: worker processes might be terminated abnormally on a SIGBUS signal when using HTTP/3 on platforms with strict alignment requirements.
  • Bugfix: “recv() failed (5: Input/output error)” alerts might appear in logs when closing SSL connections if kernel TLS was used with OpenSSL 3.2.0 or newer.
  • Bugfix: nginx could not be built on Solaris if the --with-control-api option was used.

Leave a Reply

Your email address will not be published. Required fields are marked *