xref: /unit/docs/changes.xml (revision 2034)
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
82029SN/A<changes apply="unit-php
92029SN/A                unit-python unit-python2.7
102029SN/A                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
112029SN/A                unit-python3.8 unit-python3.9 unit-python3.10
122029SN/A                unit-go
132029SN/A                unit-perl
142029SN/A                unit-ruby
152029SN/A                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
162029SN/A                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
172029SN/A         ver="1.26.1" rev="1"
182029SN/A         date="" time=""
192029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
202029SN/A
212029SN/A<change>
222029SN/A<para>
232029SN/ANGINX Unit updated to 1.26.1.
242029SN/A</para>
252029SN/A</change>
262029SN/A
272029SN/A</changes>
282029SN/A
292029SN/A
302029SN/A<changes apply="unit" ver="1.26.1" rev="1"
312029SN/A         date="" time=""
322029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
332029SN/A
342033SN/A<change type="bugfix">
352033SN/A<para>
362033SN/Athe router process crash on reconfiguration if "access_log" was configured
372033SN/Awithout listeners.
382033SN/A</para>
392033SN/A</change>
402033SN/A
41*2034SN/A<change type="bugfix">
42*2034SN/A<para>
43*2034SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had
44*2034SN/Aappeared in 1.26.0.
45*2034SN/A</para>
46*2034SN/A</change>
47*2034SN/A
482029SN/A</changes>
492029SN/A
502029SN/A
511973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1"
522007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
531973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
541973Sdefan@nginx.com
551973Sdefan@nginx.com<change>
561973Sdefan@nginx.com<para>
571973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit.
581973Sdefan@nginx.com</para>
591973Sdefan@nginx.com</change>
601973Sdefan@nginx.com
611973Sdefan@nginx.com</changes>
621973Sdefan@nginx.com
631973Sdefan@nginx.com
641973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1"
652007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
661973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
671973Sdefan@nginx.com
681973Sdefan@nginx.com<change>
691973Sdefan@nginx.com<para>
701973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit.
711973Sdefan@nginx.com</para>
721973Sdefan@nginx.com</change>
731973Sdefan@nginx.com
741973Sdefan@nginx.com</changes>
751973Sdefan@nginx.com
761973Sdefan@nginx.com
771896Svbart@nginx.com<changes apply="unit-php
781896Svbart@nginx.com                unit-python unit-python2.7
791896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
801896Svbart@nginx.com                unit-python3.8 unit-python3.9
811896Svbart@nginx.com                unit-go
821896Svbart@nginx.com                unit-perl
831896Svbart@nginx.com                unit-ruby
841896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
851896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
861951Svbart@nginx.com         ver="1.26.0" rev="1"
872007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
881951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
891951Svbart@nginx.com
901951Svbart@nginx.com<change>
911951Svbart@nginx.com<para>
921951Svbart@nginx.comNGINX Unit updated to 1.26.0.
931951Svbart@nginx.com</para>
941951Svbart@nginx.com</change>
951951Svbart@nginx.com
961951Svbart@nginx.com</changes>
971951Svbart@nginx.com
981951Svbart@nginx.com
991951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
1002007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1011951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1021951Svbart@nginx.com
1031960Sz.hong@f5.com<change type="change">
1041960Sz.hong@f5.com<para>
1051960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
1061960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
1071960Sz.hong@f5.com</para>
1081960Sz.hong@f5.com</change>
1091960Sz.hong@f5.com
1101960Sz.hong@f5.com<change type="feature">
1111960Sz.hong@f5.com<para>
1122006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior
1132006Svbart@nginx.comwhen updating from previous versions.
1142006Svbart@nginx.com</para>
1152006Svbart@nginx.com</change>
1162006Svbart@nginx.com
1172006Svbart@nginx.com<change type="feature">
1182006Svbart@nginx.com<para>
1191960Sz.hong@f5.comvariables support in the "share" option.
1201960Sz.hong@f5.com</para>
1211960Sz.hong@f5.com</change>
1221960Sz.hong@f5.com
1231959Sz.hong@f5.com<change type="feature">
1241959Sz.hong@f5.com<para>
1251961Sz.hong@f5.commultiple paths in the "share" option.
1261961Sz.hong@f5.com</para>
1271961Sz.hong@f5.com</change>
1281961Sz.hong@f5.com
1291961Sz.hong@f5.com<change type="feature">
1301961Sz.hong@f5.com<para>
1311959Sz.hong@f5.comvariables support in the "chroot" option.
1321959Sz.hong@f5.com</para>
1331959Sz.hong@f5.com</change>
1341959Sz.hong@f5.com
1351969Sz.hong@f5.com<change type="feature">
1361969Sz.hong@f5.com<para>
1372006Svbart@nginx.comPHP opcache is shared between application processes.
1381969Sz.hong@f5.com</para>
1391969Sz.hong@f5.com</change>
1401969Sz.hong@f5.com
1411991Sz.hong@f5.com<change type="feature">
1421991Sz.hong@f5.com<para>
1431991Sz.hong@f5.comrequest routing by the query string.
1441991Sz.hong@f5.com</para>
1451991Sz.hong@f5.com</change>
1461991Sz.hong@f5.com
1471955Smax.romanov@nginx.com<change type="bugfix">
1481955Smax.romanov@nginx.com<para>
1492006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached
1502006Svbart@nginx.comby asynchronous or multithreaded apps.
1511955Smax.romanov@nginx.com</para>
1521955Smax.romanov@nginx.com</change>
1531955Smax.romanov@nginx.com
1541956Smax.romanov@nginx.com<change type="bugfix">
1551956Smax.romanov@nginx.com<para>
1561956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
1571956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
1581956Smax.romanov@nginx.com</para>
1591956Smax.romanov@nginx.com</change>
1601956Smax.romanov@nginx.com
1611992Smax.romanov@nginx.com<change type="bugfix">
1621992Smax.romanov@nginx.com<para>
1632006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35.
1641992Smax.romanov@nginx.com</para>
1651992Smax.romanov@nginx.com</change>
1661992Smax.romanov@nginx.com
1671951Svbart@nginx.com</changes>
1681951Svbart@nginx.com
1691951Svbart@nginx.com
1701951Svbart@nginx.com<changes apply="unit-php
1711951Svbart@nginx.com                unit-python unit-python2.7
1721951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1731951Svbart@nginx.com                unit-python3.8 unit-python3.9
1741951Svbart@nginx.com                unit-go
1751951Svbart@nginx.com                unit-perl
1761951Svbart@nginx.com                unit-ruby
1771951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1781951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
1791896Svbart@nginx.com         ver="1.25.0" rev="1"
1801945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
1811896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1821896Svbart@nginx.com
1831896Svbart@nginx.com<change>
1841896Svbart@nginx.com<para>
1851896Svbart@nginx.comNGINX Unit updated to 1.25.0.
1861896Svbart@nginx.com</para>
1871896Svbart@nginx.com</change>
1881896Svbart@nginx.com
1891896Svbart@nginx.com</changes>
1901896Svbart@nginx.com
1911896Svbart@nginx.com
1921896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
1931945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
1941896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1951896Svbart@nginx.com
1961910So.canty@f5.com<change type="feature">
1971910So.canty@f5.com<para>
1981944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
1991942Sa.suvorov@f5.com</para>
2001942Sa.suvorov@f5.com</change>
2011942Sa.suvorov@f5.com
2021942Sa.suvorov@f5.com<change type="feature">
2031942Sa.suvorov@f5.com<para>
2041920Sa.suvorov@f5.comTLS sessions cache.
2051920Sa.suvorov@f5.com</para>
2061920Sa.suvorov@f5.com</change>
2071920Sa.suvorov@f5.com
2081920Sa.suvorov@f5.com<change type="feature">
2091920Sa.suvorov@f5.com<para>
2101944Svbart@nginx.comTLS session tickets.
2111910So.canty@f5.com</para>
2121910So.canty@f5.com</change>
2131910So.canty@f5.com
2141926Smax.romanov@nginx.com<change type="feature">
2151926Smax.romanov@nginx.com<para>
2161926Smax.romanov@nginx.comapplication restart control.
2171926Smax.romanov@nginx.com</para>
2181926Smax.romanov@nginx.com</change>
2191926Smax.romanov@nginx.com
2201936So.canty@f5.com<change type="feature">
2211936So.canty@f5.com<para>
2221944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
2231936So.canty@f5.com</para>
2241936So.canty@f5.com</change>
2251936So.canty@f5.com
2261907Smax.romanov@nginx.com<change type="bugfix">
2271907Smax.romanov@nginx.com<para>
2281944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
2291944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
2301921Sa.suvorov@f5.com</para>
2311921Sa.suvorov@f5.com</change>
2321921Sa.suvorov@f5.com
2331921Sa.suvorov@f5.com<change type="bugfix">
2341921Sa.suvorov@f5.com<para>
2351944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
2361944Svbart@nginx.combundles in a listener if the client did not use SNI.
2371907Smax.romanov@nginx.com</para>
2381907Smax.romanov@nginx.com</change>
2391907Smax.romanov@nginx.com
2401907Smax.romanov@nginx.com<change type="bugfix">
2411907Smax.romanov@nginx.com<para>
2421950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
2431915Smax.romanov@nginx.comreconfiguration.
2441915Smax.romanov@nginx.com</para>
2451915Smax.romanov@nginx.com</change>
2461915Smax.romanov@nginx.com
2471915Smax.romanov@nginx.com<change type="bugfix">
2481915Smax.romanov@nginx.com<para>
2491944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
2501944Svbart@nginx.comframework.
2511944Svbart@nginx.com</para>
2521944Svbart@nginx.com</change>
2531944Svbart@nginx.com
2541944Svbart@nginx.com<change type="bugfix">
2551944Svbart@nginx.com<para>
2561944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
2571944Svbart@nginx.comstopped or crashed.
2581907Smax.romanov@nginx.com</para>
2591907Smax.romanov@nginx.com</change>
2601907Smax.romanov@nginx.com
2611909So.canty@f5.com<change type="bugfix">
2621909So.canty@f5.com<para>
2631909So.canty@f5.comthe controller or router process could crash if the configuration contained
2641909So.canty@f5.coma full-form IPv6 in a listener address.
2651909So.canty@f5.com</para>
2661909So.canty@f5.com</change>
2671909So.canty@f5.com
2681916Smax.romanov@nginx.com<change type="bugfix">
2691916Smax.romanov@nginx.com<para>
2701929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
2711929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
2721929Sz.hong@f5.com</para>
2731929Sz.hong@f5.com</change>
2741929Sz.hong@f5.com
2751930So.canty@f5.com<change type="bugfix">
2761930So.canty@f5.com<para>
2771944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
2781944Svbart@nginx.comor destination address patterns.
2791930So.canty@f5.com</para>
2801930So.canty@f5.com</change>
2811930So.canty@f5.com
2821896Svbart@nginx.com</changes>
2831896Svbart@nginx.com
2841896Svbart@nginx.com
2851887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
2861891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2871887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2881887Sdefan@nginx.com
2891887Sdefan@nginx.com<change>
2901887Sdefan@nginx.com<para>
2911887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
2921887Sdefan@nginx.com</para>
2931887Sdefan@nginx.com</change>
2941887Sdefan@nginx.com
2951887Sdefan@nginx.com</changes>
2961887Sdefan@nginx.com
2971887Sdefan@nginx.com
2981887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
2991891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3001887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3011887Sdefan@nginx.com
3021887Sdefan@nginx.com<change>
3031887Sdefan@nginx.com<para>
3041887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
3051887Sdefan@nginx.com</para>
3061887Sdefan@nginx.com</change>
3071887Sdefan@nginx.com
3081887Sdefan@nginx.com</changes>
3091887Sdefan@nginx.com
3101887Sdefan@nginx.com
3111834Svbart@nginx.com<changes apply="unit-php
3121834Svbart@nginx.com                unit-python unit-python2.7
3131834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3141834Svbart@nginx.com                unit-python3.8 unit-python3.9
3151834Svbart@nginx.com                unit-go
3161834Svbart@nginx.com                unit-perl
3171834Svbart@nginx.com                unit-ruby
3181834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3191834Svbart@nginx.com                unit-jsc14 unit-jsc15"
3201839Svbart@nginx.com         ver="1.24.0" rev="1"
3211891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3221839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3231839Svbart@nginx.com
3241839Svbart@nginx.com<change>
3251839Svbart@nginx.com<para>
3261839Svbart@nginx.comNGINX Unit updated to 1.24.0.
3271839Svbart@nginx.com</para>
3281839Svbart@nginx.com</change>
3291839Svbart@nginx.com
3301839Svbart@nginx.com</changes>
3311839Svbart@nginx.com
3321839Svbart@nginx.com
3331839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
3341891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3351839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3361839Svbart@nginx.com
3371882So.canty@f5.com<change type="change">
3381882So.canty@f5.com<para>
3391882So.canty@f5.comPHP added to the default MIME type list.
3401882So.canty@f5.com</para>
3411882So.canty@f5.com</change>
3421882So.canty@f5.com
3431855Sz.hong@f5.com<change type="feature">
3441855Sz.hong@f5.com<para>
3451885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
3461885Sa.suvorov@f5.com</para>
3471885Sa.suvorov@f5.com</change>
3481885Sa.suvorov@f5.com
3491885Sa.suvorov@f5.com<change type="feature">
3501885Sa.suvorov@f5.com<para>
3511890Svbart@nginx.comthe ability to limit static file serving by MIME types.
3521890Svbart@nginx.com</para>
3531890Svbart@nginx.com</change>
3541890Svbart@nginx.com
3551890Svbart@nginx.com<change type="feature">
3561890Svbart@nginx.com<para>
3571890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
3581890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
3591872So.canty@f5.com</para>
3601872So.canty@f5.com</change>
3611872So.canty@f5.com
3621872So.canty@f5.com<change type="feature">
3631872So.canty@f5.com<para>
3641889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
3651889Sartem.konev@nginx.comNode.js.
3661865So.canty@f5.com</para>
3671865So.canty@f5.com</change>
3681865So.canty@f5.com
3691865So.canty@f5.com<change type="feature">
3701865So.canty@f5.com<para>
3711890Svbart@nginx.commultiple "targets" in Python applications.
3721855Sz.hong@f5.com</para>
3731855Sz.hong@f5.com</change>
3741855Sz.hong@f5.com
3751870So.canty@f5.com<change type="feature">
3761870So.canty@f5.com<para>
3771870So.canty@f5.comcompatibility with Ruby 3.0.
3781870So.canty@f5.com</para>
3791870So.canty@f5.com</change>
3801870So.canty@f5.com
3811861Svbart@nginx.com<change type="bugfix">
3821861Svbart@nginx.com<para>
3831889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
3841884Sa.suvorov@f5.com</para>
3851884Sa.suvorov@f5.com</change>
3861884Sa.suvorov@f5.com
3871884Sa.suvorov@f5.com<change type="bugfix">
3881884Sa.suvorov@f5.com<para>
3891861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
3901861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
3911861Svbart@nginx.com</para>
3921861Svbart@nginx.com</change>
3931861Svbart@nginx.com
3941839Svbart@nginx.com</changes>
3951839Svbart@nginx.com
3961839Svbart@nginx.com
3971839Svbart@nginx.com<changes apply="unit-php
3981839Svbart@nginx.com                unit-python unit-python2.7
3991839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4001839Svbart@nginx.com                unit-python3.8 unit-python3.9
4011839Svbart@nginx.com                unit-go
4021839Svbart@nginx.com                unit-perl
4031839Svbart@nginx.com                unit-ruby
4041839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4051839Svbart@nginx.com                unit-jsc14 unit-jsc15"
4061834Svbart@nginx.com         ver="1.23.0" rev="1"
4071834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
4081834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4091834Svbart@nginx.com
4101834Svbart@nginx.com<change>
4111834Svbart@nginx.com<para>
4121834Svbart@nginx.comNGINX Unit updated to 1.23.0.
4131834Svbart@nginx.com</para>
4141834Svbart@nginx.com</change>
4151834Svbart@nginx.com
4161834Svbart@nginx.com</changes>
4171834Svbart@nginx.com
4181834Svbart@nginx.com
4191806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
4201834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
4211806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4221806Svbart@nginx.com
4231825Sthresh@nginx.com<change type="feature">
4241825Sthresh@nginx.com<para>
4251833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
4261828Sa.suvorov@f5.comIndication (SNI) TLS extension.
4271828Sa.suvorov@f5.com</para>
4281828Sa.suvorov@f5.com</change>
4291828Sa.suvorov@f5.com
4301828Sa.suvorov@f5.com<change type="feature">
4311828Sa.suvorov@f5.com<para>
4321833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
4331833Sartem.konev@nginx.cominstallation.
4341825Sthresh@nginx.com</para>
4351825Sthresh@nginx.com</change>
4361825Sthresh@nginx.com
4371811Smax.romanov@nginx.com<change type="bugfix">
4381811Smax.romanov@nginx.com<para>
4391812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
4401812Svbart@nginx.comappeared in 1.17.0.
4411812Svbart@nginx.com</para>
4421812Svbart@nginx.com</change>
4431812Svbart@nginx.com
4441812Svbart@nginx.com<change type="bugfix">
4451812Svbart@nginx.com<para>
4461833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
4471812Svbart@nginx.comappeared in 1.6.
4481812Svbart@nginx.com</para>
4491812Svbart@nginx.com</change>
4501812Svbart@nginx.com
4511812Svbart@nginx.com<change type="bugfix">
4521812Svbart@nginx.com<para>
4531833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
4541832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
4551832Smax.romanov@nginx.com</para>
4561832Smax.romanov@nginx.com</change>
4571832Smax.romanov@nginx.com
4581832Smax.romanov@nginx.com<change type="bugfix">
4591832Smax.romanov@nginx.com<para>
4601833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
4611811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
4621811Smax.romanov@nginx.com</para>
4631811Smax.romanov@nginx.com</change>
4641806Svbart@nginx.com
4651813Svbart@nginx.com<change type="bugfix">
4661813Svbart@nginx.com<para>
4671813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
4681813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
4691813Svbart@nginx.com</para>
4701813Svbart@nginx.com</change>
4711813Svbart@nginx.com
4721814Svbart@nginx.com<change type="bugfix">
4731814Svbart@nginx.com<para>
4741820Svbart@nginx.comthe controller process could crash while requesting information about a
4751820Svbart@nginx.comcertificate with a non-DNS SAN entry.
4761820Svbart@nginx.com</para>
4771820Svbart@nginx.com</change>
4781820Svbart@nginx.com
4791820Svbart@nginx.com<change type="bugfix">
4801820Svbart@nginx.com<para>
4811822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
4821833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
4831822Svbart@nginx.com</para>
4841822Svbart@nginx.com</change>
4851822Svbart@nginx.com
4861822Svbart@nginx.com<change type="bugfix">
4871822Svbart@nginx.com<para>
4881833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
4891833Sartem.konev@nginx.comclass.
4901814Svbart@nginx.com</para>
4911814Svbart@nginx.com</change>
4921814Svbart@nginx.com
4931815Svbart@nginx.com<change type="bugfix">
4941815Svbart@nginx.com<para>
4951815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
4961815Svbart@nginx.comappeared in 1.22.0.
4971815Svbart@nginx.com</para>
4981815Svbart@nginx.com</change>
4991815Svbart@nginx.com
5001806Svbart@nginx.com</changes>
5011806Svbart@nginx.com
5021806Svbart@nginx.com
5031798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
5041798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
5051798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5061798Sdefan@nginx.com
5071798Sdefan@nginx.com<change>
5081798Sdefan@nginx.com<para>
5091798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
5101798Sdefan@nginx.com</para>
5111798Sdefan@nginx.com</change>
5121798Sdefan@nginx.com
5131798Sdefan@nginx.com</changes>
5141798Sdefan@nginx.com
5151798Sdefan@nginx.com
5161763Sdefan@nginx.com<changes apply="unit-php
5171763Sdefan@nginx.com                unit-python unit-python2.7
5181763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5191763Sdefan@nginx.com                unit-python3.8
5201763Sdefan@nginx.com                unit-go
5211763Sdefan@nginx.com                unit-perl
5221763Sdefan@nginx.com                unit-ruby
5231763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
5241763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
5251763Sdefan@nginx.com         ver="1.22.0" rev="1"
5261793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
5271763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5281763Sdefan@nginx.com
5291763Sdefan@nginx.com<change>
5301763Sdefan@nginx.com<para>
5311763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
5321763Sdefan@nginx.com</para>
5331763Sdefan@nginx.com</change>
5341763Sdefan@nginx.com
5351763Sdefan@nginx.com</changes>
5361763Sdefan@nginx.com
5371763Sdefan@nginx.com
5381727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
5391793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
5401727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5411727Svbart@nginx.com
5421759Svbart@nginx.com<change type="feature">
5431759Svbart@nginx.com<para>
5441792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
5451792Svbart@nginx.comcompliant with Stream API.
5461759Svbart@nginx.com</para>
5471759Svbart@nginx.com</change>
5481759Svbart@nginx.com
5491766Smax.romanov@nginx.com<change type="feature">
5501766Smax.romanov@nginx.com<para>
5511792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
5521792Svbart@nginx.comapps.
5531732Svbart@nginx.com</para>
5541732Svbart@nginx.com</change>
5551732Svbart@nginx.com
5561733Svbart@nginx.com<change type="bugfix">
5571733Svbart@nginx.com<para>
5581792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
5591792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
5601754Smax.romanov@nginx.com</para>
5611754Smax.romanov@nginx.com</change>
5621754Smax.romanov@nginx.com
5631755Smax.romanov@nginx.com<change type="bugfix">
5641755Smax.romanov@nginx.com<para>
5651790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
5661755Smax.romanov@nginx.comappeared in 1.19.0.
5671755Smax.romanov@nginx.com</para>
5681755Smax.romanov@nginx.com</change>
5691755Smax.romanov@nginx.com
5701756Smax.romanov@nginx.com<change type="bugfix">
5711756Smax.romanov@nginx.com<para>
5721790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
5731790Sartem.konev@nginx.comappeared in 1.19.0.
5741756Smax.romanov@nginx.com</para>
5751756Smax.romanov@nginx.com</change>
5761756Smax.romanov@nginx.com
5771760Smax.romanov@nginx.com<change type="bugfix">
5781760Smax.romanov@nginx.com<para>
5791792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
5801792Svbart@nginx.com</para>
5811792Svbart@nginx.com</change>
5821792Svbart@nginx.com
5831792Svbart@nginx.com<change type="bugfix">
5841792Svbart@nginx.com<para>
5851792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
5861792Svbart@nginx.commissing in the PHP module.
5871792Svbart@nginx.com</para>
5881792Svbart@nginx.com</change>
5891792Svbart@nginx.com
5901792Svbart@nginx.com<change type="bugfix">
5911792Svbart@nginx.com<para>
5921792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
5931792Svbart@nginx.com</para>
5941792Svbart@nginx.com</change>
5951792Svbart@nginx.com
5961792Svbart@nginx.com<change type="bugfix">
5971792Svbart@nginx.com<para>
5981792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
5991792Svbart@nginx.com</para>
6001792Svbart@nginx.com</change>
6011792Svbart@nginx.com
6021792Svbart@nginx.com<change type="bugfix">
6031792Svbart@nginx.com<para>
6041792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
6051792Svbart@nginx.comthe bug had appeared in 1.21.0.
6061760Smax.romanov@nginx.com</para>
6071760Smax.romanov@nginx.com</change>
6081760Smax.romanov@nginx.com
6091780Smax.romanov@nginx.com<change type="bugfix">
6101780Smax.romanov@nginx.com<para>
6111790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
6121790Sartem.konev@nginx.comWebSocket.
6131780Smax.romanov@nginx.com</para>
6141780Smax.romanov@nginx.com</change>
6151780Smax.romanov@nginx.com
6161789Smax.romanov@nginx.com<change type="bugfix">
6171789Smax.romanov@nginx.com<para>
6181789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
6191789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
6201789Smax.romanov@nginx.com</para>
6211789Smax.romanov@nginx.com</change>
6221789Smax.romanov@nginx.com
6231727Svbart@nginx.com</changes>
6241727Svbart@nginx.com
6251727Svbart@nginx.com
6261722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
6271722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6281722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6291722Svbart@nginx.com
6301722Svbart@nginx.com<change>
6311722Svbart@nginx.com<para>
6321722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
6331722Svbart@nginx.com</para>
6341722Svbart@nginx.com</change>
6351722Svbart@nginx.com
6361722Svbart@nginx.com</changes>
6371722Svbart@nginx.com
6381722Svbart@nginx.com
6391722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
6401722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6411722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6421722Svbart@nginx.com
6431722Svbart@nginx.com<change>
6441722Svbart@nginx.com<para>
6451722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
6461722Svbart@nginx.com</para>
6471722Svbart@nginx.com</change>
6481722Svbart@nginx.com
6491722Svbart@nginx.com</changes>
6501722Svbart@nginx.com
6511722Svbart@nginx.com
6521722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
6531722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6541722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6551722Svbart@nginx.com
6561722Svbart@nginx.com<change>
6571722Svbart@nginx.com<para>
6581722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
6591722Svbart@nginx.com</para>
6601722Svbart@nginx.com</change>
6611722Svbart@nginx.com
6621722Svbart@nginx.com</changes>
6631722Svbart@nginx.com
6641722Svbart@nginx.com
6651722Svbart@nginx.com<changes apply="unit-php
6661722Svbart@nginx.com                unit-python unit-python2.7
6671722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6681722Svbart@nginx.com                unit-python3.8
6691722Svbart@nginx.com                unit-go
6701722Svbart@nginx.com                unit-perl
6711722Svbart@nginx.com                unit-ruby
6721722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
6731722Svbart@nginx.com         ver="1.21.0" rev="1"
6741722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6751722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6761722Svbart@nginx.com
6771722Svbart@nginx.com<change>
6781722Svbart@nginx.com<para>
6791722Svbart@nginx.comNGINX Unit updated to 1.21.0.
6801722Svbart@nginx.com</para>
6811722Svbart@nginx.com</change>
6821722Svbart@nginx.com
6831722Svbart@nginx.com</changes>
6841722Svbart@nginx.com
6851722Svbart@nginx.com
6861722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
6871722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6881722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6891722Svbart@nginx.com
6901722Svbart@nginx.com<change type="change">
6911722Svbart@nginx.com<para>
6921722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
6931722Svbart@nginx.com</para>
6941722Svbart@nginx.com</change>
6951722Svbart@nginx.com
6961722Svbart@nginx.com<change type="change">
6971722Svbart@nginx.com<para>
6981722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
6991722Svbart@nginx.comnames.
7001722Svbart@nginx.com</para>
7011722Svbart@nginx.com</change>
7021722Svbart@nginx.com
7031722Svbart@nginx.com<change type="change">
7041722Svbart@nginx.com<para>
7051722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
7061722Svbart@nginx.comdefault.
7071722Svbart@nginx.com</para>
7081722Svbart@nginx.com</change>
7091722Svbart@nginx.com
7101722Svbart@nginx.com<change type="feature">
7111722Svbart@nginx.com<para>
7121722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
7131722Svbart@nginx.com</para>
7141722Svbart@nginx.com</change>
7151722Svbart@nginx.com
7161722Svbart@nginx.com<change type="feature">
7171722Svbart@nginx.com<para>
7181722Svbart@nginx.comregular expressions in route matching patterns.
7191722Svbart@nginx.com</para>
7201722Svbart@nginx.com</change>
7211722Svbart@nginx.com
7221722Svbart@nginx.com<change type="feature">
7231722Svbart@nginx.com<para>
7241722Svbart@nginx.comcompatibility with Python 3.9.
7251722Svbart@nginx.com</para>
7261722Svbart@nginx.com</change>
7271722Svbart@nginx.com
7281722Svbart@nginx.com<change type="feature">
7291722Svbart@nginx.com<para>
7301722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
7311722Svbart@nginx.com</para>
7321722Svbart@nginx.com</change>
7331722Svbart@nginx.com
7341722Svbart@nginx.com<change type="feature">
7351722Svbart@nginx.com<para>
7361722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
7371722Svbart@nginx.com</para>
7381722Svbart@nginx.com</change>
7391722Svbart@nginx.com
7401722Svbart@nginx.com<change type="feature">
7411722Svbart@nginx.com<para>
7421722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
7431722Svbart@nginx.comcontinues code execution without holding onto the client connection.
7441722Svbart@nginx.com</para>
7451722Svbart@nginx.com</change>
7461722Svbart@nginx.com
7471722Svbart@nginx.com<change type="feature">
7481722Svbart@nginx.com<para>
7491722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
7501722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
7511722Svbart@nginx.com</para>
7521722Svbart@nginx.com</change>
7531722Svbart@nginx.com
7541722Svbart@nginx.com<change type="feature">
7551722Svbart@nginx.com<para>
7561722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
7571722Svbart@nginx.commounting of eponymous filesystems.
7581722Svbart@nginx.com</para>
7591722Svbart@nginx.com</change>
7601722Svbart@nginx.com
7611722Svbart@nginx.com<change type="bugfix">
7621722Svbart@nginx.com<para>
7631722Svbart@nginx.comthe router process could crash when running Go applications under high load;
7641722Svbart@nginx.comthe bug had appeared in 1.19.0.
7651722Svbart@nginx.com</para>
7661722Svbart@nginx.com</change>
7671722Svbart@nginx.com
7681722Svbart@nginx.com<change type="bugfix">
7691722Svbart@nginx.com<para>
7701722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
7711722Svbart@nginx.com</para>
7721722Svbart@nginx.com</change>
7731722Svbart@nginx.com
7741722Svbart@nginx.com<change type="bugfix">
7751722Svbart@nginx.com<para>
7761722Svbart@nginx.comvarious compatibility issues in Java applications.
7771722Svbart@nginx.com</para>
7781722Svbart@nginx.com</change>
7791722Svbart@nginx.com
7801722Svbart@nginx.com<change type="bugfix">
7811722Svbart@nginx.com<para>
7821722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
7831722Svbart@nginx.comuse "rootfs" isolation.
7841722Svbart@nginx.com</para>
7851722Svbart@nginx.com</change>
7861722Svbart@nginx.com
7871722Svbart@nginx.com</changes>
7881722Svbart@nginx.com
7891722Svbart@nginx.com
7901330Svbart@nginx.com<changes apply="unit-php
7911330Svbart@nginx.com                unit-python unit-python2.7
7921330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7931330Svbart@nginx.com                unit-python3.8
7941330Svbart@nginx.com                unit-go
7951330Svbart@nginx.com                unit-perl
7961330Svbart@nginx.com                unit-ruby
7971330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
7981640Svbart@nginx.com         ver="1.20.0" rev="1"
7991640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
8001640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8011640Svbart@nginx.com
8021640Svbart@nginx.com<change>
8031640Svbart@nginx.com<para>
8041640Svbart@nginx.comNGINX Unit updated to 1.20.0.
8051640Svbart@nginx.com</para>
8061640Svbart@nginx.com</change>
8071640Svbart@nginx.com
8081640Svbart@nginx.com</changes>
8091640Svbart@nginx.com
8101640Svbart@nginx.com
8111640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
8121640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
8131640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8141640Svbart@nginx.com
8151640Svbart@nginx.com<change type="change">
8161640Svbart@nginx.com<para>
8171640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
8181640Svbart@nginx.comextensions from the host system.
8191640Svbart@nginx.com</para>
8201640Svbart@nginx.com</change>
8211640Svbart@nginx.com
8221640Svbart@nginx.com<change type="change">
8231640Svbart@nginx.com<para>
8241640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
8251640Svbart@nginx.com</para>
8261640Svbart@nginx.com</change>
8271640Svbart@nginx.com
8281643Svbart@nginx.com<change type="change">
8291643Svbart@nginx.com<para>
8301643Svbart@nginx.comfunctional tests migrated to the pytest framework.
8311643Svbart@nginx.com</para>
8321643Svbart@nginx.com</change>
8331643Svbart@nginx.com
8341640Svbart@nginx.com<change type="feature">
8351640Svbart@nginx.com<para>
8361640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
8371640Svbart@nginx.cominterface.
8381640Svbart@nginx.com</para>
8391640Svbart@nginx.com</change>
8401640Svbart@nginx.com
8411640Svbart@nginx.com<change type="feature">
8421640Svbart@nginx.com<para>
8431640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
8441640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
8451640Svbart@nginx.comspecification.
8461640Svbart@nginx.com</para>
8471640Svbart@nginx.com</change>
8481640Svbart@nginx.com
8491640Svbart@nginx.com<change type="feature">
8501640Svbart@nginx.com<para>
8511640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
8521640Svbart@nginx.comenvironments.
8531640Svbart@nginx.com</para>
8541640Svbart@nginx.com</change>
8551640Svbart@nginx.com
8561640Svbart@nginx.com<change type="feature">
8571640Svbart@nginx.com<para>
8581640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
8591640Svbart@nginx.com</para>
8601640Svbart@nginx.com</change>
8611640Svbart@nginx.com
8621640Svbart@nginx.com<change type="feature">
8631640Svbart@nginx.com<para>
8641640Svbart@nginx.comthe "callable" option sets Python application callable names.
8651640Svbart@nginx.com</para>
8661640Svbart@nginx.com</change>
8671640Svbart@nginx.com
8681640Svbart@nginx.com<change type="feature">
8691640Svbart@nginx.com<para>
8701640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
8711640Svbart@nginx.com</para>
8721640Svbart@nginx.com</change>
8731640Svbart@nginx.com
8741640Svbart@nginx.com<change type="feature">
8751640Svbart@nginx.com<para>
8761640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
8771640Svbart@nginx.comautomatic mounting of language module dependencies.
8781640Svbart@nginx.com</para>
8791640Svbart@nginx.com</change>
8801640Svbart@nginx.com
8811640Svbart@nginx.com<change type="bugfix">
8821640Svbart@nginx.com<para>
8831640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
8841640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
8851640Svbart@nginx.com</para>
8861640Svbart@nginx.com</change>
8871640Svbart@nginx.com
8881640Svbart@nginx.com<change type="bugfix">
8891640Svbart@nginx.com<para>
8901640Svbart@nginx.comthe router process could crash during reconfiguration.
8911640Svbart@nginx.com</para>
8921640Svbart@nginx.com</change>
8931640Svbart@nginx.com
8941640Svbart@nginx.com<change type="bugfix">
8951640Svbart@nginx.com<para>
8961640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
8971640Svbart@nginx.com</para>
8981640Svbart@nginx.com</change>
8991640Svbart@nginx.com
9001640Svbart@nginx.com<change type="bugfix">
9011640Svbart@nginx.com<para>
9021640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
9031640Svbart@nginx.comthe bug had appeared in 1.19.0.
9041640Svbart@nginx.com</para>
9051640Svbart@nginx.com</change>
9061640Svbart@nginx.com
9071640Svbart@nginx.com<change type="bugfix">
9081640Svbart@nginx.com<para>
9091640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
9101640Svbart@nginx.comthe bug had appeared in 1.16.0.
9111640Svbart@nginx.com</para>
9121640Svbart@nginx.com</change>
9131640Svbart@nginx.com
9141640Svbart@nginx.com</changes>
9151640Svbart@nginx.com
9161640Svbart@nginx.com
9171640Svbart@nginx.com<changes apply="unit-php
9181640Svbart@nginx.com                unit-python unit-python2.7
9191640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9201640Svbart@nginx.com                unit-python3.8
9211640Svbart@nginx.com                unit-go
9221640Svbart@nginx.com                unit-perl
9231640Svbart@nginx.com                unit-ruby
9241640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9251570Svbart@nginx.com         ver="1.19.0" rev="1"
9261570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
9271570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9281570Svbart@nginx.com
9291570Svbart@nginx.com<change>
9301570Svbart@nginx.com<para>
9311570Svbart@nginx.comNGINX Unit updated to 1.19.0.
9321570Svbart@nginx.com</para>
9331570Svbart@nginx.com</change>
9341570Svbart@nginx.com
9351570Svbart@nginx.com</changes>
9361570Svbart@nginx.com
9371570Svbart@nginx.com
9381570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1"
9391570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
9401570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9411570Svbart@nginx.com
9421570Svbart@nginx.com<change type="feature">
9431570Svbart@nginx.com<para>
9441570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
9451570Svbart@nginx.comincrease performance, and improve scalability.
9461570Svbart@nginx.com</para>
9471570Svbart@nginx.com</change>
9481570Svbart@nginx.com
9491570Svbart@nginx.com<change type="feature">
9501570Svbart@nginx.com<para>
9511570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns.
9521570Svbart@nginx.com</para>
9531570Svbart@nginx.com</change>
9541570Svbart@nginx.com
9551570Svbart@nginx.com<change type="feature">
9561570Svbart@nginx.com<para>
9571570Svbart@nginx.comchunked transfer encoding in proxy responses.
9581570Svbart@nginx.com</para>
9591570Svbart@nginx.com</change>
9601570Svbart@nginx.com
9611570Svbart@nginx.com<change type="feature">
9621570Svbart@nginx.com<para>
9631570Svbart@nginx.combasic variables support in the "pass" option.
9641570Svbart@nginx.com</para>
9651570Svbart@nginx.com</change>
9661570Svbart@nginx.com
9671570Svbart@nginx.com<change type="feature">
9681570Svbart@nginx.com<para>
9691570Svbart@nginx.comcompatibility with PHP 8 Beta 1.
9701570Svbart@nginx.comThanks to Remi Collet.
9711570Svbart@nginx.com</para>
9721570Svbart@nginx.com</change>
9731570Svbart@nginx.com
9741570Svbart@nginx.com<change type="bugfix">
9751570Svbart@nginx.com<para>
9761570Svbart@nginx.comthe router process could crash while passing requests to an application under
9771570Svbart@nginx.comhigh load.
9781570Svbart@nginx.com</para>
9791570Svbart@nginx.com</change>
9801570Svbart@nginx.com
9811570Svbart@nginx.com<change type="bugfix">
9821570Svbart@nginx.com<para>
9831570Svbart@nginx.coma number of language modules failed to build on some systems;
9841570Svbart@nginx.comthe bug had appeared in 1.18.0.
9851570Svbart@nginx.com</para>
9861570Svbart@nginx.com</change>
9871570Svbart@nginx.com
9881570Svbart@nginx.com<change type="bugfix">
9891570Svbart@nginx.com<para>
9901570Svbart@nginx.comtime in error log messages from PHP applications could lag.
9911570Svbart@nginx.com</para>
9921570Svbart@nginx.com</change>
9931570Svbart@nginx.com
9941570Svbart@nginx.com<change type="bugfix">
9951570Svbart@nginx.com<para>
9961570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start;
9971570Svbart@nginx.comthe bug had appeared in 1.18.0.
9981570Svbart@nginx.com</para>
9991570Svbart@nginx.com</change>
10001570Svbart@nginx.com
10011570Svbart@nginx.com<change type="bugfix">
10021570Svbart@nginx.com<para>
10031570Svbart@nginx.commemory leak during reconfiguration.
10041570Svbart@nginx.com</para>
10051570Svbart@nginx.com</change>
10061570Svbart@nginx.com
10071570Svbart@nginx.com<change type="bugfix">
10081570Svbart@nginx.com<para>
10091570Svbart@nginx.comthe daemon didn't start without language modules;
10101570Svbart@nginx.comthe bug had appeared in 1.18.0.
10111570Svbart@nginx.com</para>
10121570Svbart@nginx.com</change>
10131570Svbart@nginx.com
10141570Svbart@nginx.com<change type="bugfix">
10151570Svbart@nginx.com<para>
10161570Svbart@nginx.comthe router process could crash at exit.
10171570Svbart@nginx.com</para>
10181570Svbart@nginx.com</change>
10191570Svbart@nginx.com
10201570Svbart@nginx.com<change type="bugfix">
10211570Svbart@nginx.com<para>
10221570Svbart@nginx.comNode.js applications could crash at exit.
10231570Svbart@nginx.com</para>
10241570Svbart@nginx.com</change>
10251570Svbart@nginx.com
10261570Svbart@nginx.com<change type="bugfix">
10271570Svbart@nginx.com<para>
10281570Svbart@nginx.comthe Ruby module could be linked against a wrong library version.
10291570Svbart@nginx.com</para>
10301570Svbart@nginx.com</change>
10311570Svbart@nginx.com
10321570Svbart@nginx.com</changes>
10331570Svbart@nginx.com
10341570Svbart@nginx.com
10351570Svbart@nginx.com<changes apply="unit-php
10361570Svbart@nginx.com                unit-python unit-python2.7
10371570Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10381570Svbart@nginx.com                unit-python3.8
10391570Svbart@nginx.com                unit-go
10401570Svbart@nginx.com                unit-perl
10411570Svbart@nginx.com                unit-ruby
10421570Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10431491Svbart@nginx.com         ver="1.18.0" rev="1"
10441491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
10451491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10461491Svbart@nginx.com
10471491Svbart@nginx.com<change>
10481491Svbart@nginx.com<para>
10491491Svbart@nginx.comNGINX Unit updated to 1.18.0.
10501491Svbart@nginx.com</para>
10511491Svbart@nginx.com</change>
10521491Svbart@nginx.com
10531491Svbart@nginx.com</changes>
10541491Svbart@nginx.com
10551491Svbart@nginx.com
10561491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1"
10571491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
10581491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10591491Svbart@nginx.com
10601491Svbart@nginx.com<change type="feature">
10611491Svbart@nginx.com<para>
10621491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application.
10631491Svbart@nginx.com</para>
10641491Svbart@nginx.com</change>
10651491Svbart@nginx.com
10661491Svbart@nginx.com<change type="feature">
10671491Svbart@nginx.com<para>
10681491Svbart@nginx.commultiple "targets" in PHP applications.
10691491Svbart@nginx.com</para>
10701491Svbart@nginx.com</change>
10711491Svbart@nginx.com
10721491Svbart@nginx.com<change type="feature">
10731491Svbart@nginx.com<para>
10741491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options
10751491Svbart@nginx.comand in the "pass" option.
10761491Svbart@nginx.com</para>
10771491Svbart@nginx.com</change>
10781491Svbart@nginx.com
10791491Svbart@nginx.com</changes>
10801491Svbart@nginx.com
10811491Svbart@nginx.com
10821491Svbart@nginx.com<changes apply="unit-php
10831491Svbart@nginx.com                unit-python unit-python2.7
10841491Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10851491Svbart@nginx.com                unit-python3.8
10861491Svbart@nginx.com                unit-go
10871491Svbart@nginx.com                unit-perl
10881491Svbart@nginx.com                unit-ruby
10891491Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10901460Svbart@nginx.com         ver="1.17.0" rev="1"
10911460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
10921460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10931460Svbart@nginx.com
10941460Svbart@nginx.com<change>
10951460Svbart@nginx.com<para>
10961460Svbart@nginx.comNGINX Unit updated to 1.17.0.
10971460Svbart@nginx.com</para>
10981460Svbart@nginx.com</change>
10991460Svbart@nginx.com
11001460Svbart@nginx.com</changes>
11011460Svbart@nginx.com
11021460Svbart@nginx.com
11031460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1"
11041460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
11051460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11061460Svbart@nginx.com
11071460Svbart@nginx.com<change type="feature">
11081460Svbart@nginx.com<para>
11091460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external
11101460Svbart@nginx.comredirection.
11111460Svbart@nginx.com</para>
11121460Svbart@nginx.com</change>
11131460Svbart@nginx.com
11141460Svbart@nginx.com<change type="feature">
11151460Svbart@nginx.com<para>
11161460Svbart@nginx.comfractional weights support for upstream servers.
11171460Svbart@nginx.com</para>
11181460Svbart@nginx.com</change>
11191460Svbart@nginx.com
11201460Svbart@nginx.com<change type="bugfix">
11211460Svbart@nginx.com<para>
11221460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under
11231460Svbart@nginx.comhigh load.
11241460Svbart@nginx.com</para>
11251460Svbart@nginx.com</change>
11261460Svbart@nginx.com
11271460Svbart@nginx.com<change type="bugfix">
11281460Svbart@nginx.com<para>
11291460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0.
11301460Svbart@nginx.com</para>
11311460Svbart@nginx.com</change>
11321460Svbart@nginx.com
11331460Svbart@nginx.com<change type="bugfix">
11341460Svbart@nginx.com<para>
11351460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching
11361460Svbart@nginx.comopen connections limit.
11371460Svbart@nginx.com</para>
11381460Svbart@nginx.com</change>
11391460Svbart@nginx.com
11401460Svbart@nginx.com<change type="bugfix">
11411460Svbart@nginx.com<para>
11421460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log
11431460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0.
11441460Svbart@nginx.com</para>
11451460Svbart@nginx.com</change>
11461460Svbart@nginx.com
11471460Svbart@nginx.com<change type="bugfix">
11481460Svbart@nginx.com<para>
11491460Svbart@nginx.comexisting application processes didn't reopen the log file.
11501460Svbart@nginx.com</para>
11511460Svbart@nginx.com</change>
11521460Svbart@nginx.com
11531460Svbart@nginx.com<change type="bugfix">
11541460Svbart@nginx.com<para>
11551460Svbart@nginx.comincompatibility with some Node.js applications.
11561460Svbart@nginx.com</para>
11571460Svbart@nginx.com</change>
11581460Svbart@nginx.com
11591460Svbart@nginx.com<change type="bugfix">
11601460Svbart@nginx.com<para>
11611460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0.
11621460Svbart@nginx.com</para>
11631460Svbart@nginx.com</change>
11641460Svbart@nginx.com
11651460Svbart@nginx.com</changes>
11661460Svbart@nginx.com
11671460Svbart@nginx.com
11681460Svbart@nginx.com<changes apply="unit-php
11691460Svbart@nginx.com                unit-python unit-python2.7
11701460Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11711460Svbart@nginx.com                unit-python3.8
11721460Svbart@nginx.com                unit-go
11731460Svbart@nginx.com                unit-perl
11741460Svbart@nginx.com                unit-ruby
11751460Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11761404Svbart@nginx.com         ver="1.16.0" rev="1"
11771404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
11781404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1179