
Changes with nginx 1.20.2                                        16 Nov 2021

    *) Feature: OpenSSL 3.0 compatibility.

    *) Bugfix: SSL variables might be empty when used in logs; the bug had
       appeared in 1.19.5.

    *) Bugfix: keepalive connections with gRPC backends might not be closed
       after receiving a GOAWAY frame.

    *) Bugfix: backend SSL connections in the stream module might hang after
       an SSL handshake.

    *) Bugfix: SSL connections with gRPC backends might hang if select,
       poll, or /dev/poll methods were used.

    *) Bugfix: in the $content_length variable when using chunked transfer
       encoding.

    *) Bugfix: requests might hang when using HTTP/2 and the "aio_write"
       directive.


Changes with nginx 1.20.1                                        25 May 2021

    *) Security: 1-byte memory overwrite might occur during DNS server
       response processing if the "resolver" directive was used, allowing an
       attacker who is able to forge UDP packets from the DNS server to
       cause worker process crash or, potentially, arbitrary code execution
       (CVE-2021-23017).


Changes with nginx 1.20.0                                        20 Apr 2021

    *) 1.20.x stable branch.


Changes with nginx 1.19.10                                       13 Apr 2021

    *) Change: the default value of the "keepalive_requests" directive was
       changed to 1000.

    *) Feature: the "keepalive_time" directive.

    *) Feature: the $connection_time variable.

    *) Workaround: "gzip filter failed to use preallocated memory" alerts
       appeared in logs when using zlib-ng.


Changes with nginx 1.19.9                                        30 Mar 2021

    *) Bugfix: nginx could not be built with the mail proxy module, but
       without the ngx_mail_ssl_module; the bug had appeared in 1.19.8.

    *) Bugfix: "upstream sent response body larger than indicated content
       length" errors might occur when working with gRPC backends; the bug
       had appeared in 1.19.1.

    *) Bugfix: nginx might not close a connection till keepalive timeout
       expiration if the connection was closed by the client while
       discarding the request body.

    *) Bugfix: nginx might not detect that a connection was already closed
       by the client when waiting for auth_delay or limit_req delay, or when
       working with backends.

    *) Bugfix: in the eventport method.


Changes with nginx 1.19.8                                        09 Mar 2021

    *) Feature: flags in the "proxy_cookie_flags" directive can now contain
       variables.

    *) Feature: the "proxy_protocol" parameter of the "listen" directive,
       the "proxy_protocol" and "set_real_ip_from" directives in mail proxy.

    *) Bugfix: HTTP/2 connections were immediately closed when using
       "keepalive_timeout 0"; the bug had appeared in 1.19.7.

    *) Bugfix: some errors were logged as unknown if nginx was built with
       glibc 2.32.

    *) Bugfix: in the eventport method.


Changes with nginx 1.19.7                                        16 Feb 2021

    *) Change: connections handling in HTTP/2 has been changed to better
       match HTTP/1.x; the "http2_recv_timeout", "http2_idle_timeout", and
       "http2_max_requests" directives have been removed, the
       "keepalive_timeout" and "keepalive_requests" directives should be
       used instead.

    *) Change: the "http2_max_field_size" and "http2_max_header_size"
       directives have been removed, the "large_client_header_buffers"
       directive should be used instead.

    *) Feature: now, if free worker connections are exhausted, nginx starts
       closing not only keepalive connections, but also connections in
       lingering close.

    *) Bugfix: "zero size buf in output" alerts might appear in logs if an
       upstream server returned an incorrect response during unbuffered
       proxying; the bug had appeared in 1.19.1.

    *) Bugfix: HEAD requests were handled incorrectly if the "return"
       directive was used with the "image_filter" or "xslt_stylesheet"
       directives.

    *) Bugfix: in the "add_trailer" directive.


Changes with nginx 1.19.6                                        15 Dec 2020

    *) Bugfix: "no live upstreams" errors if a "server" inside "upstream"
       block was marked as "down".

    *) Bugfix: a segmentation fault might occur in a worker process if HTTPS
       was used; the bug had appeared in 1.19.5.

    *) Bugfix: nginx returned the 400 response on requests like
       "GET http://example.com?args HTTP/1.0".

    *) Bugfix: in the ngx_http_flv_module and ngx_http_mp4_module.
       Thanks to Chris Newton.


