# changelog

author: Konstantin Pavlov <thresh@nginx.com> - 1.2.24-1
changelog:
  - Updated keepalived to 1.2.24.
  - Fixed check scripts error handling, backported from git master:
    - ca955a7c1a6af324428ff04e24be68a180be127f
    - 46121a8b7e4af439c5ad9e4589fb80d414e0eefc
    - f5d9202b1d473823686a934e38d16ead9de84fbd


author: Konstantin Pavlov <thresh@nginx.com> - 1.3.6-1
changelog:
  - Updated keepalived to 1.3.6.
  - Backported the following patches from upstream to fix issues with VRRPv3:
   + 67275d2
   + eb64954
   + bcf2936
   + 0d52573
  -  Updated README for the upgrade path to the new VRRPv3 checksums.


author: Andrei Belov <defan@nginx.com>
changelog:
  - 2.0.0
  - refactored from previous Ruby-based version to Python
  - provides more metrics for N+ (server zones, caches)


author: Andrei Belov <defan@nginx.com>
changelog:
  - 2.0.0_9
  - fixed handling of caches configured without the "max_size" parameter
  - added support for HTTPS proxy


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.9.4-3 (nginx-plus-r7-p2)
  - fixed possible segmentation fault on DNS format error
  - fixed PROXY protocol on IPv6 sockets (trac ticket #858)


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.9.9-1 (nginx-plus-r8)
  - introduced HTTP/2 support
  - caching improvements: proxy_cache_convert_head, slice module
  - dynamic upstreams: ability to keep states between reloads
  - healthchecks: support for arbitrary ports
  - realip module: $realip_remote_addr variable
  - syslog logging: "nohostname" parameter
  - updated status dashboard


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.9.9-3 (nginx-plus-r8-p2)
  - fixed buffer over-read while logging invalid request headers
  - various fixes in the HTTP/2 protocol support


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.9.13-1 (nginx-plus-r9)
  - introduced standalone packages with dynamic modules
  - UDP proxy support added to the stream module
  - upstream: retrieving servers configuration via DNS SRV records
  - resolver: TCP fallback on retrieving large DNS responses
  - proxy: changed handling of non-idempotent requests (POST, LOCK, PATCH)
  - cache: improved meta-data accounting
  - core: support for automatic binding of worker processes to available CPUs
  - core: the "aio_write" directive (offload write operations to thread pools)
  - added support for setting custom "server_tokens" string
  - updated status dashboard


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.11.3-1 (nginx-plus-r10)
  - new dynamic modules available: ModSecurity, nginScript
  - support for client authorization using the JSON Web Token (JWT)
  - stream: variables, resolver, map/geo/geo_ip/split_clients modules
  - support for multiple SSL certificate types per server/SNI name
  - transparent proxy mode support
  - IP_BIND_ADDRESS_NO_PORT socket option for upstream connections
  - HTTP/2: unbuffered upload support, general bugfixes
  - new variables: $request_id, $proxy_protocol_port, $realip_remote_port


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.11.5-1 (nginx-plus-r11)
  - introduced dynamic modules binary compatibility mode
  - stream: more variables, custom logging, PROXY protocol, SNI routing
  - new stream metrics in the status module dataset (sessions, discarded)
  - cache manager unlink() throttling introduced
  - variables support in the "domain" parameter of the "sticky" directive
  - new variable: $upstream_bytes_received


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.11.10-1 (nginx-plus-r12)
  - status module dataset updated (nginx_build, slabs/, upstream server names)
  - status dashboard updated (N+ version, response times, shared zones usage)
  - cache: stale-while-revalidate and stale-if-error extensions support
  - cache: the "proxy_cache_max_range_offset" directive
  - cache: Vary and ETag header lengths increased to 128 bytes
  - added "mandatory" parameter to the "health_check" directive
  - UDP health checks now may be configured without specifying match block
  - added client SSL certificates verification in the stream module
  - $ssl_client_i_dn and $ssl_client_s_dn are now compliant with RFC 2253
  - $ssl_client_verify now includes a reason of failure
  - new variables: $ssl_client_v_end, $ssl_client_v_start,
    $ssl_client_v_remain, $ssl_curves, $ssl_ciphers
  - support for acccessing arbitrary JWT fields as variables
  - support for JSON escaping in access logs
  - WebP support added to the image filter module
  - duplicate configuration parts excluded from "nginx -T" output
  - various improvements in memory usage and performance


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.9.4-1 (nginx-plus-r7)
  - TCP proxy: access control, connection limiting, bandwidth control
  - TCP proxy: client-side proxy protocol, proxy_bind, listen backlog, tcp_nodelay
  - more efficient connections distribution ("reuseport" parameter in listen)
  - thread pools for reading/sending files without blocking worker processes
  - sub_filter: multiple filters support, variables support
  - HLS: "start", "end" and "offset" arguments support
  - upstream: proxying NTLM authentication requests support
  - dumping entire confgiuration to stdout support ("-T" command-line switch)
  - new metrics in status dataset (incl. SSL handshakes, upstream queue overflows)
  - updated status dashboard


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.9.4-2 (nginx-plus-r7-p1)
  - bugfix: sub_filter initialization in http{} level
  - bugfix: accidental SSL connection drop in stream proxy
  - updated status dashboard


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.13.4-1 (nginx-plus-r13)
  - new REST API for accessing status metrics, configuring upstreams,
    managing key-value pairs
  - new module: ngx_http_keyval_module (creates variables based on
    key-value pairs managed by the API)
  - new module: ngx_http_mirror_module (implements mirroring of original
    requests by creating background mirror subrequests)
  - added support for HTTP trailers (the "add_trailer" directive)
  - core: the "worker_shutdown_timeout" directive
  - sticky cookie now includes "max-age" attribute when "expires" is set
  - added "header" parameter to the "sticky learn" directive
  - added "http_429" parameter to the "proxy_next_upstream" directive
  - added "sndbuf" and "rcvbuf" parameters to the "listen" directives
    in stream and mail modules
  - SSL renegotiation is now allowed on backend connections
  - added initial support for TLS 1.3


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.13.7-1 (nginx-plus-r14)
  - added refactored status dashboard (dashboard.html) that uses
    recently introduced API instead of older status and upstream_conf
    interfaces
  - new module: ngx_stream_keyval_module (creates variables based on
    key-value pairs managed by the API for use in stream proxy)
  - added support for complex JWT claims (the "auth_jwt_header_set"
    and "auth_jwt_claim_set" directives can now handle multiple
    values)
  - added support for a number of optional cryptographic algorithms
    in JWT authorization module
  - upstream servers configured with the "resolve" parameter
    are now being pre-resolved on configuration reload
  - the "drain" parameter of the upstream "server" directive
    can now be specified in configuration
  - new variable: $ssl_client_escaped_cert
  - swagger UI was adjusted to support custom ports in URLs


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.13.7-2 (nginx-plus-r14-p1)
  - updated status dashboard v2 (dashboard.html) to include fixes
    for HTTP basic auth support and missed tooltips


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.7.11-1 (nginx-plus-r6)
  - TCP proxy enhancements (healthchecks, upstream_conf, SSL, logs, status)
  - new "least_time" load balancing method
  - unbuffered upload support (proxy_request_buffering and friends)
  - proxy SSL authentication support (proxy_ssl_certificate and friends)
  - proxy cache enhancements (variables in proxy_cache; "use_temp_path" parameter)
  - client SSL certificates support in mail proxy
  - autoindex module enhancement (autoindex_format)
  - new status dashboard


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.7.11-2 (nginx-plus-r6-p1)
  - bugfix: possible segfault on reload
  - bugfix: sticky cookie after keepalive
  - bugfix: dots in status_zone names (status.html dashboard)


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.5.12 (nginx-plus-r3)
  - SPDY protocol updated to 3.1, SPDY/2 was removed
  - added PROXY protocol support
  - IPv6 support added to resolver
  - introduced DNS revalidation of upstream servers
  - introduced limiting connections to upstreams with queue support


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.7.3 (nginx-plus-r4)
  - backends SSL certificate checking
  - SNI support for SSL backends
  - access log filtering
  - consistent hash load balancing
  - honor If-None-Match while cache revalidation
  - automatic applying passphrases to SSL private keys
  - session affinity based on server-initiated sessions
  - status output filtering
  - mp4 "end" argument


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.7.7 (nginx-plus-r5)
  - TCP proxying and load balancing (the stream module)
  - improved sticky cookie tracking
  - ability to put upstream server to the "draining" mode
  - proxy_next_upstream_tries, proxy_next_upstream_timeout
  - "Vary" header from backend response is now honored while caching
  - improved support for byte-range caching (proxy_force_ranges)
  - upstream bandwidth control (proxy_limit_rate)


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.7.7-4 (nginx-plus-r5-p3)
  - overflow detection in number parsing functions
  - "sticky learn" + healthchecks bugfix


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.13.10-1 (nginx-plus-r15)
  - added gRPC proxy support
  - added HTTP/2 push support
  - introduced shared zones synchronization between NGINX Plus nodes,
    currently supported for sticky sessions (ngx_stream_zone_sync_module)
  - added an ability to completely disable any escaping in access log
    (the "escape=none" parameter of the "log_format" directive)
  - ngx_stream_ssl_preread_module now can extract list of protocols
    advertised by the client through ALPN ($ssl_preread_alpn_protocols)
  - it is no longer required to run nginx under superuser when using
    the "proxy_bind" directive with "transparent" parameter on Linux,
    as worker processes now inherit the CAP_NET_RAW capability from
    the master process
  - added the "auth_jwt_leeway" directive used to configure a leeway
    to account for clock skew when verifying "exp" and "nbf" claims,
    as per RFC 7519
  - new variable: $upstream_queue_time
  - status dashboard updated


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.13.10-2 (nginx-plus-r15-p1)
  - fixed dynamic module compatibility with nginx/1.13.10
  - status dashboard updated


author: Andrei Belov <defan@nginx.com> - 1.11.10-1.el7.ngx
changelog:
  - Based on nginx/1.11.10 mainline version.
  - Feature: status dataset extended with nginx build name ("nginx_build"),
    shared zones usage statistics (the "slabs/" subtree), and additional
    upstream fields ("name", "service").
    Status dashboard now shows NGINX Plus version, response time metrics,
    shared zones memory usage, and server names in upstreams.
  - Feature: support of "stale-while-revalidate" and "stale-if-error"
    extensions in the "Cache-Control" backend response header line.
  - Feature: the "proxy_cache_max_range_offset",
    "fastcgi_cache_max_range_offset", "scgi_cache_max_range_offset", and
    "uwsgi_cache_max_range_offset" 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 "mandatory" parameter of the "health_check" directive,
    requiring all new servers to pass the associated health check before
    accepting real traffic.
  - Feature: UDP health checks can now be configured without specifying match
    block.
  - Feature: client SSL certificates verification in the stream module.
  - Feature: 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: 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: arbitrary JWT fields can now be accessed as variables.
  - Feature: JSON escaping in access logs (the "escape" parameter of the
    "log_format" directive).
  - Feature: WebP support in the ngx_http_image_filter_module.
  - Change: duplicate configuration parts excluded from "nginx -T" output.
  - Feature: various improvements in memory usage and performance.


author: Andrei Belov <defan@nginx.com> - 1.11.10-3.el7.ngx
changelog:
  - Bugfix: upstream response time might be calculated incorrectly if a client
    closed a connection before the upstream response headers were received.


author: Andrei Belov <defan@nginx.com> - 1.11.10-4.el7.ngx
changelog:
  - 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).


