Latest in branch 1.22 (Stable)
1.22.1
Released 19 Oct 2022
(3 years ago)
SoftwareNGINX OSS
Version1.22 (Stable)
Status
End of life
Initial release1.22.0
24 May 2022
(4 years ago)
Latest release1.22.1
19 Oct 2022
(3 years ago)
End of security fixes11 Apr 2023
(Ended 3 years, 1 month ago)
Release noteshttps://nginx.org/en/CHANGES
Source codehttps://github.com/nginx/nginx/tree/release-1.22.0
Documentationhttps://nginx.org/en/docs/
NGINX OSS 1.22 (Stable) ReleasesView full list

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;.

Does the header case sensitivity change break existing configs?
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.

Releases In Branch 1.22 (Stable)

VersionRelease date
1.22.119 Oct 2022
(3 years ago)
1.22.024 May 2022
(4 years ago)