Changes with nginx 1.11.1
- Security: a segmentation fault might occur in a worker process
while writing a specially crafted request body to a temporary
file (CVE-2016-4450); the bug had appeared in 1.3.9.
Changes with nginx 1.11.0
- Feature: the "transparent" parameter of the "proxy_bind",
"fastcgi_bind", "memcached_bind", "scgi_bind", and "uwsgi_bind"
directives.
- Feature: the $request_id variable.
- Feature: the "map" directive supports combinations of multiple
variables as resulting values.
- Feature: now nginx checks if EPOLLRDHUP events are supported by
kernel, and optimizes connection handling accordingly if the
"epoll" method is used.
- Feature: the "ssl_certificate" and "ssl_certificate_key"
directives can be specified multiple times to load certificates
of different types (for example, RSA and ECDSA).
- Feature: the "ssl_ecdh_curve" directive now allows specifying a
list of curves when using OpenSSL 1.0.2 or newer; by default
a list built into OpenSSL is used.
- Change: to use DHE ciphers it is now required to specify
parameters using the "ssl_dhparam" directive.
- Feature: the $proxy_protocol_port variable.
- Feature: the $realip_remote_port variable in the
ngx_http_realip_module.
- Feature: the ngx_http_realip_module is now able to set the
client port in addition to the address.
- Change: the "421 Misdirected Request" response now used when
rejecting requests to a virtual server different from one
negotiated during an SSL handshake; this improves interoperability
with some HTTP/2 clients when using client certificates.
- Change: HTTP/2 clients can now start sending request body
immediately; the "http2_body_preread_size" directive controls
size of the buffer used before nginx will start reading client
request body.
- Bugfix: cached error responses were not updated when using the
"proxy_cache_bypass" directive.
Changes with nginx 1.9.15
- Bugfix: "recv() failed" errors might occur when using HHVM as a
FastCGI server.
- Bugfix: when using HTTP/2 and the "limit_req" or "auth_request"
directives a timeout or a "client violated flow control" error
might occur while reading client request body; the bug had appeared
in 1.9.14.
- Workaround: a response might not be shown by some browsers if
HTTP/2 was used and client request body was not fully read; the
bug had appeared in 1.9.14.
- Bugfix: connections might hang when using the "aio threads"
directive.
Thanks to Mindaugas Rasiukevicius.
Changes with nginx 1.9.14
- Feature: OpenSSL 1.1.0 compatibility.
- Feature: the "proxy_request_buffering",
"fastcgi_request_buffering",
"scgi_request_buffering", and "uwsgi_request_buffering"
directives now work with HTTP/2.
- Bugfix: "zero size buf in output" alerts might appear in logs
when using HTTP/2.
- Bugfix: the "client_max_body_size" directive might work
incorrectly when using HTTP/2.
- Bugfix: of minor bugs in logging.
Changes with nginx 1.9.13
- Change: non-idempotent requests (POST, LOCK, PATCH) are no
longer passed to the next server by default if a request has
been sent to a backend; the "non_idempotent" parameter of the
"proxy_next_upstream" directive explicitly allows retrying such
requests.
- Feature: the ngx_http_perl_module can be built dynamically.
- Feature: UDP support in the stream module.
- Feature: the "aio_write" directive.
- Feature: now cache manager monitors number of elements in caches
and tries to avoid cache keys zone overflows.
- Bugfix: "task already active" and "second aio post" alerts might
appear in logs when using the "sendfile" and "aio" directives
with subrequests.
- Bugfix: "zero size buf in output" alerts might appear in logs if
caching was used and a client closed a connection prematurely.
- Bugfix: connections with clients might be closed needlessly if
caching was used.
Thanks to Justin Li.
- Bugfix: nginx might hog CPU if the "sendfile" directive was used
on Linux or Solaris and a file being sent was changed during
sending.
- Bugfix: connections might hang when using the "sendfile" and
"aio threads" directives.
- Bugfix: in the "proxy_pass", "fastcgi_pass", "scgi_pass", and
"uwsgi_pass" directives when using variables.
Thanks to Piotr Sikora.
- Bugfix: in the ngx_http_sub_filter_module.
- Bugfix: if an error occurred in a cached backend connection, the
request was passed to the next server regardless of the
proxy_next_upstream directive.
- Bugfix: "CreateFile() failed" errors when creating temporary
files on Windows.
Changes with nginx 1.9.12
- Feature: Huffman encoding of response headers in HTTP/2.
Thanks to Vlad Krasnov.
- Feature: the "worker_cpu_affinity" directive now supports more
than 64 CPUs.
- Bugfix: compatibility with 3rd party C++ modules; the bug had
appeared in 1.9.11.
Thanks to Piotr Sikora.
- Bugfix: nginx could not be built statically with OpenSSL on
Linux; the bug had appeared in 1.9.11.
- Bugfix: the "add_header ... always" directive with an empty
value did not delete "Last-Modified" and "ETag" header lines
from error responses.
- Workaround: "called a function you should not call" and
"shutdown while in init" messages might appear in logs when
using OpenSSL 1.0.2f.
- Bugfix: invalid headers might be logged incorrectly.
- Bugfix: socket leak when using HTTP/2.
- Bugfix: in the ngx_http_v2_module.
Changes with nginx 1.9.11
- Feature: TCP support in resolver.
- Feature: dynamic modules.
- Bugfix: the $request_length variable did not include size of
request headers when using HTTP/2.
- Bugfix: in the ngx_http_v2_module.