What Is New in NGINX 1.3
NGINX 1.3 introduced foundational features that shaped its modern proxy and load balancing capabilities. This release focused on enhancing protocol support and core functionality.
| Category | Key Changes |
|---|---|
| New Features | Experimental SPDY support, PROXY protocol support |
| Core Enhancements | SSL SNI support in the mail module, limit rate after response |
| Bug Fixes | Various fixes for memory leaks, SSL, and connection handling |
What are the major new protocols supported?
The headline feature was experimental support for the SPDY protocol. This allowed NGINX to handle multiplexed streams over a single TCP connection, reducing latency for web pages. In practice, this was a crucial step towards what would eventually become HTTP/2 support.
Support for the PROXY protocol was also added. This lets NGINX receive the client's connection information (like the real IP address) from a downstream proxy that uses this protocol, which is common in hosted and cloud environments.
How was SSL/TLS handling improved?
SSL Server Name Indication (SNI) support was extended to the mail module. This meant NGINX could securely host multiple mail servers with different certificates on a single IP address, based on the server name the client was trying to connect to.
The ssl_session_cache directive saw improvements. Tuning this is critical for performance because it allows clients to reuse SSL session parameters, skipping the costly SSL handshake for repeat connections.
Were there any changes to buffering or limiting?
A significant change was the new behavior of the limit_rate directive. It could now be set to take effect after transmitting a certain amount of data, defined by limit_rate_after. This is useful for allowing an initial burst of data (like a video buffer) before throttling the transfer speed.
Fixes were made to the proxy_max_temp_file_size directive. This directive controls the size of on-disk buffers when the upstream response is too large for memory, preventing disk space from being exhausted by a single large request.
What core issues were addressed in this release?
Several memory leak fixes were included, which are always important for long-running processes like NGINX. A leak in the SSL module and in the HTTP parser was patched, improving overall stability.
Connection handling was made more robust. A bug that could cause a segmentation fault when using the listen directive with both the ssl and http2 parameters (added later) on certain systems was fixed, preventing crashes.
FAQ
Is the SPDY support in NGINX 1.3 production-ready?
It was marked as experimental. While it worked for enabling the protocol, most teams waited for it to mature in subsequent releases before deploying it in critical production environments.
Why is the PROXY protocol support useful?
It solves the problem of losing the original client's IP address when traffic passes through a TCP load balancer. The balancer forwards the connection info in a header, and NGINX 1.3 could finally understand it.
What does the 'limit_rate_after' directive do?
It defines how much data (e.g., 500k) can be sent to a client at full speed before the limit_rate throttling kicks in. This is perfect for ensuring a video starts playing quickly before limiting bandwidth.
Does the mail module SNI support affect web traffic?
No, this change was specific to the mail module for protocols like IMAP and POP3. SNI for HTTPS was already supported in earlier versions.
Were there any security-specific patches in this version?
The fixes were primarily for stability (memory leaks, crashes). This release was more about adding new functionality than addressing critical security vulnerabilities.