# changelog

author: Oleg Cherniy <oleg.cherniy@gmail.com> - 1.9.11-ria1
changelog:
  Changes with nginx 1.9.11                                        09 Feb 2016
  - 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.


author: Oleg Cherniy <oleg.cherniy@gmail.com> - 1.9.12-ria3
changelog:
  - Remove nginx ctpp module. Module stop supporting :(
  Changes with nginx 1.9.12                                        24 Feb 2016
  - 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.


author: Oleg Cherniy <oleg.cherniy@gmail.com> - 1.9.14-ria1
changelog:
  Changes with nginx 1.9.14                                        05 Apr 2016
  - 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                                        29 Mar 2016
  - 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.


author: Oleg Cherniy <oleg.cherniy@gmail.com> - 1.9.15-ria1
changelog:
  Changes with nginx 1.9.15                                        19 Apr 2016
  - 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.


author: Oleg Cherniy <oleg.cherniy@gmail.com> - 1.11.0-ria1
changelog:
  Changes with nginx 1.11.0                                        24 May 2016
  - 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.


author: Oleg Cherniy <oleg.cherniy@gmail.com> - 1.11.6-ria1
changelog:
  Changes with nginx 1.11.6                                        15 Nov 2016
  - Change: format of the $ssl_client_s_dn and $ssl_client_i_dn variables
    has been changed to follow RFC 2253 (RFC 4514); values in the old
    format are available in the $ssl_client_s_dn_legacy and
    $ssl_client_i_dn_legacy variables.
  - Change: when storing temporary files in a cache directory they will
    be stored in the same subdirectories as corresponding cache files
    instead of a separate subdirectory for temporary files.
  - Feature: EXTERNAL authentication mechanism support in mail proxy.
    Thanks to Robert Norris.
  - Feature: WebP support in the ngx_http_image_filter_module.
  - Feature: variables support in the "proxy_method" directive.
    Thanks to Dmitry Lazurkin.
  - Feature: the "http2_max_requests" directive in the
    ngx_http_v2_module.
  - Feature: the "proxy_cache_max_range_offset",
    "fastcgi_cache_max_range_offset", "scgi_cache_max_range_offset", and
    "uwsgi_cache_max_range_offset" directives.
  - Bugfix: graceful shutdown of old worker processes might require
    infinite time when using HTTP/2.
  - Bugfix: in the ngx_http_mp4_module.
  - Bugfix: "ignore long locked inactive cache entry" alerts might appear
    in logs when proxying WebSocket connections with caching enabled.
  - Bugfix: nginx did not write anything to log and returned a response
    with code 502 instead of 504 when a timeout occurred during an SSL
    handshake to a backend.


author: Oleg Cherniy <oleg.cherniy@gmail.com> - 1.11.10-ria1
changelog:
  Changes with nginx 1.11.10                                       14 Feb 2017
  - Change: cache header format has been changed, previously cached
    responses will be invalidated.
  - Feature: support of "stale-while-revalidate" and "stale-if-error"
    extensions in the "Cache-Control" backend response header line.
  - Feature: the "proxy_cache_background_update",
    "fastcgi_cache_background_update", "scgi_cache_background_update",
    and "uwsgi_cache_background_update" directives.
  - Feature: nginx is now able to cache responses with the "Vary" header
    line up to 128 characters long (instead of 42 characters in previous
    versions).
  - Feature: the "build" parameter of the "server_tokens" directive.
    Thanks to Tom Thorogood.
  - Bugfix: "[crit] SSL_write() failed" messages might appear in logs
    when handling requests with the "Expect: 100-continue" request header
    line.
  - Bugfix: the ngx_http_slice_module did not work in named locations.
  - Bugfix: a segmentation fault might occur in a worker process when
    using AIO after an "X-Accel-Redirect" redirection.
  - Bugfix: reduced memory consumption for long-lived requests using
    gzipping.

  Changes with nginx 1.11.9                                        24 Jan 2017
  - Bugfix: nginx might hog CPU when using the stream module; the bug had
    appeared in 1.11.5.
  - Bugfix: EXTERNAL authentication mechanism in mail proxy was accepted
    even if it was not enabled in the configuration.
  - Bugfix: a segmentation fault might occur in a worker process if the
    "ssl_verify_client" directive of the stream module was used.
  - Bugfix: the "ssl_verify_client" directive of the stream module might
    not work.
  - Bugfix: closing keepalive connections due to no free worker
    connections might be too aggressive.
    Thanks to Joel Cunningham.
  - Bugfix: an incorrect response might be returned when using the
    "sendfile" directive on FreeBSD and macOS; the bug had appeared in  1.7.8.
  - Bugfix: a truncated response might be stored in cache when using the
    "aio_write" directive.
  - Bugfix: a socket leak might occur when using the "aio_write"
    directive.

  Changes with nginx 1.11.8                                        27 Dec 2016
  - Feature: the "absolute_redirect" directive.
  - Feature: the "escape" parameter of the "log_format" directive.
  - Feature: client SSL certificates verification in the stream module.
  - Feature: the "ssl_session_ticket_key" directive supports AES256
    encryption of TLS session tickets when used with 80-byte keys.
  - Feature: vim-commentary support in vim scripts.
    Thanks to Armin Grodon.
  - Bugfix: recursion when evaluating variables was not limited.
  - Bugfix: in the ngx_stream_ssl_preread_module.
  - Bugfix: if a server in an upstream in the stream module failed, it
    was considered alive only when a test connection sent to it after
    fail_timeout was closed; now a successfully established connection is
    enough.
  - Bugfix: nginx/Windows could not be built with 64-bit Visual Studio.
  - Bugfix: nginx/Windows could not be built with OpenSSL 1.1.0.

  Changes with nginx 1.11.7                                        13 Dec 2016
  - Change: now in case of a client certificate verification error the
    $ssl_client_verify variable contains a string with the failure
    reason, for example, "FAILED:certificate has expired".
  - Feature: the $ssl_ciphers, $ssl_curves, $ssl_client_v_start,
    $ssl_client_v_end, and $ssl_client_v_remain variables.
  - Feature: the "volatile" parameter of the "map" directive.
  - Bugfix: dependencies specified for a module were ignored while
    building dynamic modules.
  - Bugfix: when using HTTP/2 and the "limit_req" or "auth_request"
    directives client request body might be corrupted; the bug had
    appeared in 1.11.0.
  - Bugfix: a segmentation fault might occur in a worker process when
    using HTTP/2; the bug had appeared in 1.11.3.
  - Bugfix: in the ngx_http_mp4_module.
    Thanks to Congcong Hu.
  - Bugfix: in the ngx_http_perl_module.


author: Oleg Cherniy <oleg.cherniy@gmail.com> - 1.11.12-ria1
changelog:
  Changes with nginx 1.11.12                                       24 Mar 2017
  - Bugfix: nginx might hog CPU; the bug had appeared in 1.11.11.

  Changes with nginx 1.11.11                                       21 Mar 2017
  - Feature: the "worker_shutdown_timeout" directive.
  - Feature: vim syntax highlighting scripts improvements.
    Thanks to Wei-Ko Kao.
  - Bugfix: a segmentation fault might occur in a worker process if the
    $limit_rate variable was set to an empty string.
  - Bugfix: the "proxy_cache_background_update",
    "fastcgi_cache_background_update", "scgi_cache_background_update",
    and "uwsgi_cache_background_update" directives might work incorrectly
    if the "if" directive was used.
  - Bugfix: a segmentation fault might occur in a worker process if
    number of large_client_header_buffers in a virtual server was
    different from the one in the default server.
  - Bugfix: in the mail proxy server.


author: Oleg Cherniy <oleg.cherniy@gmail.com> - 1.11.13-ria1
changelog:
  - Add naxsi anti XSS & SQL Inj module
  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.


author: Matthias Saou <http://freshrpms.net/> 3.7.0-0.1.beta1
changelog:
  - Update to 3.7.0 beta1 (aka 3.7.b1).
  - Disable (empty) debuginfo package.
  - Add empty %build section.
  - Fix macros inside the %changelog.