Changes with nginx 1.19.5                                        24 Nov 2020

    *) Feature: the -e switch.

    *) Feature: the same source files can now be specified in different
       modules while building addon modules.

    *) Bugfix: SSL shutdown did not work when lingering close was used.

    *) Bugfix: "upstream sent frame for closed stream" errors might occur
       when working with gRPC backends.

    *) Bugfix: in request body filters internal API.


Changes with nginx 1.19.4                                        27 Oct 2020

    *) Feature: the "ssl_conf_command", "proxy_ssl_conf_command",
       "grpc_ssl_conf_command", and "uwsgi_ssl_conf_command" directives.

    *) Feature: the "ssl_reject_handshake" directive.

    *) Feature: the "proxy_smtp_auth" directive in mail proxy.


Changes with nginx 1.19.3                                        29 Sep 2020

    *) Feature: the ngx_stream_set_module.

    *) Feature: the "proxy_cookie_flags" directive.

    *) Feature: the "userid_flags" directive.

    *) Bugfix: the "stale-if-error" cache control extension was erroneously
       applied if backend returned a response with status code 500, 502,
       503, 504, 403, 404, or 429.

    *) Bugfix: "[crit] cache file ... has too long header" messages might
       appear in logs if caching was used and the backend returned responses
       with the "Vary" header line.

    *) Workaround: "[crit] SSL_write() failed" messages might appear in logs
       when using OpenSSL 1.1.1.

    *) Bugfix: "SSL_shutdown() failed (SSL: ... bad write retry)" messages
       might appear in logs; the bug had appeared in 1.19.2.

    *) Bugfix: a segmentation fault might occur in a worker process when
       using HTTP/2 if errors with code 400 were redirected to a proxied
       location using the "error_page" directive.

    *) Bugfix: socket leak when using HTTP/2 and subrequests in the njs
       module.


Changes with nginx 1.19.2                                        11 Aug 2020

    *) Change: now nginx starts closing keepalive connections before all
       free worker connections are exhausted, and logs a warning about this
       to the error log.

    *) Change: optimization of client request body reading when using
       chunked transfer encoding.

    *) Bugfix: memory leak if the "ssl_ocsp" directive was used.

    *) Bugfix: "zero size buf in output" alerts might appear in logs if a
       FastCGI server returned an incorrect response; the bug had appeared
       in 1.19.1.

    *) Bugfix: a segmentation fault might occur in a worker process if
       different large_client_header_buffers sizes were used in different
       virtual servers.

    *) Bugfix: SSL shutdown might not work.

    *) Bugfix: "SSL_shutdown() failed (SSL: ... bad write retry)" messages
       might appear in logs.

    *) Bugfix: in the ngx_http_slice_module.

    *) Bugfix: in the ngx_http_xslt_filter_module.


Changes with nginx 1.19.1                                        07 Jul 2020

    *) Change: the "lingering_close", "lingering_time", and
       "lingering_timeout" directives now work when using HTTP/2.

    *) Change: now extra data sent by a backend are always discarded.

    *) Change: now after receiving a too short response from a FastCGI
       server nginx tries to send the available part of the response to the
       client, and then closes the client connection.

    *) Change: now after receiving a response with incorrect length from a
       gRPC backend nginx stops response processing with an error.

    *) Feature: the "min_free" parameter of the "proxy_cache_path",
       "fastcgi_cache_path", "scgi_cache_path", and "uwsgi_cache_path"
       directives.
       Thanks to Adam Bambuch.

    *) Bugfix: nginx did not delete unix domain listen sockets during
       graceful shutdown on the SIGQUIT signal.

    *) Bugfix: zero length UDP datagrams were not proxied.

    *) Bugfix: proxying to uwsgi backends using SSL might not work.
       Thanks to Guanzhong Chen.

    *) Bugfix: in error handling when using the "ssl_ocsp" directive.

    *) Bugfix: on XFS and NFS file systems disk cache size might be
       calculated incorrectly.

    *) Bugfix: "negative size buf in writer" alerts might appear in logs if
       a memcached server returned a malformed response.


