What Is New in NGINX 1.22
| Category | Description |
|---|---|
| New Feature | Support for HTTP/2 protocol on UNIX-domain sockets |
| New Feature | Directive to control the case sensitivity of request header names |
| Change | HTTP/3 experimental module updated to align with recent QUIC draft versions |
| Bug Fix | Resolved issues with HTTP/2, the stream module, and memory management |
| Bug Fix | Fixed potential segmentation faults in specific module interactions |
How does HTTP/2 over UNIX-domain sockets improve my setup?
NGINX 1.22 introduces the ability to use HTTP/2 on UNIX-domain sockets. This is a big deal for high-performance local communication, like between a reverse proxy and an application server on the same host.
In practice, this avoids the overhead of the TCP stack and can significantly reduce latency. You get all the benefits of HTTP/2-multiplexing, header compression-without the network stack tax. This matters for microservices architectures where services communicate over local sockets.
What's the deal with controlling header name case sensitivity?
The new ignore_invalid_headers directive off behavior has been changed, and a new underscores_in_headers directive was introduced for more control. This gives you finer-grained handling of non-standard client requests.
Before, you had to live with the default case-insensitive behavior for header names. Now, you can enforce stricter parsing if your upstream applications expect headers in a specific case. It helps avoid obscure bugs when integrating with legacy systems that might be picky about header formatting.
Is the HTTP/3 support ready for production?
The HTTP/3 support in 1.22 is still experimental. This release updates the code to align with recent QUIC draft versions, which is crucial for interoperability with browsers and other clients that are also implementing the evolving standard.
You can test it, but don't bet your production traffic on it yet. The module is built separately and requires the SSL library with QUIC support. We're getting closer, but it's not the default.
What kind of bugs were squashed in this release?
The fixes are typical for a stable release-solidifying existing features. They addressed a few HTTP/2 edge cases, fixed a segmentation fault in the stream module when using the listen directive with specific parameters, and resolved some memory management issues.
These aren't earth-shattering for every user, but if you were hitting one of these specific edge cases, this release is a direct upgrade for stability. It shows the focus on hardening the core.
FAQ
Should I upgrade to NGINX 1.22 for the HTTP/2 UNIX-domain socket feature?
If you have a setup where services on the same machine communicate over UNIX sockets and could benefit from HTTP/2's multiplexing, then absolutely. The performance gain for local inter-process communication can be substantial.
How do I enable HTTP/2 on a UNIX-domain listener?
You add the http2 parameter to your listen directive pointing to a socket file. For example: listen unix:/var/run/nginx.sock http2;.
It shouldn't. The change to
ignore_invalid_headers off is more strict, but the new directives give you control. Test your config if you suspect clients send malformed headers.
What's the most important bug fix for most users?
The fix for a segmentation fault in the stream module is significant if you use it with a specific listen configuration. For everyone else, the general HTTP/2 stability improvements are a welcome bonus.
Is this a mandatory upgrade for security reasons?
No. The changelog for 1.22 does not highlight any specific CVEs or security patches. This release is more about new features and incremental improvements rather than critical security fixes.