Latest development in branch 1.11 (Mainline)
1.11.13
Released 04 Apr 2017
(9 years ago)
SoftwareNGINX OSS
Version1.11 (Mainline)
Status
End of life
Initial release1.11.0
24 May 2016
(10 years ago)
Latest release1.11.13
04 Apr 2017
(9 years ago)
End of security fixes25 Apr 2017
(Ended 9 years, 1 month ago)
Release noteshttps://nginx.org/en/CHANGES
Source codehttps://github.com/nginx/nginx/tree/release-1.11.0
Documentationhttps://nginx.org/en/docs/
NGINX OSS 1.11 (Mainline) ReleasesView full list

What Is New in NGINX 1.11

Category Key Changes
New Features Dynamic modules support, HTTP/2 server push, stream module variables
Improvements SSL performance, hash tables, proxy_protocol, limit_req handling
Bug Fixes Memory leaks, SSL handshake issues, proxy timeouts, various core fixes

How does dynamic module loading change NGINX extensibility?

NGINX 1.11 introduces dynamic module loading, fundamentally changing how you extend the server. Instead of requiring a full recompile, you can now load modules at runtime using the new load_module directive. This makes module management significantly more flexible for production environments.

In practice, this means you can add features like image filtering or geoip lookup without restarting your main NGINX processes. The change reduces operational overhead when updating or testing third-party modules.

What HTTP/2 enhancements arrived in this release?

Server Push support for HTTP/2 is now available, allowing you to proactively send resources to clients before they request them. This can significantly improve page load times for modern web applications by pushing critical assets like stylesheets and scripts.

The implementation uses the http2_push directive or the Link header with rel=preload. This gives developers fine-grained control over what gets pushed to which clients.

Where did NGINX 1.11 improve SSL/TLS performance?

SSL performance saw multiple optimizations, particularly around session resumption and certificate handling. The changes reduce CPU overhead during TLS handshakes, which matters most for high-traffic sites serving HTTPS content.

Session tickets now work better across worker processes, improving resumption rates for load balanced setups. These tweaks help maintain throughput while keeping encryption overhead manageable.

How were stream and proxy capabilities enhanced?

The stream module gained support for variables similar to HTTP, enabling more sophisticated TCP/UDP proxy configurations. You can now use $remote_addr or $protocol in stream context for logging and access control.

Proxy Protocol received improvements for better handling of client information passed through load balancers. This ensures original client IP addresses are preserved correctly in complex deployment chains.

FAQ

Can I upgrade to dynamic modules without changing my config?
No, you'll need to convert static modules to dynamic format and add load_module directives to your nginx.conf. The change requires planning but offers long-term flexibility.

Does HTTP/2 server push work with existing proxy setups?
Yes, but you need to ensure intermediate proxies support HTTP/2. The push occurs between NGINX and the end client, so CDNs and other proxies must not downgrade the connection.

What happens to my old third-party modules after upgrading?
They will need to be recompiled as dynamic modules. The API compatibility was maintained, but the build process changes to produce .so files instead of static objects.

Are the SSL performance improvements automatic?
Most are enabled by default, but some require tuning existing directives like ssl_session_cache and ssl_session_tickets to maximize the benefits.

How do stream variables change TCP load balancing?
They enable logging client details and making routing decisions based on connection metadata, which was previously only possible with HTTP traffic.

Releases In Branch 1.11 (Mainline)

VersionRelease date
1.11.1304 Apr 2017
(9 years ago)
1.11.1224 Mar 2017
(9 years ago)
1.11.1121 Mar 2017
(9 years ago)
1.11.1014 Feb 2017
(9 years ago)
1.11.924 Jan 2017
(9 years ago)
1.11.827 Dec 2016
(9 years ago)
1.11.713 Dec 2016
(9 years ago)
1.11.615 Nov 2016
(9 years ago)
1.11.511 Oct 2016
(9 years ago)
1.11.413 Sep 2016
(9 years ago)
1.11.326 Jul 2016
(9 years ago)
1.11.205 Jul 2016
(9 years ago)
1.11.131 May 2016
(10 years ago)
1.11.024 May 2016
(10 years ago)