Changes with nginx 1.19.0                                        26 May 2020

    *) Feature: client certificate validation with OCSP.

    *) Bugfix: "upstream sent frame for closed stream" errors might occur
       when working with gRPC backends.

    *) Bugfix: OCSP stapling might not work if the "resolver" directive was
       not specified.

    *) Bugfix: connections with incorrect HTTP/2 preface were not logged.


Changes with nginx 1.17.10                                       14 Apr 2020

    *) Feature: the "auth_delay" directive.


Changes with nginx 1.17.9                                        03 Mar 2020

    *) Change: now nginx does not allow several "Host" request header lines.

    *) Bugfix: nginx ignored additional "Transfer-Encoding" request header
       lines.

    *) Bugfix: socket leak when using HTTP/2.

    *) Bugfix: a segmentation fault might occur in a worker process if OCSP
       stapling was used.

    *) Bugfix: in the ngx_http_mp4_module.

    *) Bugfix: nginx used status code 494 instead of 400 if errors with code
       494 were redirected with the "error_page" directive.

    *) Bugfix: socket leak when using subrequests in the njs module and the
       "aio" directive.


Changes with nginx 1.17.8                                        21 Jan 2020

    *) Feature: variables support in the "grpc_pass" directive.

    *) Bugfix: a timeout might occur while handling pipelined requests in an
       SSL connection; the bug had appeared in 1.17.5.

    *) Bugfix: in the "debug_points" directive when using HTTP/2.
       Thanks to Daniil Bondarev.


Changes with nginx 1.17.7                                        24 Dec 2019

    *) Bugfix: a segmentation fault might occur on start or during
       reconfiguration if the "rewrite" directive with an empty replacement
       string was used in the configuration.

    *) Bugfix: a segmentation fault might occur in a worker process if the
       "break" directive was used with the "alias" directive or with the
       "proxy_pass" directive with a URI.

    *) Bugfix: the "Location" response header line might contain garbage if
       the request URI was rewritten to the one containing a null character.

    *) Bugfix: requests with bodies were handled incorrectly when returning
       redirections with the "error_page" directive; the bug had appeared in
       0.7.12.

    *) Bugfix: socket leak when using HTTP/2.

    *) Bugfix: a timeout might occur while handling pipelined requests in an
       SSL connection; the bug had appeared in 1.17.5.

    *) Bugfix: in the ngx_http_dav_module.


Changes with nginx 1.17.6                                        19 Nov 2019

    *) Feature: the $proxy_protocol_server_addr and
       $proxy_protocol_server_port variables.

    *) Feature: the "limit_conn_dry_run" directive.

    *) Feature: the $limit_req_status and $limit_conn_status variables.


Changes with nginx 1.17.5                                        22 Oct 2019

    *) Feature: now nginx uses ioctl(FIONREAD), if available, to avoid
       reading from a fast connection for a long time.

    *) Bugfix: incomplete escaped characters at the end of the request URI
       were ignored.

    *) Bugfix: "/." and "/.." at the end of the request URI were not
       normalized.

    *) Bugfix: in the "merge_slashes" directive.

    *) Bugfix: in the "ignore_invalid_headers" directive.
       Thanks to Alan Kemp.

    *) Bugfix: nginx could not be built with MinGW-w64 gcc 8.1 or newer.


Changes with nginx 1.17.4                                        24 Sep 2019

    *) Change: better detection of incorrect client behavior in HTTP/2.

    *) Change: in handling of not fully read client request body when
       returning errors in HTTP/2.

    *) Bugfix: the "worker_shutdown_timeout" directive might not work when
       using HTTP/2.

    *) Bugfix: a segmentation fault might occur in a worker process when
       using HTTP/2 and the "proxy_request_buffering" directive.

    *) Bugfix: the ECONNABORTED error log level was "crit" instead of
       "error" on Windows when using SSL.

    *) Bugfix: nginx ignored extra data when using chunked transfer
       encoding.

    *) Bugfix: nginx always returned the 500 error if the "return" directive
       was used and an error occurred during reading client request body.

    *) Bugfix: in memory allocation error handling.