author: Andrei Belov <defan@nginx.com> - 1.13.4-1.el7.ngx
changelog:
  - Based on nginx/1.13.4 mainline version.
  - Feature: new REST API for accessing various status information,
    configuring upstream server groups on-the-fly, and managing key-value
    pairs.
    Swagger specification and UI is bundled in the nginx-plus packages for
    easy try-out.
  - Feature: ngx_http_keyval_module, used to create variables based on
    key-value pairs dynamically managed via the REST API.
  - Feature: ngx_http_mirror_module, implements mirroring of original requests
    by creating background mirror subrequests and ignoring their responses.
  - Feature: the "add_trailer" directive (support for HTTP trailers).
    Thanks to Piotr Sikora.
  - Feature: the "worker_shutdown_timeout" directive.
  - Change: sticky cookie now includes the "max-age" attribute when the
    "expires" option is set.
  - Feature: the "header" parameter of the "sticky learn" directive.
  - 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.
  - Feature: the "rcvbuf" and "sndbuf" parameters of the "listen" directives
    of the mail proxy and stream modules.
  - Change: SSL renegotiation is now allowed on backend connections.
  - Feature: initial support for TLS 1.3.


author: Andrei Belov <defan@nginx.com> - 1.13.7-1.el7.ngx
changelog:
  - Based on nginx/1.13.7 mainline version.
  - Feature: refactored status dashboard (v2) that uses the REST API instead
    of older status and upstream_conf interfaces was added to packages as
    dashboard.html.
    Legacy dashboard (v1) is still available as status.html.
    Please note that older status and upstream_conf interfaces, as well as
    legacy dashboard, are going to be removed in NGINX Plus R16.
  - Feature: dynamic key-value pairs support added to the stream module.
    API version has changed to 2.
  - Feature: the "auth_jwt_header_set" and "auth_jwt_claim_set" directives can
    now handle multiple values, providing complex JWT claims support.
  - Feature: a number of additional cryptographic algorithms introduced in JWT
    authorization module.
  - Feature: upstream servers configured with the "resolve" parameter are now
    being pre-resolved on configuration reload.
  - Feature: the "drain" parameter of the upstream "server" directive can now
    be specified in configuration.
  - Feature: the $ssl_client_escaped_cert variable.
  - Bugfix: Swagger UI did not work with custom (non-standard) ports in URLs.


