Today we’re happy to share the release of NGINX 1.8, the new stable branch, and NGINX 1.9, the new mainline branch where we’ll be working on development of new features. These branches replace 1.6 and 1.7 respectively. Over the past year, we’ve pushed 12 updates to 1.7, and all the features we added are now available in 1.8, including these:
- Backend SSL/TLS certificate verification – Protects against “man in the middle” (MITM) attacks by checking and validating certificates presented by upstream servers
- Logging to syslog – Enables log aggregation over the network from multiple instances using UDP messages
- Thread pools support for offloading I/O requests – Improves the performance of NGINX when blocking operations are required
- Hash load balancing method – Allows for a server group where the client‑server mapping is based on the hashed variable
- Unbuffered upload – Optionally disables the buffering of a request body
For a list of all the features added during the last year, check out the release notes for 1.8.
How Branch Renumbering Works
The branch renumbering is part of our annual checkpoint process where we fork off a “stable” (no new features) branch from the “mainline” (feature development) branch. NGINX 1.8 was forked as the new stable branch from the 1.7 mainline branch, and the 1.7 branch is renumbered to 1.9. We are no longer supporting 1.6 (the former stable branch) or doing development in 1.7.
In NGINX nomenclature, stable (now version 1.8) means that the feature set is fixed; only critical bug fixes are committed to that branch. Stable does not necessarily mean more reliable or more bug‑free. In fact, the mainline branch (now 1.9) is generally regarded as more reliable because we commit a wider range of bug fixes to it, not just the critical fixes merged into the stable branch. On the other hand, any changes to the stable branch are very unlikely to affect the operation of third‑party modules, whereas in the mainline branch the addition of new features might do so.
For more information about how we do our branch renumbering, check out last year’s post about the 1.6 and 1.7 branches.
What to Expect in 1.9
The first new features we’re adding to 1.9 are TCP load balancing, which will allow our users to load balance TCP‑based applications, and support for upstreams in shared memory zones, which improves failover consistency among worker processes. We’ve begun writing deployment guides about load balancing some of the more common services that use TCP. Looking forward to later this year, you can expect an implementation of HTTP/2, and the addition of a dynamic pluggable module interfaces. There’s great work being done and lots to look forward to in 1.9.
Where Does NGINX Plus Fit in All of This?
NGINX Plus is the commercially supported version of NGINX, with a number of additional features. NGINX Plus tracks the mainline version of NGINX, and is typically released on a quarterly cycle. New features from the mainline branch are merged into NGINX Plus and released once they have passed full integration testing and have been proven in the field in the mainline branch.