Changes with nginx 1.17.3                                        13 Aug 2019

    *) Security: when using HTTP/2 a client might cause excessive memory
       consumption and CPU usage (CVE-2019-9511, CVE-2019-9513,
       CVE-2019-9516).

    *) Bugfix: "zero size buf" alerts might appear in logs when using
       gzipping; the bug had appeared in 1.17.2.

    *) Bugfix: a segmentation fault might occur in a worker process if the
       "resolver" directive was used in SMTP proxy.


Changes with nginx 1.17.2                                        23 Jul 2019

    *) Change: minimum supported zlib version is 1.2.0.4.
       Thanks to Ilya Leoshkevich.

    *) Change: the $r->internal_redirect() embedded perl method now expects
       escaped URIs.

    *) Feature: it is now possible to switch to a named location using the
       $r->internal_redirect() embedded perl method.

    *) Bugfix: in error handling in embedded perl.

    *) Bugfix: a segmentation fault might occur on start or during
       reconfiguration if hash bucket size larger than 64 kilobytes was used
       in the configuration.

    *) Bugfix: nginx might hog CPU during unbuffered proxying and when
       proxying WebSocket connections if the select, poll, or /dev/poll
       methods were used.

    *) Bugfix: in the ngx_http_xslt_filter_module.

    *) Bugfix: in the ngx_http_ssi_filter_module.


Changes with nginx 1.17.1                                        25 Jun 2019

    *) Feature: the "limit_req_dry_run" directive.

    *) Feature: when using the "hash" directive inside the "upstream" block
       an empty hash key now triggers round-robin balancing.
       Thanks to Niklas Keller.

    *) Bugfix: a segmentation fault might occur in a worker process if
       caching was used along with the "image_filter" directive, and errors
       with code 415 were redirected with the "error_page" directive; the
       bug had appeared in 1.11.10.

    *) Bugfix: a segmentation fault might occur in a worker process if
       embedded perl was used; the bug had appeared in 1.7.3.


Changes with nginx 1.17.0                                        21 May 2019

    *) Feature: variables support in the "limit_rate" and "limit_rate_after"
       directives.

    *) Feature: variables support in the "proxy_upload_rate" and
       "proxy_download_rate" directives in the stream module.

    *) Change: minimum supported OpenSSL version is 0.9.8.

    *) Change: now the postpone filter is always built.

    *) Bugfix: the "include" directive did not work inside the "if" and
       "limit_except" blocks.

    *) Bugfix: in byte ranges processing.


Changes with nginx 1.15.12                                       16 Apr 2019

    *) Bugfix: a segmentation fault might occur in a worker process if
       variables were used in the "ssl_certificate" or "ssl_certificate_key"
       directives and OCSP stapling was enabled.


Changes with nginx 1.15.11                                       09 Apr 2019

    *) Bugfix: in the "ssl_stapling_file" directive on Windows.


Changes with nginx 1.15.10                                       26 Mar 2019

    *) Change: when using a hostname in the "listen" directive nginx now
       creates listening sockets for all addresses the hostname resolves to
       (previously, only the first address was used).

    *) Feature: port ranges in the "listen" directive.

    *) Feature: loading of SSL certificates and secret keys from variables.

    *) Workaround: the $ssl_server_name variable might be empty when using
       OpenSSL 1.1.1.

    *) Bugfix: nginx/Windows could not be built with Visual Studio 2015 or
       newer; the bug had appeared in 1.15.9.


Changes with nginx 1.15.9                                        26 Feb 2019

    *) Feature: variables support in the "ssl_certificate" and
       "ssl_certificate_key" directives.

    *) Feature: the "poll" method is now available on Windows when using
       Windows Vista or newer.

    *) Bugfix: if the "select" method was used on Windows and an error
       occurred while establishing a backend connection, nginx waited for
       the connection establishment timeout to expire.

    *) Bugfix: the "proxy_upload_rate" and "proxy_download_rate" directives
       in the stream module worked incorrectly when proxying UDP datagrams.


Changes with nginx 1.15.8                                        25 Dec 2018

    *) Feature: the $upstream_bytes_sent variable.
       Thanks to Piotr Sikora.

    *) Feature: new directives in vim syntax highlighting scripts.
       Thanks to Gena Makhomed.

    *) Bugfix: in the "proxy_cache_background_update" directive.

    *) Bugfix: in the "geo" directive when using unix domain listen sockets.

    *) Workaround: the "ignoring stale global SSL error ... bad length"
       alerts might appear in logs when using the "ssl_early_data" directive
       with OpenSSL.

    *) Bugfix: in nginx/Windows.

    *) Bugfix: in the ngx_http_autoindex_module on 32-bit platforms.