author: Andrei Belov <defan@nginx.com> - 15-1.el7.ngx
changelog:
  - Based on nginx/1.13.10 mainline version.
  - Feature: the ngx_http_grpc_module, providing gRPC proxy support.
  - Feature: HTTP/2 server push support; the "http2_push" and
    "http2_push_preload" directives.
  - Feature: the ngx_stream_zone_sync_module, providing shared zones
    synchronization between NGINX Plus nodes, currently supported for sticky
    sessions.
  - Feature: the "escape=none" parameter of the "log_format" directive, used
    to completely disable any escaping in access log.
  - Feature: the ngx_stream_ssl_preread_module can now extract list of
    protocols advertised by the client through ALPN (the
    $ssl_preread_alpn_protocols variable).
  - Change: it is no longer required to run nginx under superuser when using
    the "proxy_bind" directive with the "transparent" parameter on Linux, as
    worker processes now inherit the CAP_NET_RAW capability from the master
    process.
  - Feature: the "auth_jwt_leeway" directive, used to configure a leeway to
    account for clock skew when verifying "exp" and "nbf" claims, as per RFC
    7519.
  - Feature: the $upstream_queue_time variable.
  - Feature: status dashboard (v2) updated.


author: Andrei Belov <defan@nginx.com> - 15-2.el7.ngx
changelog:
  - Bugfix: dynamic modules compatibility between nginx-plus-15_1 and
    nginx/FOSS 1.13.10 was broken.
  - Bugfix: in status dashboard (v2).


author: Andrei Belov <defan@nginx.com> - 15-3.el7.ngx
changelog:
  - Bugfix: in the ngx_http_v2_module.
  - Bugfix: in the ngx_http_grpc_module.
  - Bugfix: in the ngx_http_mp4_module.
  - Bugfix: in the ngx_http_hls_module.


author: Andrei Belov <defan@nginx.com>
changelog:
  - 1.15.2-1 (nginx-plus-r16)
  - status and upstream_conf modules removed in favor to API module
  - shared zones synchronization extended to support keyval
    and limit_req modules
  - key-value pairs can now be expired after configured timeout
  - introduced new load balancing algorithm: random with two choices
  - UDP load balancing extended to support multiple incoming datagrams
    from a client within a single session
  - added support for PROXY protocol version 2
  - new variable: $ssl_preread_protocol


author: Andrei Belov <defan@nginx.com> - 16-1.el7.ngx
changelog:
  - Based on nginx/1.15.2 mainline version.
  - Change: IMPORTANT: the status and upstream_conf modules deprecated since
    NGINX Plus R13 were finally removed in favor to the API module.
    Legacy status dashboard was also removed from packages.
  - Feature: shared zones synchronization extended to support keyval and
    limit_req modules.
  - Feature: key-value pairs can now be expired after configured timeout.
  - Feature: random with two choices load balancing algorithm.
  - Feature: UDP load balancing extended to support multiple incoming
    datagrams from a client within a single session, thus allowing to
    proxy/load balance of more complex applications.
  - Feature: the "proxy_protocol" parameter of the "listen" directive now
    supports the PROXY protocol version 2.
  - Feature: the $ssl_preread_protocol variable in the
    ngx_stream_ssl_preread_module.


