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-apioption was used.