Changes with nginx 1.15.7                                        27 Nov 2018

    *) Feature: the "proxy_requests" directive in the stream module.

    *) Feature: the "delay" parameter of the "limit_req" directive.
       Thanks to Vladislav Shabanov and Peter Shchuchkin.

    *) Bugfix: memory leak on errors during reconfiguration.

    *) Bugfix: in the $upstream_response_time, $upstream_connect_time, and
       $upstream_header_time variables.

    *) Bugfix: a segmentation fault might occur in a worker process if the
       ngx_http_mp4_module was used on 32-bit platforms.


Changes with nginx 1.15.6                                        06 Nov 2018

    *) Security: when using HTTP/2 a client might cause excessive memory
       consumption (CVE-2018-16843) and CPU usage (CVE-2018-16844).

    *) Security: processing of a specially crafted mp4 file with the
       ngx_http_mp4_module might result in worker process memory disclosure
       (CVE-2018-16845).

    *) Feature: the "proxy_socket_keepalive", "fastcgi_socket_keepalive",
       "grpc_socket_keepalive", "memcached_socket_keepalive",
       "scgi_socket_keepalive", and "uwsgi_socket_keepalive" directives.

    *) Bugfix: if nginx was built with OpenSSL 1.1.0 and used with OpenSSL
       1.1.1, the TLS 1.3 protocol was always enabled.

    *) Bugfix: working with gRPC backends might result in excessive memory
       consumption.


Changes with nginx 1.15.5                                        02 Oct 2018

    *) Bugfix: a segmentation fault might occur in a worker process when
       using OpenSSL 1.1.0h or newer; the bug had appeared in 1.15.4.

    *) Bugfix: of minor potential bugs.


Changes with nginx 1.15.4                                        25 Sep 2018

    *) Feature: now the "ssl_early_data" directive can be used with OpenSSL.

    *) Bugfix: in the ngx_http_uwsgi_module.
       Thanks to Chris Caputo.

    *) Bugfix: connections with some gRPC backends might not be cached when
       using the "keepalive" directive.

    *) Bugfix: a socket leak might occur when using the "error_page"
       directive to redirect early request processing errors, notably errors
       with code 400.

    *) Bugfix: the "return" directive did not change the response code when
       returning errors if the request was redirected by the "error_page"
       directive.

    *) Bugfix: standard error pages and responses of the
       ngx_http_autoindex_module module used the "bgcolor" attribute, and
       might be displayed incorrectly when using custom color settings in
       browsers.
       Thanks to Nova DasSarma.

    *) Change: the logging level of the "no suitable key share" and "no
       suitable signature algorithm" SSL errors has been lowered from "crit"
       to "info".


Changes with nginx 1.15.3                                        28 Aug 2018

    *) Feature: now TLSv1.3 can be used with BoringSSL.

    *) Feature: the "ssl_early_data" directive, currently available with
       BoringSSL.

    *) Feature: the "keepalive_timeout" and "keepalive_requests" directives
       in the "upstream" block.

    *) Bugfix: the ngx_http_dav_module did not truncate destination file
       when copying a file over an existing one with the COPY method.

    *) Bugfix: the ngx_http_dav_module used zero access rights on the
       destination file and did not preserve file modification time when
       moving a file between different file systems with the MOVE method.

    *) Bugfix: the ngx_http_dav_module used default access rights when
       copying a file with the COPY method.

    *) Workaround: some clients might not work when using HTTP/2; the bug
       had appeared in 1.13.5.

    *) Bugfix: nginx could not be built with LibreSSL 2.8.0.