author: Andrei Belov <defan@nginx.com> - 17-1.el7.ngx
changelog:
  - Feature: the "ssl_early_data" directive used to enable TLS v1.3 0-RTT
    data.
    The "$ssl_early_data" variable introduced to protect against replay
    attacks at the application layer.
  - Feature: the "delay" parameter of the "limit_req" directive.
  - Feature: the "auth_jwt_key_request" directive used to retrieve JWK file
    from a subrequest.
  - Feature: the "Ed25519" and "Ed448" cryptographic algorithms introduced in
    JWT authorization module.
  - Feature: the "proxy_socket_keepalive", "fastcgi_socket_keepalive",
    "grpc_socket_keepalive", "memcached_socket_keepalive",
    "scgi_socket_keepalive", and "uwsgi_socket_keepalive" directives.
  - Feature: the "keepalive_timeout" and "keepalive_requests" directives in
    the "upstream" block.
  - Feature: the "proxy_requests" directive in stream module.
  - Bugfix: in the $upstream_connect_time, $upstream_header_time,
    $upstream_queue_time, $upstream_response_time variables.
  - Change: the logging level of the "no suitable key share" and "no suitable
    signature algorithm" SSL errors has been lowered from "crit" to "info".


author: Andrei Belov <defan@nginx.com> - 16+3.0-1.el7.ngx
changelog:
  - Base version updated to 1.15.2-1 (nginx-plus-r16).
  - Change: module version updated to 3.0.
  - Feature: support relative path to database in geoip2.
  - Feature: retrieve metadata about the database.
  - Feature: auto reload the database if it has changed.


author: Andrei Belov <defan@nginx.com> - 16+3.0-2.el7.ngx
changelog:
  - Bugfix: unwanted auto-reload of MaxMind database might occur even if there
    was no "auto_reload" parameter specified in configuration.
  - Bugfix: a segmentation fault might occur in a worker process on
    auto-reloading MaxMind database.


author: Andrei Belov <defan@nginx.com>
changelog:
  - libmodsecurity updated to v3.0.0-erc1.3-nginx
  - ModSecurity-nginx updated to v0.1.3
  - improved SecRule parser (OWASP CRS v3.0.0 compatible)
  - improved calculation of various scores in "anomaly scoring" mode
  - disruptive actions are now explicitly marked in nginx error log
  - log level for disruptive actions increased to "warn"


author: Andrei Belov <defan@nginx.com>
changelog:
  - base version updated to 1.11.10-1 (nginx-plus-r12)
  - libmodsecurity updated to v3.0.0-erc1.5-nginx
  - ModSecurity-nginx updated to v0.1.4
  - fixed segfaults on nginx reloads
  - performance improvements in SecRule parser


author: Andrei Belov <defan@nginx.com>
changelog:
  - libmodsecurity updated to v3.0.0-erc1.6-nginx
  - ModSecurity-nginx updated to v0.1.5
  - improved rules configuration merging
  - improved performance in multi-worker setups
  - reduced amount of logging for valid requests
  - include the modsec-rules-check command-line tool


author: Andrei Belov <defan@nginx.com>
changelog:
  - libmodsecurity updated to 3.0.0-1 (v3/master as of ab3afb2)
  - ModSecurity-nginx updated to 1.0.0-1 (master as of 7e328a3)
  - performance improvements in libmodsecurity
  - memory leak fixes in ModSecurity-nginx


author: Andrei Belov <defan@nginx.com>
changelog:
  - libmodsecurity updated to 3.0.0-2 (v3/master as of 077b182)
  - ModSecurity-nginx updated to 1.0.0-2 (master as of 6d5f759)
  - memory leak fixes in libmodsecurity and ModSecurity-nginx


author: Andrei Belov <defan@nginx.com>
changelog:
  - base version updated to 1.13.10-2 (nginx-plus-r15-p1)
  - explicitly disabled libmaxmind feature due to the fact that
    on CentOS libmaxmind is not available out of the box
    (EPEL repository required)


author: Andrei Belov <defan@nginx.com>
changelog:
  - libmodsecurity updated to v3.0.2-72-g156527a, see changelog at
    https://github.com/SpiderLabs/ModSecurity/blob/156527a6f8880ee56bfd75023647ca3a98e97200/CHANGES
  - ModSecurity-nginx updated to 1.0.0-3 (master as of 37b76e8)


author: Andrei Belov <defan@nginx.com>
changelog:
  - base version updated to 1.15.2-1 (nginx-plus-r16)
  - libmodsecurity updated to v3.0.2-72-g156527a, see changelog at
    https://github.com/SpiderLabs/ModSecurity/blob/156527a6f8880ee56bfd75023647ca3a98e97200/CHANGES
  - ModSecurity-nginx updated to 1.0.0-3 (master as of 37b76e8)


author: Andrei Belov <defan@nginx.com> - 0.1.5-4.el7.ngx
changelog:
  - Change: libmodsecurity updated to v3.0.0-erc1.7-nginx.
  - Bugfix: a lot of improvements and fixes in libmodsecurity.


author: Andrei Belov <defan@nginx.com> - 1.0.0-1.el7.ngx
changelog:
  - Change: libmodsecurity updated to v3.0.0 (GA).
  - Change: ModSecurity-nginx updated to v1.0.0 (GA).


author: Andrei Belov <defan@nginx.com> - 1.0.0-2.el7.ngx
changelog:
  - Base version updated to 1.13.7-2 (nginx-plus-r14-p1).
  - Change: libmodsecurity updated to 3.0.0-1 (v3/master as of ab3afb2).
  - Change: ModSecurity-nginx updated to 1.0.0-1 (master as of 7e328a3).
  - Feature: performance improvements in libmodsecurity.
  - Bugfix: memory leak in ModSecurity-nginx.


author: Andrei Belov <defan@nginx.com> - 1.0.0-3.el7.ngx
changelog:
  - Change: libmodsecurity updated to 3.0.0-2 (v3/master as of 077b182).
  - Change: ModSecurity-nginx updated to 1.0.0-2 (master as of 6d5f759).
  - Bugfix: memory leaks in libmodsecurity and ModSecurity-nginx.


