What is new in NGINX 1.29
NGINX 1.29 introduces several useful improvements focused on performance, security, and modern protocol support. This mainline version brings better handling of early responses, enhanced key management with hardware tokens, improved platform compatibility, and important fixes for HTTP/3 and build processes.
These changes help system administrators manage high-traffic websites more efficiently while increasing flexibility in modern deployment environments.
New Features
NGINX 1.29 adds the following important features:
| Feature | Description |
|---|---|
| Support for HTTP 103 Early Hints | NGINX now accepts response code 103 from proxy and gRPC backends. The new early_hints directive gives you control over sending early hints to clients. |
| Hardware Token Secret Key Loading | Secret keys can now be loaded directly from hardware security tokens using the OpenSSL provider interface. |
| so_keepalive support on macOS | The listen directive now supports the so_keepalive parameter on macOS for better TCP keepalive management. |
Changes and Improvements
This release includes the following behavioral updates:
- SSL error logging during QUIC handshakes has been refined. Critical errors now appear at
critlevel, while other errors useinfolevel. Logging of unsupported QUIC transport parameters has been reduced todebug. - The native Windows binary is now built with Windows SDK 10, improving compatibility and security on Windows systems.
Bug Fixes
NGINX 1.29 fixes the following issues:
| Issue | Details |
|---|---|
| Build with GCC 15 | Fixed compilation errors when building with ngx_http_v2_module or ngx_http_v3_module using GCC 15. |
| Build with GCC 14+ and LTO | Resolved build failures when using -O3 -flto optimization with ngx_http_v3_module enabled on newer GCC versions. |
| HTTP/3 stability | Multiple improvements and bug fixes have been applied to the HTTP/3 implementation. |
How does the early_hints directive work in NGINX 1.29?
The early_hints directive allows you to enable or disable the forwarding of HTTP 103 Early Hints responses to clients. When a backend returns a 103 status, NGINX can now send these hints early, helping browsers start loading resources sooner and improving overall page load performance.
http {
server {
early_hints on;
...
}
}
What changed in QUIC and HTTP/3 logging in NGINX 1.29?
Logging behavior for SSL errors during QUIC handshakes is now more precise. Critical errors are logged at crit level, other errors at info, and unsupported transport parameters at debug level. This change reduces log noise while keeping important issues visible.
Why was the Windows build updated in NGINX 1.29?
The native Windows version of NGINX is now built using Windows SDK 10. This brings better compatibility with current Windows systems and includes the latest platform security improvements.
FAQ
Is NGINX 1.29 a stable or mainline release?
NGINX 1.29 belongs to the mainline branch. It contains new features and improvements, making it suitable for testing and environments that want the latest capabilities.
Does NGINX 1.29 support loading keys from hardware security modules?
Yes. You can now load secret keys directly from hardware tokens through the OpenSSL provider interface, improving integration with HSM solutions.
Can I use so_keepalive on macOS with NGINX 1.29?
Yes. The listen directive now supports the so_keepalive parameter on macOS, giving you more control over TCP socket behavior.
Are there build fixes in NGINX 1.29?
Yes. This version fixes compilation issues with recent GCC versions (14 and 15) when HTTP/2 or HTTP/3 modules are enabled, including problems with link-time optimization.
Should I upgrade to NGINX 1.29?
If you need early hints support, hardware token key loading, or improved QUIC/HTTP/3 stability, upgrading to NGINX 1.29 is recommended. As always, test the new version in a non-production environment first.