Changes with nginx 1.15.2                                        24 Jul 2018

    *) Feature: the $ssl_preread_protocol variable in the
       ngx_stream_ssl_preread_module.

    *) Feature: now when using the "reset_timedout_connection" directive
       nginx will reset connections being closed with the 444 code.

    *) Change: a logging level of the "http request", "https proxy request",
       "unsupported protocol", and "version too low" SSL errors has been
       lowered from "crit" to "info".

    *) Bugfix: DNS requests were not resent if initial sending of a request
       failed.

    *) Bugfix: the "reuseport" parameter of the "listen" directive was
       ignored if the number of worker processes was specified after the
       "listen" directive.

    *) Bugfix: when using OpenSSL 1.1.0 or newer it was not possible to
       switch off "ssl_prefer_server_ciphers" in a virtual server if it was
       switched on in the default server.

    *) Bugfix: SSL session reuse with upstream servers did not work with the
       TLS 1.3 protocol.


Changes with nginx 1.15.1                                        03 Jul 2018

    *) Feature: the "random" directive inside the "upstream" block.

    *) Feature: improved performance when using the "hash" and "ip_hash"
       directives with the "zone" directive.

    *) Feature: the "reuseport" parameter of the "listen" directive now uses
       SO_REUSEPORT_LB on FreeBSD 12.

    *) Bugfix: HTTP/2 server push did not work if SSL was terminated by a
       proxy server in front of nginx.

    *) Bugfix: the "tcp_nopush" directive was always used on backend
       connections.

    *) Bugfix: sending a disk-buffered request body to a gRPC backend might
       fail.


Changes with nginx 1.15.0                                        05 Jun 2018

    *) Change: the "ssl" directive is deprecated; the "ssl" parameter of the
       "listen" directive should be used instead.

    *) Change: now nginx detects missing SSL certificates during
       configuration testing when using the "ssl" parameter of the "listen"
       directive.

    *) Feature: now the stream module can handle multiple incoming UDP
       datagrams from a client within a single session.

    *) Bugfix: it was possible to specify an incorrect response code in the
       "proxy_cache_valid" directive.

    *) Bugfix: nginx could not be built by gcc 8.1.

    *) Bugfix: logging to syslog stopped on local IP address changes.

    *) Bugfix: nginx could not be built by clang with CUDA SDK installed;
       the bug had appeared in 1.13.8.

    *) Bugfix: "getsockopt(TCP_FASTOPEN) ... failed" messages might appear
       in logs during binary upgrade when using unix domain listen sockets
       on FreeBSD.

    *) Bugfix: nginx could not be built on Fedora 28 Linux.

    *) Bugfix: request processing rate might exceed configured rate when
       using the "limit_req" directive.

    *) Bugfix: in handling of client addresses when using unix domain listen
       sockets to work with datagrams on Linux.

    *) Bugfix: in memory allocation error handling.


Changes with nginx 1.13.12                                       10 Apr 2018

    *) Bugfix: connections with gRPC backends might be closed unexpectedly
       when returning a large response.


Changes with nginx 1.13.11                                       03 Apr 2018

    *) Feature: the "proxy_protocol" parameter of the "listen" directive now
       supports the PROXY protocol version 2.

    *) Bugfix: nginx could not be built with OpenSSL 1.1.1 statically on
       Linux.

    *) Bugfix: in the "http_404", "http_500", etc. parameters of the
       "proxy_next_upstream" directive.


Changes with nginx 1.13.10                                       20 Mar 2018

    *) Feature: the "set" parameter of the "include" SSI directive now
       allows writing arbitrary responses to a variable; the
       "subrequest_output_buffer_size" directive defines maximum response
       size.

    *) Feature: now nginx uses clock_gettime(CLOCK_MONOTONIC) if available,
       to avoid timeouts being incorrectly triggered on system time changes.

    *) Feature: the "escape=none" parameter of the "log_format" directive.
       Thanks to Johannes Baiter and Calin Don.

    *) Feature: the $ssl_preread_alpn_protocols variable in the
       ngx_stream_ssl_preread_module.

    *) Feature: the ngx_http_grpc_module.

    *) Bugfix: in memory allocation error handling in the "geo" directive.

    *) Bugfix: when using variables in the "auth_basic_user_file" directive
       a null character might appear in logs.
       Thanks to Vadim Filimonov.