author: Andrei Belov <defan@nginx.com> - 16+1.0.0-5.el7.ngx
changelog:
  - Base version updated to 1.15.2-1 (nginx-plus-r16).
  - Change: libmodsecurity updated to v3.0.2-72-g156527a, see changelog at
    https://github.com/SpiderLabs/ModSecurity/blob/156527a/CHANGES
  - Change: ModSecurity-nginx updated to 1.0.0-3 (master as of 37b76e8).


author: Andrei Belov <defan@nginx.com> - 16+1.0.0-6.el7.ngx
changelog:
  - Change: libmodsecurity updated to v3.0.3, see changelog at
    https://github.com/SpiderLabs/ModSecurity/releases/tag/v3.0.3
  - Feature: recommended modsecurity.conf bundled into the package as
    /etc/nginx/modsec/modsecurity.conf.


author: Andrei Belov <defan@nginx.com> - 16+1.0.0-7.el7.ngx
changelog:
  - Change: libmodsecurity updated to v3.0.3-22-gdccb5e9e, see changelog at
    https://github.com/SpiderLabs/ModSecurity/blob/dccb5e9e/CHANGES
  - Change: ModSecurity-nginx updated to v1.0.0-40-g71ede63, see changelog at
    https://github.com/SpiderLabs/ModSecurity-nginx/blob/71ede63/CHANGES


author: Andrei Belov <defan@nginx.com> - 17+1.0.0-7.el7.ngx
changelog:
  - Base version updated to 1.15.7-1 (nginx-plus-r17).
  - Change: libmodsecurity updated to v3.0.3-22-gdccb5e9e, see changelog at
    https://github.com/SpiderLabs/ModSecurity/blob/dccb5e9e/CHANGES
  - Change: ModSecurity-nginx updated to v1.0.0-40-g71ede63, see changelog at
    https://github.com/SpiderLabs/ModSecurity-nginx/blob/71ede63/CHANGES


author: Andrei Belov <defan@nginx.com>
changelog:
  - nJScript module updated to 0.1.10
  - feature: nested functions and function closures
  - feature: Array.of(), Array.prototype.fill(), Array.prototype.find(),
    Array.prototype.findIndex() methods
  - bugfix: miscellaneous bugs and segmentation faults have been fixed


author: Andrei Belov <defan@nginx.com>
changelog:
  - base version updated to 1.11.10-4 (nginx-plus-r12-p3)
  - nJScript module updated to 0.1.11
  - feature: Object.keys(), Object.prototype.hasOwnProperty() methods
  - feature: Object.defineProperty(), Object.defineProperties(),
    Object.getOwnPropertyDescriptor() methods
  - feature: Object.getPrototypeOf(), Object.prototype.isPrototypeOf()
    methods
  - feature: Object.preventExtensions(), Object.isExtensible(),
    Object.freeze(), Object.isFrozen(), Object.seal(), Object.isSealed()
    methods
  - feature: scientific notation literals support
  - feature: hexadecimal literals support
  - bugfix: processing of large array indexes
  - bugfix: in parseInt() and Date.parse()


author: Andrei Belov <defan@nginx.com>
changelog:
  - base version updated to 1.13.4-1 (nginx-plus-r13)
  - nJScript module updated to 0.1.12
  - feature: interactive shell
  - bugfix: in Object.isSealed()


author: Andrei Belov <defan@nginx.com>
changelog:
  - nJScript module updated to 0.1.13
  - feature: console.log() and console.help() methods in interactive shell
  - feature: interactive shell prints backtrace on exception
  - feature: interactive shell by default if libedit is available
  - bugfix: processing of large files from stdin in command line mode
  - bugfix: improved editline detection


author: Andrei Belov <defan@nginx.com>
changelog:
  - base version updated to 1.13.7-1 (nginx-plus-r14)
  - nJScript module updated to 0.1.15
  - feature: JSON object
  - feature: object level completions in interactive shell
  - feature: various configure improvements
  - bugfix: miscellaneous bugs have been fixed in the core and
    interactive shell
  - feature: Error, EvalError, InternalError, RangeError,
    ReferenceError, SyntaxError, TypeError, URIError objects
  - feature: octal literals support
  - feature: File system access fs.readFile(), fs.readFileSync(),
    fs.appendFile(),  fs.appendFileSync(), fs.writeFile(),
    fs.writeFileSync() methods
  - feature: nginx modules print backtrace on exception
  - bugfix: miscellaneous bugs have been fixed


author: Andrei Belov <defan@nginx.com>
changelog:
  - base version updated to 1.13.10-1 (nginx-plus-r15)
  - nJScript module updated to 0.2.0
  - feature: reporting njs version by CLI
  - feature: textual description for type converting exceptions
  - feature: setTimeout() and clearTimeout() methods
  - feature: Byte string to hex, base64, base64url encodings
  - feature: Node.js style crypto methods
  - feature: HTTP and stream warn() and error() methods
  - feature: HTTP subrequest() method
  - feature: HTTP return() method
  - bugfix: miscellaneous bugs have been fixed in the core and
    interactive shell


author: Andrei Belov <defan@nginx.com>
changelog:
  - njs module updated to 0.1.10
  - feature: nested functions and function closures
  - feature: Array.of(), Array.prototype.fill(), Array.prototype.find(),
    Array.prototype.findIndex() methods
  - bugfix: miscellaneous bugs and segmentation faults have been fixed


