xref: /unit/docs/changes.xml (revision 1961)
1369Sdefan@nginx.com<?xml version="1.0" ?>
2369Sdefan@nginx.com<!DOCTYPE change_log SYSTEM "changes.dtd" >
3369Sdefan@nginx.com
4369Sdefan@nginx.com
5369Sdefan@nginx.com<change_log title="unit">
6369Sdefan@nginx.com
7369Sdefan@nginx.com
81896Svbart@nginx.com<changes apply="unit-php
91896Svbart@nginx.com                unit-python unit-python2.7
101896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
111896Svbart@nginx.com                unit-python3.8 unit-python3.9
121896Svbart@nginx.com                unit-go
131896Svbart@nginx.com                unit-perl
141896Svbart@nginx.com                unit-ruby
151896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
161896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
171951Svbart@nginx.com         ver="1.26.0" rev="1"
181951Svbart@nginx.com         date="" time=""
191951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
201951Svbart@nginx.com
211951Svbart@nginx.com<change>
221951Svbart@nginx.com<para>
231951Svbart@nginx.comNGINX Unit updated to 1.26.0.
241951Svbart@nginx.com</para>
251951Svbart@nginx.com</change>
261951Svbart@nginx.com
271951Svbart@nginx.com</changes>
281951Svbart@nginx.com
291951Svbart@nginx.com
301951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
311951Svbart@nginx.com         date="" time=""
321951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
331951Svbart@nginx.com
341960Sz.hong@f5.com<change type="change">
351960Sz.hong@f5.com<para>
361960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
371960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
381960Sz.hong@f5.com</para>
391960Sz.hong@f5.com</change>
401960Sz.hong@f5.com
411960Sz.hong@f5.com<change type="feature">
421960Sz.hong@f5.com<para>
431960Sz.hong@f5.comvariables support in the "share" option.
441960Sz.hong@f5.com</para>
451960Sz.hong@f5.com</change>
461960Sz.hong@f5.com
471959Sz.hong@f5.com<change type="feature">
481959Sz.hong@f5.com<para>
49*1961Sz.hong@f5.commultiple paths in the "share" option.
50*1961Sz.hong@f5.com</para>
51*1961Sz.hong@f5.com</change>
52*1961Sz.hong@f5.com
53*1961Sz.hong@f5.com<change type="feature">
54*1961Sz.hong@f5.com<para>
551959Sz.hong@f5.comvariables support in the "chroot" option.
561959Sz.hong@f5.com</para>
571959Sz.hong@f5.com</change>
581959Sz.hong@f5.com
591955Smax.romanov@nginx.com<change type="bugfix">
601955Smax.romanov@nginx.com<para>
611955Smax.romanov@nginx.comfixed building with glibc 2.34, notably Fedora 35.
621955Smax.romanov@nginx.com</para>
631955Smax.romanov@nginx.com</change>
641955Smax.romanov@nginx.com
651956Smax.romanov@nginx.com<change type="bugfix">
661956Smax.romanov@nginx.com<para>
671956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
681956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
691956Smax.romanov@nginx.com</para>
701956Smax.romanov@nginx.com</change>
711956Smax.romanov@nginx.com
721951Svbart@nginx.com</changes>
731951Svbart@nginx.com
741951Svbart@nginx.com
751951Svbart@nginx.com<changes apply="unit-php
761951Svbart@nginx.com                unit-python unit-python2.7
771951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
781951Svbart@nginx.com                unit-python3.8 unit-python3.9
791951Svbart@nginx.com                unit-go
801951Svbart@nginx.com                unit-perl
811951Svbart@nginx.com                unit-ruby
821951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
831951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
841896Svbart@nginx.com         ver="1.25.0" rev="1"
851945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
861896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
871896Svbart@nginx.com
881896Svbart@nginx.com<change>
891896Svbart@nginx.com<para>
901896Svbart@nginx.comNGINX Unit updated to 1.25.0.
911896Svbart@nginx.com</para>
921896Svbart@nginx.com</change>
931896Svbart@nginx.com
941896Svbart@nginx.com</changes>
951896Svbart@nginx.com
961896Svbart@nginx.com
971896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
981945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
991896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1001896Svbart@nginx.com
1011910So.canty@f5.com<change type="feature">
1021910So.canty@f5.com<para>
1031944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
1041942Sa.suvorov@f5.com</para>
1051942Sa.suvorov@f5.com</change>
1061942Sa.suvorov@f5.com
1071942Sa.suvorov@f5.com<change type="feature">
1081942Sa.suvorov@f5.com<para>
1091920Sa.suvorov@f5.comTLS sessions cache.
1101920Sa.suvorov@f5.com</para>
1111920Sa.suvorov@f5.com</change>
1121920Sa.suvorov@f5.com
1131920Sa.suvorov@f5.com<change type="feature">
1141920Sa.suvorov@f5.com<para>
1151944Svbart@nginx.comTLS session tickets.
1161910So.canty@f5.com</para>
1171910So.canty@f5.com</change>
1181910So.canty@f5.com
1191926Smax.romanov@nginx.com<change type="feature">
1201926Smax.romanov@nginx.com<para>
1211926Smax.romanov@nginx.comapplication restart control.
1221926Smax.romanov@nginx.com</para>
1231926Smax.romanov@nginx.com</change>
1241926Smax.romanov@nginx.com
1251936So.canty@f5.com<change type="feature">
1261936So.canty@f5.com<para>
1271944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
1281936So.canty@f5.com</para>
1291936So.canty@f5.com</change>
1301936So.canty@f5.com
1311907Smax.romanov@nginx.com<change type="bugfix">
1321907Smax.romanov@nginx.com<para>
1331944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
1341944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
1351921Sa.suvorov@f5.com</para>
1361921Sa.suvorov@f5.com</change>
1371921Sa.suvorov@f5.com
1381921Sa.suvorov@f5.com<change type="bugfix">
1391921Sa.suvorov@f5.com<para>
1401944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
1411944Svbart@nginx.combundles in a listener if the client did not use SNI.
1421907Smax.romanov@nginx.com</para>
1431907Smax.romanov@nginx.com</change>
1441907Smax.romanov@nginx.com
1451907Smax.romanov@nginx.com<change type="bugfix">
1461907Smax.romanov@nginx.com<para>
1471950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
1481915Smax.romanov@nginx.comreconfiguration.
1491915Smax.romanov@nginx.com</para>
1501915Smax.romanov@nginx.com</change>
1511915Smax.romanov@nginx.com
1521915Smax.romanov@nginx.com<change type="bugfix">
1531915Smax.romanov@nginx.com<para>
1541944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
1551944Svbart@nginx.comframework.
1561944Svbart@nginx.com</para>
1571944Svbart@nginx.com</change>
1581944Svbart@nginx.com
1591944Svbart@nginx.com<change type="bugfix">
1601944Svbart@nginx.com<para>
1611944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
1621944Svbart@nginx.comstopped or crashed.
1631907Smax.romanov@nginx.com</para>
1641907Smax.romanov@nginx.com</change>
1651907Smax.romanov@nginx.com
1661909So.canty@f5.com<change type="bugfix">
1671909So.canty@f5.com<para>
1681909So.canty@f5.comthe controller or router process could crash if the configuration contained
1691909So.canty@f5.coma full-form IPv6 in a listener address.
1701909So.canty@f5.com</para>
1711909So.canty@f5.com</change>
1721909So.canty@f5.com
1731916Smax.romanov@nginx.com<change type="bugfix">
1741916Smax.romanov@nginx.com<para>
1751929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
1761929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
1771929Sz.hong@f5.com</para>
1781929Sz.hong@f5.com</change>
1791929Sz.hong@f5.com
1801930So.canty@f5.com<change type="bugfix">
1811930So.canty@f5.com<para>
1821944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
1831944Svbart@nginx.comor destination address patterns.
1841930So.canty@f5.com</para>
1851930So.canty@f5.com</change>
1861930So.canty@f5.com
1871896Svbart@nginx.com</changes>
1881896Svbart@nginx.com
1891896Svbart@nginx.com
1901887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
1911891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
1921887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1931887Sdefan@nginx.com
1941887Sdefan@nginx.com<change>
1951887Sdefan@nginx.com<para>
1961887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
1971887Sdefan@nginx.com</para>
1981887Sdefan@nginx.com</change>
1991887Sdefan@nginx.com
2001887Sdefan@nginx.com</changes>
2011887Sdefan@nginx.com
2021887Sdefan@nginx.com
2031887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
2041891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2051887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2061887Sdefan@nginx.com
2071887Sdefan@nginx.com<change>
2081887Sdefan@nginx.com<para>
2091887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
2101887Sdefan@nginx.com</para>
2111887Sdefan@nginx.com</change>
2121887Sdefan@nginx.com
2131887Sdefan@nginx.com</changes>
2141887Sdefan@nginx.com
2151887Sdefan@nginx.com
2161834Svbart@nginx.com<changes apply="unit-php
2171834Svbart@nginx.com                unit-python unit-python2.7
2181834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2191834Svbart@nginx.com                unit-python3.8 unit-python3.9
2201834Svbart@nginx.com                unit-go
2211834Svbart@nginx.com                unit-perl
2221834Svbart@nginx.com                unit-ruby
2231834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2241834Svbart@nginx.com                unit-jsc14 unit-jsc15"
2251839Svbart@nginx.com         ver="1.24.0" rev="1"
2261891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2271839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2281839Svbart@nginx.com
2291839Svbart@nginx.com<change>
2301839Svbart@nginx.com<para>
2311839Svbart@nginx.comNGINX Unit updated to 1.24.0.
2321839Svbart@nginx.com</para>
2331839Svbart@nginx.com</change>
2341839Svbart@nginx.com
2351839Svbart@nginx.com</changes>
2361839Svbart@nginx.com
2371839Svbart@nginx.com
2381839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
2391891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2401839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2411839Svbart@nginx.com
2421882So.canty@f5.com<change type="change">
2431882So.canty@f5.com<para>
2441882So.canty@f5.comPHP added to the default MIME type list.
2451882So.canty@f5.com</para>
2461882So.canty@f5.com</change>
2471882So.canty@f5.com
2481855Sz.hong@f5.com<change type="feature">
2491855Sz.hong@f5.com<para>
2501885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
2511885Sa.suvorov@f5.com</para>
2521885Sa.suvorov@f5.com</change>
2531885Sa.suvorov@f5.com
2541885Sa.suvorov@f5.com<change type="feature">
2551885Sa.suvorov@f5.com<para>
2561890Svbart@nginx.comthe ability to limit static file serving by MIME types.
2571890Svbart@nginx.com</para>
2581890Svbart@nginx.com</change>
2591890Svbart@nginx.com
2601890Svbart@nginx.com<change type="feature">
2611890Svbart@nginx.com<para>
2621890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
2631890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
2641872So.canty@f5.com</para>
2651872So.canty@f5.com</change>
2661872So.canty@f5.com
2671872So.canty@f5.com<change type="feature">
2681872So.canty@f5.com<para>
2691889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
2701889Sartem.konev@nginx.comNode.js.
2711865So.canty@f5.com</para>
2721865So.canty@f5.com</change>
2731865So.canty@f5.com
2741865So.canty@f5.com<change type="feature">
2751865So.canty@f5.com<para>
2761890Svbart@nginx.commultiple "targets" in Python applications.
2771855Sz.hong@f5.com</para>
2781855Sz.hong@f5.com</change>
2791855Sz.hong@f5.com
2801870So.canty@f5.com<change type="feature">
2811870So.canty@f5.com<para>
2821870So.canty@f5.comcompatibility with Ruby 3.0.
2831870So.canty@f5.com</para>
2841870So.canty@f5.com</change>
2851870So.canty@f5.com
2861861Svbart@nginx.com<change type="bugfix">
2871861Svbart@nginx.com<para>
2881889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
2891884Sa.suvorov@f5.com</para>
2901884Sa.suvorov@f5.com</change>
2911884Sa.suvorov@f5.com
2921884Sa.suvorov@f5.com<change type="bugfix">
2931884Sa.suvorov@f5.com<para>
2941861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
2951861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
2961861Svbart@nginx.com</para>
2971861Svbart@nginx.com</change>
2981861Svbart@nginx.com
2991839Svbart@nginx.com</changes>
3001839Svbart@nginx.com
3011839Svbart@nginx.com
3021839Svbart@nginx.com<changes apply="unit-php
3031839Svbart@nginx.com                unit-python unit-python2.7
3041839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3051839Svbart@nginx.com                unit-python3.8 unit-python3.9
3061839Svbart@nginx.com                unit-go
3071839Svbart@nginx.com                unit-perl
3081839Svbart@nginx.com                unit-ruby
3091839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3101839Svbart@nginx.com                unit-jsc14 unit-jsc15"
3111834Svbart@nginx.com         ver="1.23.0" rev="1"
3121834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
3131834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3141834Svbart@nginx.com
3151834Svbart@nginx.com<change>
3161834Svbart@nginx.com<para>
3171834Svbart@nginx.comNGINX Unit updated to 1.23.0.
3181834Svbart@nginx.com</para>
3191834Svbart@nginx.com</change>
3201834Svbart@nginx.com
3211834Svbart@nginx.com</changes>
3221834Svbart@nginx.com
3231834Svbart@nginx.com
3241806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
3251834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
3261806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3271806Svbart@nginx.com
3281825Sthresh@nginx.com<change type="feature">
3291825Sthresh@nginx.com<para>
3301833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
3311828Sa.suvorov@f5.comIndication (SNI) TLS extension.
3321828Sa.suvorov@f5.com</para>
3331828Sa.suvorov@f5.com</change>
3341828Sa.suvorov@f5.com
3351828Sa.suvorov@f5.com<change type="feature">
3361828Sa.suvorov@f5.com<para>
3371833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
3381833Sartem.konev@nginx.cominstallation.
3391825Sthresh@nginx.com</para>
3401825Sthresh@nginx.com</change>
3411825Sthresh@nginx.com
3421811Smax.romanov@nginx.com<change type="bugfix">
3431811Smax.romanov@nginx.com<para>
3441812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
3451812Svbart@nginx.comappeared in 1.17.0.
3461812Svbart@nginx.com</para>
3471812Svbart@nginx.com</change>
3481812Svbart@nginx.com
3491812Svbart@nginx.com<change type="bugfix">
3501812Svbart@nginx.com<para>
3511833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
3521812Svbart@nginx.comappeared in 1.6.
3531812Svbart@nginx.com</para>
3541812Svbart@nginx.com</change>
3551812Svbart@nginx.com
3561812Svbart@nginx.com<change type="bugfix">
3571812Svbart@nginx.com<para>
3581833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
3591832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
3601832Smax.romanov@nginx.com</para>
3611832Smax.romanov@nginx.com</change>
3621832Smax.romanov@nginx.com
3631832Smax.romanov@nginx.com<change type="bugfix">
3641832Smax.romanov@nginx.com<para>
3651833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
3661811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
3671811Smax.romanov@nginx.com</para>
3681811Smax.romanov@nginx.com</change>
3691806Svbart@nginx.com
3701813Svbart@nginx.com<change type="bugfix">
3711813Svbart@nginx.com<para>
3721813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
3731813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
3741813Svbart@nginx.com</para>
3751813Svbart@nginx.com</change>
3761813Svbart@nginx.com
3771814Svbart@nginx.com<change type="bugfix">
3781814Svbart@nginx.com<para>
3791820Svbart@nginx.comthe controller process could crash while requesting information about a
3801820Svbart@nginx.comcertificate with a non-DNS SAN entry.
3811820Svbart@nginx.com</para>
3821820Svbart@nginx.com</change>
3831820Svbart@nginx.com
3841820Svbart@nginx.com<change type="bugfix">
3851820Svbart@nginx.com<para>
3861822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
3871833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
3881822Svbart@nginx.com</para>
3891822Svbart@nginx.com</change>
3901822Svbart@nginx.com
3911822Svbart@nginx.com<change type="bugfix">
3921822Svbart@nginx.com<para>
3931833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
3941833Sartem.konev@nginx.comclass.
3951814Svbart@nginx.com</para>
3961814Svbart@nginx.com</change>
3971814Svbart@nginx.com
3981815Svbart@nginx.com<change type="bugfix">
3991815Svbart@nginx.com<para>
4001815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
4011815Svbart@nginx.comappeared in 1.22.0.
4021815Svbart@nginx.com</para>
4031815Svbart@nginx.com</change>
4041815Svbart@nginx.com
4051806Svbart@nginx.com</changes>
4061806Svbart@nginx.com
4071806Svbart@nginx.com
4081798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
4091798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
4101798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4111798Sdefan@nginx.com
4121798Sdefan@nginx.com<change>
4131798Sdefan@nginx.com<para>
4141798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
4151798Sdefan@nginx.com</para>
4161798Sdefan@nginx.com</change>
4171798Sdefan@nginx.com
4181798Sdefan@nginx.com</changes>
4191798Sdefan@nginx.com
4201798Sdefan@nginx.com
4211763Sdefan@nginx.com<changes apply="unit-php
4221763Sdefan@nginx.com                unit-python unit-python2.7
4231763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4241763Sdefan@nginx.com                unit-python3.8
4251763Sdefan@nginx.com                unit-go
4261763Sdefan@nginx.com                unit-perl
4271763Sdefan@nginx.com                unit-ruby
4281763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4291763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
4301763Sdefan@nginx.com         ver="1.22.0" rev="1"
4311793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
4321763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4331763Sdefan@nginx.com
4341763Sdefan@nginx.com<change>
4351763Sdefan@nginx.com<para>
4361763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
4371763Sdefan@nginx.com</para>
4381763Sdefan@nginx.com</change>
4391763Sdefan@nginx.com
4401763Sdefan@nginx.com</changes>
4411763Sdefan@nginx.com
4421763Sdefan@nginx.com
4431727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
4441793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
4451727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4461727Svbart@nginx.com
4471759Svbart@nginx.com<change type="feature">
4481759Svbart@nginx.com<para>
4491792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
4501792Svbart@nginx.comcompliant with Stream API.
4511759Svbart@nginx.com</para>
4521759Svbart@nginx.com</change>
4531759Svbart@nginx.com
4541766Smax.romanov@nginx.com<change type="feature">
4551766Smax.romanov@nginx.com<para>
4561792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
4571792Svbart@nginx.comapps.
4581732Svbart@nginx.com</para>
4591732Svbart@nginx.com</change>
4601732Svbart@nginx.com
4611733Svbart@nginx.com<change type="bugfix">
4621733Svbart@nginx.com<para>
4631792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
4641792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
4651754Smax.romanov@nginx.com</para>
4661754Smax.romanov@nginx.com</change>
4671754Smax.romanov@nginx.com
4681755Smax.romanov@nginx.com<change type="bugfix">
4691755Smax.romanov@nginx.com<para>
4701790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
4711755Smax.romanov@nginx.comappeared in 1.19.0.
4721755Smax.romanov@nginx.com</para>
4731755Smax.romanov@nginx.com</change>
4741755Smax.romanov@nginx.com
4751756Smax.romanov@nginx.com<change type="bugfix">
4761756Smax.romanov@nginx.com<para>
4771790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
4781790Sartem.konev@nginx.comappeared in 1.19.0.
4791756Smax.romanov@nginx.com</para>
4801756Smax.romanov@nginx.com</change>
4811756Smax.romanov@nginx.com
4821760Smax.romanov@nginx.com<change type="bugfix">
4831760Smax.romanov@nginx.com<para>
4841792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
4851792Svbart@nginx.com</para>
4861792Svbart@nginx.com</change>
4871792Svbart@nginx.com
4881792Svbart@nginx.com<change type="bugfix">
4891792Svbart@nginx.com<para>
4901792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
4911792Svbart@nginx.commissing in the PHP module.
4921792Svbart@nginx.com</para>
4931792Svbart@nginx.com</change>
4941792Svbart@nginx.com
4951792Svbart@nginx.com<change type="bugfix">
4961792Svbart@nginx.com<para>
4971792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
4981792Svbart@nginx.com</para>
4991792Svbart@nginx.com</change>
5001792Svbart@nginx.com
5011792Svbart@nginx.com<change type="bugfix">
5021792Svbart@nginx.com<para>
5031792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
5041792Svbart@nginx.com</para>
5051792Svbart@nginx.com</change>
5061792Svbart@nginx.com
5071792Svbart@nginx.com<change type="bugfix">
5081792Svbart@nginx.com<para>
5091792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
5101792Svbart@nginx.comthe bug had appeared in 1.21.0.
5111760Smax.romanov@nginx.com</para>
5121760Smax.romanov@nginx.com</change>
5131760Smax.romanov@nginx.com
5141780Smax.romanov@nginx.com<change type="bugfix">
5151780Smax.romanov@nginx.com<para>
5161790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
5171790Sartem.konev@nginx.comWebSocket.
5181780Smax.romanov@nginx.com</para>
5191780Smax.romanov@nginx.com</change>
5201780Smax.romanov@nginx.com
5211789Smax.romanov@nginx.com<change type="bugfix">
5221789Smax.romanov@nginx.com<para>
5231789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
5241789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
5251789Smax.romanov@nginx.com</para>
5261789Smax.romanov@nginx.com</change>
5271789Smax.romanov@nginx.com
5281727Svbart@nginx.com</changes>
5291727Svbart@nginx.com
5301727Svbart@nginx.com
5311722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
5321722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5331722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5341722Svbart@nginx.com
5351722Svbart@nginx.com<change>
5361722Svbart@nginx.com<para>
5371722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
5381722Svbart@nginx.com</para>
5391722Svbart@nginx.com</change>
5401722Svbart@nginx.com
5411722Svbart@nginx.com</changes>
5421722Svbart@nginx.com
5431722Svbart@nginx.com
5441722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
5451722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5461722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5471722Svbart@nginx.com
5481722Svbart@nginx.com<change>
5491722Svbart@nginx.com<para>
5501722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
5511722Svbart@nginx.com</para>
5521722Svbart@nginx.com</change>
5531722Svbart@nginx.com
5541722Svbart@nginx.com</changes>
5551722Svbart@nginx.com
5561722Svbart@nginx.com
5571722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
5581722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5591722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5601722Svbart@nginx.com
5611722Svbart@nginx.com<change>
5621722Svbart@nginx.com<para>
5631722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
5641722Svbart@nginx.com</para>
5651722Svbart@nginx.com</change>
5661722Svbart@nginx.com
5671722Svbart@nginx.com</changes>
5681722Svbart@nginx.com
5691722Svbart@nginx.com
5701722Svbart@nginx.com<changes apply="unit-php
5711722Svbart@nginx.com                unit-python unit-python2.7
5721722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5731722Svbart@nginx.com                unit-python3.8
5741722Svbart@nginx.com                unit-go
5751722Svbart@nginx.com                unit-perl
5761722Svbart@nginx.com                unit-ruby
5771722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
5781722Svbart@nginx.com         ver="1.21.0" rev="1"
5791722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5801722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5811722Svbart@nginx.com
5821722Svbart@nginx.com<change>
5831722Svbart@nginx.com<para>
5841722Svbart@nginx.comNGINX Unit updated to 1.21.0.
5851722Svbart@nginx.com</para>
5861722Svbart@nginx.com</change>
5871722Svbart@nginx.com
5881722Svbart@nginx.com</changes>
5891722Svbart@nginx.com
5901722Svbart@nginx.com
5911722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
5921722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5931722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5941722Svbart@nginx.com
5951722Svbart@nginx.com<change type="change">
5961722Svbart@nginx.com<para>
5971722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
5981722Svbart@nginx.com</para>
5991722Svbart@nginx.com</change>
6001722Svbart@nginx.com
6011722Svbart@nginx.com<change type="change">
6021722Svbart@nginx.com<para>
6031722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
6041722Svbart@nginx.comnames.
6051722Svbart@nginx.com</para>
6061722Svbart@nginx.com</change>
6071722Svbart@nginx.com
6081722Svbart@nginx.com<change type="change">
6091722Svbart@nginx.com<para>
6101722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
6111722Svbart@nginx.comdefault.
6121722Svbart@nginx.com</para>
6131722Svbart@nginx.com</change>
6141722Svbart@nginx.com
6151722Svbart@nginx.com<change type="feature">
6161722Svbart@nginx.com<para>
6171722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
6181722Svbart@nginx.com</para>
6191722Svbart@nginx.com</change>
6201722Svbart@nginx.com
6211722Svbart@nginx.com<change type="feature">
6221722Svbart@nginx.com<para>
6231722Svbart@nginx.comregular expressions in route matching patterns.
6241722Svbart@nginx.com</para>
6251722Svbart@nginx.com</change>
6261722Svbart@nginx.com
6271722Svbart@nginx.com<change type="feature">
6281722Svbart@nginx.com<para>
6291722Svbart@nginx.comcompatibility with Python 3.9.
6301722Svbart@nginx.com</para>
6311722Svbart@nginx.com</change>
6321722Svbart@nginx.com
6331722Svbart@nginx.com<change type="feature">
6341722Svbart@nginx.com<para>
6351722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
6361722Svbart@nginx.com</para>
6371722Svbart@nginx.com</change>
6381722Svbart@nginx.com
6391722Svbart@nginx.com<change type="feature">
6401722Svbart@nginx.com<para>
6411722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
6421722Svbart@nginx.com</para>
6431722Svbart@nginx.com</change>
6441722Svbart@nginx.com
6451722Svbart@nginx.com<change type="feature">
6461722Svbart@nginx.com<para>
6471722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
6481722Svbart@nginx.comcontinues code execution without holding onto the client connection.
6491722Svbart@nginx.com</para>
6501722Svbart@nginx.com</change>
6511722Svbart@nginx.com
6521722Svbart@nginx.com<change type="feature">
6531722Svbart@nginx.com<para>
6541722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
6551722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
6561722Svbart@nginx.com</para>
6571722Svbart@nginx.com</change>
6581722Svbart@nginx.com
6591722Svbart@nginx.com<change type="feature">
6601722Svbart@nginx.com<para>
6611722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
6621722Svbart@nginx.commounting of eponymous filesystems.
6631722Svbart@nginx.com</para>
6641722Svbart@nginx.com</change>
6651722Svbart@nginx.com
6661722Svbart@nginx.com<change type="bugfix">
6671722Svbart@nginx.com<para>
6681722Svbart@nginx.comthe router process could crash when running Go applications under high load;
6691722Svbart@nginx.comthe bug had appeared in 1.19.0.
6701722Svbart@nginx.com</para>
6711722Svbart@nginx.com</change>
6721722Svbart@nginx.com
6731722Svbart@nginx.com<change type="bugfix">
6741722Svbart@nginx.com<para>
6751722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
6761722Svbart@nginx.com</para>
6771722Svbart@nginx.com</change>
6781722Svbart@nginx.com
6791722Svbart@nginx.com<change type="bugfix">
6801722Svbart@nginx.com<para>
6811722Svbart@nginx.comvarious compatibility issues in Java applications.
6821722Svbart@nginx.com</para>
6831722Svbart@nginx.com</change>
6841722Svbart@nginx.com
6851722Svbart@nginx.com<change type="bugfix">
6861722Svbart@nginx.com<para>
6871722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
6881722Svbart@nginx.comuse "rootfs" isolation.
6891722Svbart@nginx.com</para>
6901722Svbart@nginx.com</change>
6911722Svbart@nginx.com
6921722Svbart@nginx.com</changes>
6931722Svbart@nginx.com
6941722Svbart@nginx.com
6951330Svbart@nginx.com<changes apply="unit-php
6961330Svbart@nginx.com                unit-python unit-python2.7
6971330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6981330Svbart@nginx.com                unit-python3.8
6991330Svbart@nginx.com                unit-go
7001330Svbart@nginx.com                unit-perl
7011330Svbart@nginx.com                unit-ruby
7021330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
7031640Svbart@nginx.com         ver="1.20.0" rev="1"
7041640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
7051640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7061640Svbart@nginx.com
7071640Svbart@nginx.com<change>
7081640Svbart@nginx.com<para>
7091640Svbart@nginx.comNGINX Unit updated to 1.20.0.
7101640Svbart@nginx.com</para>
7111640Svbart@nginx.com</change>
7121640Svbart@nginx.com
7131640Svbart@nginx.com</changes>
7141640Svbart@nginx.com
7151640Svbart@nginx.com
7161640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
7171640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
7181640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7191640Svbart@nginx.com
7201640Svbart@nginx.com<change type="change">
7211640Svbart@nginx.com<para>
7221640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
7231640Svbart@nginx.comextensions from the host system.
7241640Svbart@nginx.com</para>
7251640Svbart@nginx.com</change>
7261640Svbart@nginx.com
7271640Svbart@nginx.com<change type="change">
7281640Svbart@nginx.com<para>
7291640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
7301640Svbart@nginx.com</para>
7311640Svbart@nginx.com</change>
7321640Svbart@nginx.com
7331643Svbart@nginx.com<change type="change">
7341643Svbart@nginx.com<para>
7351643Svbart@nginx.comfunctional tests migrated to the pytest framework.
7361643Svbart@nginx.com</para>
7371643Svbart@nginx.com</change>
7381643Svbart@nginx.com
7391640Svbart@nginx.com<change type="feature">
7401640Svbart@nginx.com<para>
7411640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
7421640Svbart@nginx.cominterface.
7431640Svbart@nginx.com</para>
7441640Svbart@nginx.com</change>
7451640Svbart@nginx.com
7461640Svbart@nginx.com<change type="feature">
7471640Svbart@nginx.com<para>
7481640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
7491640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
7501640Svbart@nginx.comspecification.
7511640Svbart@nginx.com</para>
7521640Svbart@nginx.com</change>
7531640Svbart@nginx.com
7541640Svbart@nginx.com<change type="feature">
7551640Svbart@nginx.com<para>
7561640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
7571640Svbart@nginx.comenvironments.
7581640Svbart@nginx.com</para>
7591640Svbart@nginx.com</change>
7601640Svbart@nginx.com
7611640Svbart@nginx.com<change type="feature">
7621640Svbart@nginx.com<para>
7631640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
7641640Svbart@nginx.com</para>
7651640Svbart@nginx.com</change>
7661640Svbart@nginx.com
7671640Svbart@nginx.com<change type="feature">
7681640Svbart@nginx.com<para>
7691640Svbart@nginx.comthe "callable" option sets Python application callable names.
7701640Svbart@nginx.com</para>
7711640Svbart@nginx.com</change>
7721640Svbart@nginx.com
7731640Svbart@nginx.com<change type="feature">
7741640Svbart@nginx.com<para>
7751640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
7761640Svbart@nginx.com</para>
7771640Svbart@nginx.com</change>
7781640Svbart@nginx.com
7791640Svbart@nginx.com<change type="feature">
7801640Svbart@nginx.com<para>
7811640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
7821640Svbart@nginx.comautomatic mounting of language module dependencies.
7831640Svbart@nginx.com</para>
7841640Svbart@nginx.com</change>
7851640Svbart@nginx.com
7861640Svbart@nginx.com<change type="bugfix">
7871640Svbart@nginx.com<para>
7881640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
7891640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
7901640Svbart@nginx.com</para>
7911640Svbart@nginx.com</change>
7921640Svbart@nginx.com
7931640Svbart@nginx.com<change type="bugfix">
7941640Svbart@nginx.com<para>
7951640Svbart@nginx.comthe router process could crash during reconfiguration.
7961640Svbart@nginx.com</para>
7971640Svbart@nginx.com</change>
7981640Svbart@nginx.com
7991640Svbart@nginx.com<change type="bugfix">
8001640Svbart@nginx.com<para>
8011640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
8021640Svbart@nginx.com</para>
8031640Svbart@nginx.com</change>
8041640Svbart@nginx.com
8051640Svbart@nginx.com<change type="bugfix">
8061640Svbart@nginx.com<para>
8071640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
8081640Svbart@nginx.comthe bug had appeared in 1.19.0.
8091640Svbart@nginx.com</para>
8101640Svbart@nginx.com</change>
8111640Svbart@nginx.com
8121640Svbart@nginx.com<change type="bugfix">
8131640Svbart@nginx.com<para>
8141640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
8151640Svbart@nginx.comthe bug had appeared in 1.16.0.
8161640Svbart@nginx.com</para>
8171640Svbart@nginx.com</change>
8181640Svbart@nginx.com
8191640Svbart@nginx.com</changes>
8201640Svbart@nginx.com
8211640Svbart@nginx.com
8221640Svbart@nginx.com<changes apply="unit-php
8231640Svbart@nginx.com                unit-python unit-python2.7
8241640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8251640Svbart@nginx.com                unit-python3.8
8261640Svbart@nginx.com                unit-go
8271640Svbart@nginx.com                unit-perl
8281640Svbart@nginx.com                unit-ruby
8291640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8301570Svbart@nginx.com         ver="1.19.0" rev="1"
8311570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
8321570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8331570Svbart@nginx.com
8341570Svbart@nginx.com<change>
8351570Svbart@nginx.com<para>
8361570Svbart@nginx.comNGINX Unit updated to 1.19.0.
8371570Svbart@nginx.com</para>
8381570Svbart@nginx.com</change>
8391570Svbart@nginx.com
8401570Svbart@nginx.com</changes>
8411570Svbart@nginx.com
8421570Svbart@nginx.com
8431570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1"
8441570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
8451570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8461570Svbart@nginx.com
8471570Svbart@nginx.com<change type="feature">
8481570Svbart@nginx.com<para>
8491570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
8501570Svbart@nginx.comincrease performance, and improve scalability.
8511570Svbart@nginx.com</para>
8521570Svbart@nginx.com</change>
8531570Svbart@nginx.com
8541570Svbart@nginx.com<change type="feature">
8551570Svbart@nginx.com<para>
8561570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns.
8571570Svbart@nginx.com</para>
8581570Svbart@nginx.com</change>
8591570Svbart@nginx.com
8601570Svbart@nginx.com<change type="feature">
8611570Svbart@nginx.com<para>
8621570Svbart@nginx.comchunked transfer encoding in proxy responses.
8631570Svbart@nginx.com</para>
8641570Svbart@nginx.com</change>
8651570Svbart@nginx.com
8661570Svbart@nginx.com<change type="feature">
8671570Svbart@nginx.com<para>
8681570Svbart@nginx.combasic variables support in the "pass" option.
8691570Svbart@nginx.com</para>
8701570Svbart@nginx.com</change>
8711570Svbart@nginx.com
8721570Svbart@nginx.com<change type="feature">
8731570Svbart@nginx.com<para>
8741570Svbart@nginx.comcompatibility with PHP 8 Beta 1.
8751570Svbart@nginx.comThanks to Remi Collet.
8761570Svbart@nginx.com</para>
8771570Svbart@nginx.com</change>
8781570Svbart@nginx.com
8791570Svbart@nginx.com<change type="bugfix">
8801570Svbart@nginx.com<para>
8811570Svbart@nginx.comthe router process could crash while passing requests to an application under
8821570Svbart@nginx.comhigh load.
8831570Svbart@nginx.com</para>
8841570Svbart@nginx.com</change>
8851570Svbart@nginx.com
8861570Svbart@nginx.com<change type="bugfix">
8871570Svbart@nginx.com<para>
8881570Svbart@nginx.coma number of language modules failed to build on some systems;
8891570Svbart@nginx.comthe bug had appeared in 1.18.0.
8901570Svbart@nginx.com</para>
8911570Svbart@nginx.com</change>
8921570Svbart@nginx.com
8931570Svbart@nginx.com<change type="bugfix">
8941570Svbart@nginx.com<para>
8951570Svbart@nginx.comtime in error log messages from PHP applications could lag.
8961570Svbart@nginx.com</para>
8971570Svbart@nginx.com</change>
8981570Svbart@nginx.com
8991570Svbart@nginx.com<change type="bugfix">
9001570Svbart@nginx.com<para>
9011570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start;
9021570Svbart@nginx.comthe bug had appeared in 1.18.0.
9031570Svbart@nginx.com</para>
9041570Svbart@nginx.com</change>
9051570Svbart@nginx.com
9061570Svbart@nginx.com<change type="bugfix">
9071570Svbart@nginx.com<para>
9081570Svbart@nginx.commemory leak during reconfiguration.
9091570Svbart@nginx.com</para>
9101570Svbart@nginx.com</change>
9111570Svbart@nginx.com
9121570Svbart@nginx.com<change type="bugfix">
9131570Svbart@nginx.com<para>
9141570Svbart@nginx.comthe daemon didn't start without language modules;
9151570Svbart@nginx.comthe bug had appeared in 1.18.0.
9161570Svbart@nginx.com</para>
9171570Svbart@nginx.com</change>
9181570Svbart@nginx.com
9191570Svbart@nginx.com<change type="bugfix">
9201570Svbart@nginx.com<para>
9211570Svbart@nginx.comthe router process could crash at exit.
9221570Svbart@nginx.com</para>
9231570Svbart@nginx.com</change>
9241570Svbart@nginx.com
9251570Svbart@nginx.com<change type="bugfix">
9261570Svbart@nginx.com<para>
9271570Svbart@nginx.comNode.js applications could crash at exit.
9281570Svbart@nginx.com</para>
9291570Svbart@nginx.com</change>
9301570Svbart@nginx.com
9311570Svbart@nginx.com<change type="bugfix">
9321570Svbart@nginx.com<para>
9331570Svbart@nginx.comthe Ruby module could be linked against a wrong library version.
9341570Svbart@nginx.com</para>
9351570Svbart@nginx.com</change>
9361570Svbart@nginx.com
9371570Svbart@nginx.com</changes>
9381570Svbart@nginx.com
9391570Svbart@nginx.com
9401570Svbart@nginx.com<changes apply="unit-php
9411570Svbart@nginx.com                unit-python unit-python2.7
9421570Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9431570Svbart@nginx.com                unit-python3.8
9441570Svbart@nginx.com                unit-go
9451570Svbart@nginx.com                unit-perl
9461570Svbart@nginx.com                unit-ruby
9471570Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9481491Svbart@nginx.com         ver="1.18.0" rev="1"
9491491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
9501491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9511491Svbart@nginx.com
9521491Svbart@nginx.com<change>
9531491Svbart@nginx.com<para>
9541491Svbart@nginx.comNGINX Unit updated to 1.18.0.
9551491Svbart@nginx.com</para>
9561491Svbart@nginx.com</change>
9571491Svbart@nginx.com
9581491Svbart@nginx.com</changes>
9591491Svbart@nginx.com
9601491Svbart@nginx.com
9611491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1"
9621491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
9631491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9641491Svbart@nginx.com
9651491Svbart@nginx.com<change type="feature">
9661491Svbart@nginx.com<para>
9671491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application.
9681491Svbart@nginx.com</para>
9691491Svbart@nginx.com</change>
9701491Svbart@nginx.com
9711491Svbart@nginx.com<change type="feature">
9721491Svbart@nginx.com<para>
9731491Svbart@nginx.commultiple "targets" in PHP applications.
9741491Svbart@nginx.com</para>
9751491Svbart@nginx.com</change>
9761491Svbart@nginx.com
9771491Svbart@nginx.com<change type="feature">
9781491Svbart@nginx.com<para>
9791491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options
9801491Svbart@nginx.comand in the "pass" option.
9811491Svbart@nginx.com</para>
9821491Svbart@nginx.com</change>
9831491Svbart@nginx.com
9841491Svbart@nginx.com</changes>
9851491Svbart@nginx.com
9861491Svbart@nginx.com
9871491Svbart@nginx.com<changes apply="unit-php
9881491Svbart@nginx.com                unit-python unit-python2.7
9891491Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9901491Svbart@nginx.com                unit-python3.8
9911491Svbart@nginx.com                unit-go
9921491Svbart@nginx.com                unit-perl
9931491Svbart@nginx.com                unit-ruby
9941491Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9951460Svbart@nginx.com         ver="1.17.0" rev="1"
9961460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
9971460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9981460Svbart@nginx.com
9991460Svbart@nginx.com<change>
10001460Svbart@nginx.com<para>
10011460Svbart@nginx.comNGINX Unit updated to 1.17.0.
10021460Svbart@nginx.com</para>
10031460Svbart@nginx.com</change>
10041460Svbart@nginx.com
10051460Svbart@nginx.com</changes>
10061460Svbart@nginx.com
10071460Svbart@nginx.com
10081460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1"
10091460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
10101460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10111460Svbart@nginx.com
10121460Svbart@nginx.com<change type="feature">
10131460Svbart@nginx.com<para>
10141460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external
10151460Svbart@nginx.comredirection.
10161460Svbart@nginx.com</para>
10171460Svbart@nginx.com</change>
10181460Svbart@nginx.com
10191460Svbart@nginx.com<change type="feature">
10201460Svbart@nginx.com<para>
10211460Svbart@nginx.comfractional weights support for upstream servers.
10221460Svbart@nginx.com</para>
10231460Svbart@nginx.com</change>
10241460Svbart@nginx.com
10251460Svbart@nginx.com<change type="bugfix">
10261460Svbart@nginx.com<para>
10271460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under
10281460Svbart@nginx.comhigh load.
10291460Svbart@nginx.com</para>
10301460Svbart@nginx.com</change>
10311460Svbart@nginx.com
10321460Svbart@nginx.com<change type="bugfix">
10331460Svbart@nginx.com<para>
10341460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0.
10351460Svbart@nginx.com</para>
10361460Svbart@nginx.com</change>
10371460Svbart@nginx.com
10381460Svbart@nginx.com<change type="bugfix">
10391460Svbart@nginx.com<para>
10401460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching
10411460Svbart@nginx.comopen connections limit.
10421460Svbart@nginx.com</para>
10431460Svbart@nginx.com</change>
10441460Svbart@nginx.com
10451460Svbart@nginx.com<change type="bugfix">
10461460Svbart@nginx.com<para>
10471460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log
10481460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0.
10491460Svbart@nginx.com</para>
10501460Svbart@nginx.com</change>
10511460Svbart@nginx.com
10521460Svbart@nginx.com<change type="bugfix">
10531460Svbart@nginx.com<para>
10541460Svbart@nginx.comexisting application processes didn't reopen the log file.
10551460Svbart@nginx.com</para>
10561460Svbart@nginx.com</change>
10571460Svbart@nginx.com
10581460Svbart@nginx.com<change type="bugfix">
10591460Svbart@nginx.com<para>
10601460Svbart@nginx.comincompatibility with some Node.js applications.
10611460Svbart@nginx.com</para>
10621460Svbart@nginx.com</change>
10631460Svbart@nginx.com
10641460Svbart@nginx.com<change type="bugfix">
10651460Svbart@nginx.com<para>
10661460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0.
10671460Svbart@nginx.com</para>
10681460Svbart@nginx.com</change>
10691460Svbart@nginx.com
10701460Svbart@nginx.com</changes>
10711460Svbart@nginx.com
10721460Svbart@nginx.com
10731460Svbart@nginx.com<changes apply="unit-php
10741460Svbart@nginx.com                unit-python unit-python2.7
10751460Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10761460Svbart@nginx.com                unit-python3.8
10771460Svbart@nginx.com                unit-go
10781460Svbart@nginx.com                unit-perl
10791460Svbart@nginx.com                unit-ruby
10801460Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10811404Svbart@nginx.com         ver="1.16.0" rev="1"
10821404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
10831404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10841404Svbart@nginx.com
10851404Svbart@nginx.com<change>
10861404Svbart@nginx.com<para>
10871404Svbart@nginx.comNGINX Unit updated to 1.16.0.
10881404Svbart@nginx.com</para>
10891404Svbart@nginx.com</change>
10901404Svbart@nginx.com
10911404Svbart@nginx.com</changes>
10921404Svbart@nginx.com
10931404Svbart@nginx.com
10941404Svbart@nginx.com<changes apply="unit" ver="1.16.0" rev="1"
10951404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
10961404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10971404Svbart@nginx.com
10981404Svbart@nginx.com<change type="feature">
10991404Svbart@nginx.com<para>
11001404Svbart@nginx.combasic load-balancing support with round-robin.
11011404Svbart@nginx.com</para>
11021404Svbart@nginx.com</change>
11031404Svbart@nginx.com
11041404Svbart@nginx.com<change type="feature">
11051404Svbart@nginx.com<para>
11061404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be
11071404Svbart@nginx.comserved from the "share" directory.
11081404Svbart@nginx.com</para>
11091404Svbart@nginx.com</change>
11101404Svbart@nginx.com
11111404Svbart@nginx.com<change type="feature">
11121404Svbart@nginx.com<para>
11131404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk.
11141404Svbart@nginx.com</para>
11151404Svbart@nginx.com</change>
11161404Svbart@nginx.com
11171404Svbart@nginx.com<change type="feature">
11181404Svbart@nginx.com<para>
11191404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON.
11201404Svbart@nginx.com</para>
11211404Svbart@nginx.com</change>
11221404Svbart@nginx.com
11231404Svbart@nginx.com<change type="bugfix">
11241404Svbart@nginx.com<para>
11251404Svbart@nginx.comnegative address matching in router might work improperly in combination with
11261404Svbart@nginx.comnon-negative patterns.
11271404Svbart@nginx.com</para>
11281404Svbart@nginx.com</change>
11291404Svbart@nginx.com
11301404Svbart@nginx.com<change type="bugfix">
11311404Svbart@nginx.com<para>
11321404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0.
11331404Svbart@nginx.com</para>
11341404Svbart@nginx.com</change>
11351404Svbart@nginx.com
11361404Svbart@nginx.com<change type="bugfix">
11371404Svbart@nginx.com<para>
11381404Svbart@nginx.comPHP 7.4 was broken if it was built with thread safety enabled.
11391404Svbart@nginx.com</para>
11401404Svbart@nginx.com</change>
11411404Svbart@nginx.com
11421404Svbart@nginx.com<change type="bugfix">
11431404Svbart@nginx.com<para>
11441404Svbart@nginx.comcompatibility issues with some Python applications.
11451404Svbart@nginx.com</para>
11461404Svbart@nginx.com</change>
11471404Svbart@nginx.com
11481404Svbart@nginx.com</changes>
11491404Svbart@nginx.com
11501404Svbart@nginx.com
11511404Svbart@nginx.com<changes apply="unit-php
11521404Svbart@nginx.com                unit-python unit-python2.7
11531404Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11541404Svbart@nginx.com                unit-python3.8
11551404Svbart@nginx.com                unit-go
11561404Svbart@nginx.com                unit-perl
11571404Svbart@nginx.com                unit-ruby
11581404Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11591357Svbart@nginx.com         ver="1.15.0" rev="1"
11601357Svbart@nginx.com         date="2020-02-06" time="18:00:00 +0300"
11611357Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11621357Svbart@nginx.com
11631357Svbart@nginx.com<change>
11641357Svbart@nginx.com<para>
11651357Svbart@nginx.comNGINX Unit updated to 1.15.0.
11661357Svbart@nginx.com</para>
11671357Svbart@nginx.com</change>
11681357Svbart@nginx.com
11691357Svbart@nginx.com</changes>
11701357Svbart@nginx.com
11711357Svbart@nginx.com
11721357Svbart@nginx.com<changes apply="unit" ver="1.15.0" rev="1"
11731357Svbart@nginx.com         date="2020-02-06" time="18:00:00 +0300"
11741357Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11751357Svbart@nginx.com
11761357Svbart@nginx.com<change type="change">
11771357Svbart@nginx.com<para>
11781357Svbart@nginx.comextensions of dynamically requested PHP scripts were restricted to ".php".
11791357Svbart@nginx.com</para>
11801357Svbart@nginx.com</change>
11811357Svbart@nginx.com
11821357Svbart@nginx.com<change type="feature">
11831357Svbart@nginx.com<para>
11841357Svbart@nginx.comcompatibility with Ruby 2.7.
11851357Svbart@nginx.com</para>
11861357Svbart@nginx.com</change>
11871357Svbart@nginx.com
1188