Changes with nginx 1.13.9                                        20 Feb 2018

    *) Feature: HTTP/2 server push support; the "http2_push" and
       "http2_push_preload" directives.

    *) Bugfix: "header already sent" alerts might appear in logs when using
       cache; the bug had appeared in 1.9.13.

    *) Bugfix: a segmentation fault might occur in a worker process if the
       "ssl_verify_client" directive was used and no SSL certificate was
       specified in a virtual server.

    *) Bugfix: in the ngx_http_v2_module.

    *) Bugfix: in the ngx_http_dav_module.


Changes with nginx 1.13.8                                        26 Dec 2017

    *) Feature: now nginx automatically preserves the CAP_NET_RAW capability
       in worker processes when using the "transparent" parameter of the
       "proxy_bind", "fastcgi_bind", "memcached_bind", "scgi_bind", and
       "uwsgi_bind" directives.

    *) Feature: improved CPU cache line size detection.
       Thanks to Debayan Ghosh.

    *) Feature: new directives in vim syntax highlighting scripts.
       Thanks to Gena Makhomed.

    *) Bugfix: binary upgrade refused to work if nginx was re-parented to a
       process with PID different from 1 after its parent process has
       finished.

    *) Bugfix: the ngx_http_autoindex_module incorrectly handled requests
       with bodies.

    *) Bugfix: in the "proxy_limit_rate" directive when used with the
       "keepalive" directive.

    *) Bugfix: some parts of a response might be buffered when using
       "proxy_buffering off" if the client connection used SSL.
       Thanks to Patryk Lesiewicz.

    *) Bugfix: in the "proxy_cache_background_update" directive.

    *) Bugfix: it was not possible to start a parameter with a variable in
       the "${name}" form with the name in curly brackets without enclosing
       the parameter into single or double quotes.


Changes with nginx 1.13.7                                        21 Nov 2017

    *) Bugfix: in the $upstream_status variable.

    *) Bugfix: a segmentation fault might occur in a worker process if a
       backend returned a "101 Switching Protocols" response to a
       subrequest.

    *) Bugfix: a segmentation fault occurred in a master process if a shared
       memory zone size was changed during a reconfiguration and the
       reconfiguration failed.

    *) Bugfix: in the ngx_http_fastcgi_module.

    *) Bugfix: nginx returned the 500 error if parameters without variables
       were specified in the "xslt_stylesheet" directive.

    *) Workaround: "gzip filter failed to use preallocated memory" alerts
       appeared in logs when using a zlib library variant from Intel.

    *) Bugfix: the "worker_shutdown_timeout" directive did not work when
       using mail proxy and when proxying WebSocket connections.


Changes with nginx 1.13.6                                        10 Oct 2017

    *) Bugfix: switching to the next upstream server in the stream module
       did not work when using the "ssl_preread" directive.

    *) Bugfix: in the ngx_http_v2_module.
       Thanks to Piotr Sikora.

    *) Bugfix: nginx did not support dates after the year 2038 on 32-bit
       platforms with 64-bit time_t.

    *) Bugfix: in handling of dates prior to the year 1970 and after the
       year 10000.

    *) Bugfix: in the stream module timeouts waiting for UDP datagrams from
       upstream servers were not logged or logged at the "info" level
       instead of "error".

    *) Bugfix: when using HTTP/2 nginx might return the 400 response without
       logging the reason.

    *) Bugfix: in processing of corrupted cache files.

    *) Bugfix: cache control headers were ignored when caching errors
       intercepted by error_page.

    *) Bugfix: when using HTTP/2 client request body might be corrupted.

    *) Bugfix: in handling of client addresses when using unix domain
       sockets.

    *) Bugfix: nginx hogged CPU when using the "hash ... consistent"
       directive in the upstream block if large weights were used and all or
       most of the servers were unavailable.


Changes with nginx 1.13.5                                        05 Sep 2017

    *) Feature: the $ssl_client_escaped_cert variable.

    *) Bugfix: the "ssl_session_ticket_key" directive and the "include"
       parameter of the "geo" directive did not work on Windows.

    *) Bugfix: incorrect response length was returned on 32-bit platforms
       when requesting more than 4 gigabytes with multiple ranges.

    *) Bugfix: the "expires modified" directive and processing of the
       "If-Range" request header line did not use the response last
       modification time if proxying without caching was used.