author: Andrei Belov <defan@nginx.com>
changelog:
  - base version updated to 1.11.10-4 (nginx-plus-r12-p3)
  - njs module updated to 0.1.11
  - feature: Object.keys(), Object.prototype.hasOwnProperty() methods
  - feature: Object.defineProperty(), Object.defineProperties(),
    Object.getOwnPropertyDescriptor() methods
  - feature: Object.getPrototypeOf(), Object.prototype.isPrototypeOf()
    methods
  - feature: Object.preventExtensions(), Object.isExtensible(),
    Object.freeze(), Object.isFrozen(), Object.seal(), Object.isSealed()
    methods
  - feature: scientific notation literals support
  - feature: hexadecimal literals support
  - bugfix: processing of large array indexes
  - bugfix: in parseInt() and Date.parse()


author: Andrei Belov <defan@nginx.com>
changelog:
  - base version updated to 1.13.4-1 (nginx-plus-r13)
  - njs module updated to 0.1.12
  - feature: interactive shell
  - bugfix: in Object.isSealed()


author: Andrei Belov <defan@nginx.com>
changelog:
  - njs module updated to 0.1.13
  - feature: console.log() and console.help() methods in interactive shell
  - feature: interactive shell prints backtrace on exception
  - feature: interactive shell by default if libedit is available
  - bugfix: processing of large files from stdin in command line mode
  - bugfix: improved editline detection


author: Andrei Belov <defan@nginx.com>
changelog:
  - base version updated to 1.13.7-1 (nginx-plus-r14)
  - njs module updated to 0.1.15
  - feature: JSON object
  - feature: object level completions in interactive shell
  - feature: various configure improvements
  - bugfix: miscellaneous bugs have been fixed in the core and
    interactive shell
  - feature: Error, EvalError, InternalError, RangeError,
    ReferenceError, SyntaxError, TypeError, URIError objects
  - feature: octal literals support
  - feature: File system access fs.readFile(), fs.readFileSync(),
    fs.appendFile(),  fs.appendFileSync(), fs.writeFile(),
    fs.writeFileSync() methods
  - feature: nginx modules print backtrace on exception
  - bugfix: miscellaneous bugs have been fixed


author: Andrei Belov <defan@nginx.com>
changelog:
  - base version updated to 1.13.10-1 (nginx-plus-r15)
  - njs module updated to 0.2.0
  - feature: reporting njs version by CLI
  - feature: textual description for type converting exceptions
  - feature: setTimeout() and clearTimeout() methods
  - feature: Byte string to hex, base64, base64url encodings
  - feature: Node.js style crypto methods
  - feature: HTTP and stream warn() and error() methods
  - feature: HTTP subrequest() method
  - feature: HTTP return() method
  - bugfix: miscellaneous bugs have been fixed in the core and
    interactive shell


author: Andrei Belov <defan@nginx.com>
changelog:
  - njs module updated to 0.2.1
  - feature: HTTP request body getter
  - improvement: moved njs vm to the main configuration
  - improvement: improved logging for js_set and js_content directives
  - improvement: setting status code to 500 by default in
    js_content handler
  - improvement: added the debug for the returned status code in
    js_content
  - bugfix: fixed error logging in js_include
  - feature: added array length setter
  - improvement: public header cleanup. njscript.h is renamed to njs.h
  - bugfix: fixed crypto update() method after digest() is called
  - bugfix: fixed crypto.createHmac() for keys with size >= alg size
    and < 64
  - bugfix: fixed JSON.stringify() for arrays with empty cells
  - bugfix: fixed exception type for unsupported types in
    JSON.stringify()
  - bugfix: fixed handling of undefined arguments of functions
  - bugfix: fixed handling of missing arg of
    Object.getOwnPropertyDescriptor()
  - bugfix: fixed handling of properties in
    Object.getOwnPropertyDescriptor()
  - bugfix: fixed the writeable flag of Array.length property
  - bugfix: fixed return value type of clearTimeout()
  - bugfix: fixed njs_vm_external_bind()
  - bugfix: miscellaneous additional bugs have been fixed


author: Andrei Belov <defan@nginx.com> - 0.1.11-1.el7.ngx
changelog:
  - Base version updated to 1.11.10-4 (nginx-plus-r12-p3).
  - Change: njs module updated to 0.1.11.
  - Feature: Object.keys(), Object.prototype.hasOwnProperty() methods.
  - Feature: Object.defineProperty(), Object.defineProperties(),
    Object.getOwnPropertyDescriptor() methods.
  - Feature: Object.getPrototypeOf(), Object.prototype.isPrototypeOf()
    methods.
  - Feature: Object.preventExtensions(), Object.isExtensible(),
    Object.freeze(), Object.isFrozen(), Object.seal(), Object.isSealed()
    methods.
  - Feature: scientific notation literals support.
  - Feature: hexadecimal literals support.
  - Bugfix: processing of large array indexes.
  - Bugfix: in parseInt() and Date.parse().


author: Andrei Belov <defan@nginx.com> - 0.1.12-1.el7.ngx
changelog:
  - Base version updated to 1.13.4-1 (nginx-plus-r13).
  - Change: njs module updated to 0.1.12.
  - Feature: interactive shell.
  - Bugfix: in Object.isSealed().


author: Andrei Belov <defan@nginx.com> - 0.1.13-1.el7.ngx
changelog:
  - Change: njs module updated to 0.1.13.
  - Feature: console.log() and console.help() methods in interactive shell.
  - Feature: interactive shell prints backtrace on exception.
  - Feature: interactive shell by default if libedit is available.
  - Bugfix: processing of large files from stdin in command line mode.
  - Bugfix: improved editline detection.


author: Andrei Belov <defan@nginx.com> - 0.1.15-1.el7.ngx
changelog:
  - Base version updated to 1.13.7-1 (nginx-plus-r14).
  - Change: njs module updated to 0.1.15.
  - Feature: Error, EvalError, InternalError, RangeError, ReferenceError,
    SyntaxError, TypeError, URIError objects.
  - Feature: octal literals support.
  - Feature: file system access fs.readFile(), fs.readFileSync(),
    fs.appendFile(), fs.appendFileSync(), fs.writeFile(), fs.writeFileSync()
    methods.
  - Feature: nginx modules print backtrace on exception.
  - Bugfix: miscellaneous bugs have been fixed.
  - Feature: JSON object.
  - Feature: object level completions in interactive shell.
  - Feature: various configure improvements.
  - Bugfix: miscellaneous bugs have been fixed in the core and interactive
    shell.


