What Is New in NGINX 1.14
NGINX 1.14 is a stable release that introduces new features, core improvements, and important bug fixes. This version focuses on enhancing the HTTP/2 implementation and providing more granular control over various processes.
| Category | Key Changes |
|---|---|
| New Features | HTTP/2 server push preload links, worker_shutdown_timeout directive |
| Improvements | SSL handshake handling, HTTP/2 dependency prioritization, PROXY protocol support |
| Bug Fixes | Memory leaks, segmentation faults, resolver issues, and other stability corrections |
How did HTTP/2 support get better?
The HTTP/2 implementation received significant optimizations for handling server push and stream prioritization. You can now use the http2_push_preload directive to leverage the Link header for preloading pushed resources.
This matters because it allows for more efficient resource delivery by aligning NGINX's push mechanism with the preload convention used by modern applications and CDNs.
What control do I have over worker processes?
A new worker_shutdown_timeout directive was added for graceful worker process termination. This gives you direct control over how long an old worker should wait for existing connections to close before exiting.
In practice, this prevents dropped connections during configuration reloads or upgrades, making maintenance operations smoother and more predictable for users.
Were there any SSL enhancements?
Yes, SSL handshake handling was improved for better performance under heavy load. The changes help avoid unnecessary locking, which was a bottleneck when many new SSL connections were being established simultaneously.
This is crucial for high-traffic sites where SSL/TLS termination is a primary function of the NGINX instance, reducing latency during peak times.
What important bugs were fixed?
Several critical bugs were patched, including memory leaks that occurred in specific configurations and segmentation faults related to the resolver and HTTP/2 modules.
One notable fix resolved an issue where a worker process might terminate unexpectedly with the "null pointer dereference" error when using the auth_request directive alongside certain other modules.
FAQ
Does the new HTTP/2 server push feature require application changes?
Yes, to use http2_push_preload, your application must send a Link header with the preload relation type for the resources you want to push.
What is the default value for worker_shutdown_timeout?
The directive has no default value and is off by default. You must explicitly configure it in your nginx.conf to enable graceful shutdown timing.
Were any changes made to the stream module for TCP/UDP proxying?
Yes, support for the PROXY protocol was extended within the stream module, improving the handling of client connection information when proxying TCP and UDP traffic.
Is this release safe to upgrade to from 1.12?
This is a stable release and is generally safe for upgrading. However, always test the changes, particularly the HTTP/2 and SSL improvements, in a staging environment that mirrors your production workload.
Was the bug that caused "could not build the types_hash" fixed?
Yes, a bug that could cause this error when the types_hash_max_size directive was set too small was resolved in this version.