Changes with nginx 1.13.4                                        08 Aug 2017

    *) Feature: the ngx_http_mirror_module.

    *) Bugfix: client connections might be dropped during configuration
       testing when using the "reuseport" parameter of the "listen"
       directive on Linux.

    *) Bugfix: request body might not be available in subrequests if it was
       saved to a file and proxying was used.

    *) Bugfix: cleaning cache based on the "max_size" parameter did not work
       on Windows.

    *) Bugfix: any shared memory allocation required 4096 bytes on Windows.

    *) Bugfix: nginx worker might be terminated abnormally when using the
       "zone" directive inside the "upstream" block on Windows.


Changes with nginx 1.13.3                                        11 Jul 2017

    *) Security: a specially crafted request might result in an integer
       overflow and incorrect processing of ranges in the range filter,
       potentially resulting in sensitive information leak (CVE-2017-7529).


Changes with nginx 1.13.2                                        27 Jun 2017

    *) Change: nginx now returns 200 instead of 416 when a range starting
       with 0 is requested from an empty file.

    *) Feature: the "add_trailer" directive.
       Thanks to Piotr Sikora.

    *) Bugfix: nginx could not be built on Cygwin and NetBSD; the bug had
       appeared in 1.13.0.

    *) Bugfix: nginx could not be built under MSYS2 / MinGW 64-bit.
       Thanks to Orgad Shaneh.

    *) Bugfix: a segmentation fault might occur in a worker process when
       using SSI with many includes and proxy_pass with variables.

    *) Bugfix: in the ngx_http_v2_module.
       Thanks to Piotr Sikora.


Changes with nginx 1.13.1                                        30 May 2017

    *) Feature: now a hostname can be used as the "set_real_ip_from"
       directive parameter.

    *) Feature: vim syntax highlighting scripts improvements.

    *) Feature: the "worker_cpu_affinity" directive now works on DragonFly
       BSD.
       Thanks to Sepherosa Ziehau.

    *) Bugfix: SSL renegotiation on backend connections did not work when
       using OpenSSL before 1.1.0.

    *) Workaround: nginx could not be built with Oracle Developer Studio
       12.5.

    *) Workaround: now cache manager ignores long locked cache entries when
       cleaning cache based on the "max_size" parameter.

    *) Bugfix: client SSL connections were immediately closed if deferred
       accept and the "proxy_protocol" parameter of the "listen" directive
       were used.

    *) Bugfix: in the "proxy_cache_background_update" directive.

    *) Workaround: now the "tcp_nodelay" directive sets the TCP_NODELAY
       option before an SSL handshake.


Changes with nginx 1.13.0                                        25 Apr 2017

    *) Change: SSL renegotiation is now allowed on backend connections.

    *) Feature: the "rcvbuf" and "sndbuf" parameters of the "listen"
       directives of the mail proxy and stream modules.

    *) Feature: the "return" and "error_page" directives can now be used to
       return 308 redirections.
       Thanks to Simon Leblanc.

    *) Feature: the "TLSv1.3" parameter of the "ssl_protocols" directive.

    *) Feature: when logging signals nginx now logs PID of the process which
       sent the signal.

    *) Bugfix: in memory allocation error handling.

    *) Bugfix: if a server in the stream module listened on a wildcard
       address, the source address of a response UDP datagram could differ
       from the original datagram destination address.


Changes with nginx 1.11.13                                       04 Apr 2017

    *) Feature: the "http_429" parameter of the "proxy_next_upstream",
       "fastcgi_next_upstream", "scgi_next_upstream", and
       "uwsgi_next_upstream" directives.
       Thanks to Piotr Sikora.

    *) Bugfix: in memory allocation error handling.

    *) Bugfix: requests might hang when using the "sendfile" and
       "timer_resolution" directives on Linux.

    *) Bugfix: requests might hang when using the "sendfile" and "aio_write"
       directives with subrequests.

    *) Bugfix: in the ngx_http_v2_module.
       Thanks to Piotr Sikora.

    *) Bugfix: a segmentation fault might occur in a worker process when
       using HTTP/2.

    *) Bugfix: requests might hang when using the "limit_rate",
       "sendfile_max_chunk", "limit_req" directives, or the $r->sleep()
       embedded perl method with subrequests.

    *) Bugfix: in the ngx_http_slice_module.