author: Andrei Belov <defan@nginx.com> - 15+0.2.0-1.el7.ngx
changelog:
  - Base version updated to 1.13.10-1 (nginx-plus-r15).
  - Change: njs module updated to 0.2.0.
  - Feature: reporting njs version by CLI.
  - Feature: textual description for type converting exceptions.
  - Feature: setTimeout() and clearTimeout() methods.
  - Feature: Byte string to hex, base64, base64url encodings.
  - Feature: Node.js style crypto methods.
  - Feature: HTTP and stream warn() and error() methods.
  - Feature: HTTP subrequest() method.
  - Feature: HTTP return() method.
  - Bugfix: miscellaneous bugs have been fixed in the core and interactive
    shell.


author: Andrei Belov <defan@nginx.com> - 15+0.2.1-1.el7.ngx
changelog:
  - Change: njs module updated to 0.2.1.
  - Feature: HTTP request body getter.
  - Improvement: moved njs vm to the main configuration.
  - Improvement: improved logging for js_set and js_content directives.
  - Improvement: setting status code to 500 by default in js_content handler.
  - Improvement: added the debug for the returned status code in js_content.
  - Bugfix: fixed error logging in js_include.
  - Feature: added array length setter.
  - Improvement: public header cleanup. njscript.h is renamed to njs.h.
  - Bugfix: fixed crypto update() method after digest() is called.
  - Bugfix: fixed crypto.createHmac() for keys with size >= alg size and < 64.
  - Bugfix: fixed JSON.stringify() for arrays with empty cells.
  - Bugfix: fixed exception type for unsupported types in JSON.stringify().
  - Bugfix: fixed handling of undefined arguments of functions.
  - Bugfix: fixed handling of missing arg of
    Object.getOwnPropertyDescriptor().
  - Bugfix: fixed handling of properties in Object.getOwnPropertyDescriptor().
  - Bugfix: fixed the writeable flag of Array.length property.
  - Bugfix: fixed return value type of clearTimeout().
  - Bugfix: fixed njs_vm_external_bind().
  - Bugfix: miscellaneous additional bugs have been fixed.


author: Andrei Belov <defan@nginx.com> - 16+0.2.3-1.el7.ngx
changelog:
  - Base version updated to 1.15.2-1 (nginx-plus-r16).
  - Change: njs module updated to 0.2.3.
  - Bugfix: making a subrequest from a Reply object caused a segmentation
    fault.
  - Bugfix: getting the parent property of the main Request object caused a
    segmentation fault.
  - Feature: added the pretty string representation for values.
  - Feature: correctly printing floating point numbers.
  - Feature: correctly parsing floating point numbers.
  - Feature: String.bytesFrom() method (decoding hex, base64, base64url into a
    byte string).
  - Feature: String.padStart() and String.padEnd() methods.
  - Feature: added support of binary literals.
  - Improvement: added information about illegal token in number parsing.
  - Improvement: allowed uppercased O in octal literal values.
  - Improvement: added support for multiple arguments in console.log().
  - Bugfix: fixed applying call() to methods of external values.
  - Bugfix: fixed addition operator applied to an object.
  - Bugfix: fixed exception handling in njs_vm_value_to_ext_string().
  - Bugfix: fixed Number() with boolean, null and undefined arguments.
  - Bugfix: fixed error handling of setting non-numeric Array.length.
  - Bugfix: fixed autocompletion for global objects.
  - Bugfix: miscellaneous additional bugs have been fixed.
  - Change: merged HTTP Response and Reply into Request.
    New members of Request:
    - req.status (res.status)
    - req.parent (reply.parent)
    - req.requestBody (req.body)
    - req.responseBody (reply.body)
    - req.headersIn (req.headers)
    - req.headersOut (res.headers)
    - req.sendHeader() (res.sendHeader())
    - req.send() (res.send())
    - req.finish() (res.finish())
    - req.return() (res.return())
    Deprecated members of Request:
    - req.body (use req.requestBody or req.responseBody)
    - req.headers (use req.headersIn or req.headersOut)
    - req.response
    The deprecated properties will be removed in the following releases.
  - Feature: HTTP internalRedirect() method.
  - Bugfix: fixed heap-buffer-overflow in crypto.createHmac().


author: Andrei Belov <defan@nginx.com> - 16+0.2.4-1.el7.ngx
changelog:
  - Change: njs module updated to 0.2.4.
  - Change: stream module handlers are refactored.
    New methods and properties:
    s.on(), s.off(), s.allow(), s.done(), s.decline(), s.deny().
    Removed properties of Stream object:
    s.OK, s.ABORT, s.AGAIN, s.DECLINED, s.ERROR (replaced with s.allow(),
    s.done([code]), s.deny()).
    s.buffer (for reading replaced with data argument of the corresponding
    callback, for writing use s.send()).
    s.fromUpstream (replaced with a callback for a corresponding event).
    s.eof (replaced with flags.last).
  - Feature: added Function.prototype.length.
  - Feature: introduced sandboxing mode.
  - Improvement: added exception strings where appropriate.
  - Improvement: improved wording for primitive type conversion exception.
  - Bugfix: throwing TypeError for attempts to change frozen properties.
  - Bugfix: fixed Object.defineProperty() for existing properties.
  - Bugfix: respecting the enumerable attribute while iterating by for in.
  - Bugfix: respecting writable attribute for property handlers.
  - Bugfix: fixed exception handling in arguments of a function.
  - Bugfix: fixed Object.prototype.toString for different value types.
  - Bugfix: fixed Object() constructor for object types arguments.
  - Bugfix: fixed comparison of objects and strings.
  - Bugfix: fixed String.slice() for undefined arguments.
  - Bugfix: miscellaneous additional bugs have been fixed.


author: Andrei Belov <defan@nginx.com> - 16+0.2.5-1.el7.ngx
changelog:
  - Change: njs module updated to 0.2.5.
  - Bugfix: fixed counting pending events in stream module.
  - Bugfix: fixed s.off() in stream module.
  - Bugfix: fixed processing of data chunks in js_filter in stream module.
  - Bugfix: fixed http status and contentType getter in http module.
  - Bugfix: fixed http response and parent getters in http module.
  - Feature: arguments object support.
  - Feature: non-integer fractions support.
  - Improvement: handling non-array values in Array.prototype.slice().
  - Bugfix: fixed Array.prototype.length setter.
  - Bugfix: fixed njs_array_alloc() for length > 2**31.
  - Bugfix: handling int overflow in njs_array_alloc() on 32-bit archs.
  - Bugfix: fixed code size mismatch error message.
  - Bugfix: fixed delete operator in a loop.
  - Bugfix: fixed Object.getOwnPropertyDescriptor() for complex object
    (inherited from Array and string values).
  - Bugfix: fixed Object.prototype.hasOwnProperty() for non-object properties.
  - Bugfix: miscellaneous additional bugs have been fixed.


author: Andrei Belov <defan@nginx.com> - 16+0.2.6-1.el7.ngx
changelog:
  - Change: njs module updated to 0.2.6.
  - Feature: making built-in prototypes mutable.
  - Feature: making global object mutable.
  - Feature: console.time() and console.timeEnd() methods.
  - Feature: allowing variables and functions to be redeclared.
  - Feature: extending Object.defineProperty() spec conformance.
  - Feature: introduced quiet mode for CLI to handle simple expressions from
    stdin.
  - Feature: introduced compact form of backtraces to handle stack overflows.
  - Improvement: improved wording for various exceptions.
  - Bugfix: fixed closure values handling.
  - Bugfix: fixed equality operator for various value types.
  - Bugfix: fixed handling of "this" keyword in various scopes.
  - Bugfix: fixed handling non-object values in Object.keys().
  - Bugfix: fixed parsing of throw statement inside if statement.
  - Bugfix: fixed parsing of newline after throw statement.
  - Bugfix: fixed parsing of statements in if statement without newline.
  - Bugfix: fixed size uint32_t overflow in njs_array_expand().
  - Bugfix: fixed typeof operator for object_value type.
  - Bugfix: miscellaneous additional bugs have been fixed.


author: Andrei Belov <defan@nginx.com> - 17+0.2.7-1.el7.ngx
changelog:
  - Change: njs module updated to 0.2.7.
  - Feature: rest parameters syntax (destructuring is not supported).
  - Feature: added Object.entries() method.
  - Feature: added Object.values() method.
  - Improvement: code generator refactored and simplified.
  - Bugfix: fixed automatic semicolon insertion.
  - Bugfix: fixed assignment expression from compound assignment.
  - Bugfix: fixed comparison of Byte and UTF8 strings.
  - Bugfix: fixed type of iteration variable in for-in with array values.
  - Bugfix: fixed building on paltforms without librt.
  - Bugfix: miscellaneous additional bugs have been fixed.


author: Andrei Belov <defan@nginx.com> - 17+0.2.8-1.el7.ngx
changelog:
  - Change: njs module updated to 0.2.8.
  - Change: properties of HTTP request deprecarted in 0.2.2 are removed.
  - Feature: added support for delete operation in r.headersOut.
  - Feature: added support for setting nginx variables.
  - Bugfix: fixed r.subrequest() for empty body value.
  - Improvement: setting special response headers in r.headersOut.
  - Feature: added labels support.
  - Feature: added setImmediate() method.
  - Feature: added support for shorthand property names for Object literals.
  - Bugfix: fixed Function.prototype.bind().
  - Bugfix: fixed parsing of string literals containing newline characters.
  - Bugfix: fixed line number in reporting variable reference errors.
  - Bugfix: fixed creation of long UTF8 strings.
  - Bugfix: fixed String.prototype.split() for unicode strings.
  - Bugfix: fixed heap-buffer-overflow in String.prototype.split().
  - Bugfix: fixed Array.prototype.fill().
  - Improvement: code related to function invocation is refactored.
  - Improvement: code related to variables is refactored.
  - Improvement: parser is refactored.
  - Improvement: reporting filenames in exceptions.


author: Andrei Belov <defan@nginx.com> - 17+0.3.0-1.el7.ngx
changelog:
  - Change: njs module updated to 0.3.0.
  - Feature: added js_path directive.
  - Change: returning undefined value instead of empty strings for absent
    properties in the following objects: r.args, r.headersIn, r.headersOut,
    r.variables, s.variables.
  - Change: returning undefined value instead of throwing an exception for
    r.requestBody when request body is unavailable.
  - Bugfix: fixed crash while iterating over r.args when a value is absent in
    a key-value pair.
  - Feature: added initial ES6 modules support. Default import and default
    export statements are supported.
  - Feature: added Object.prototype.propertyIsEnumerable().
  - Feature: reporting file name and function name in disassembler output.
  - Bugfix: fixed function redeclarations in interactive shell.
  - Bugfix: fixed RegExp literals parsing.
  - Bugfix: fixed setting length of UTF8 string in fs.readFileSync().
  - Bugfix: fixed nxt_file_dirname() for paths with no dir component.


author: Andrei Belov <defan@nginx.com>
changelog:
  - base version updated to 1.11.10-1 (nginx-plus-r12)
  - RTMP module updated to 1.1.11 (fixed building with openssl-1.1)


