xref: /unit/docs/changes.xml (revision 2035)
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
412034SN/A<change type="bugfix">
422034SN/A<para>
432034SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had
442034SN/Aappeared in 1.26.0.
452034SN/A</para>
462034SN/A</change>
472034SN/A
48*2035SN/A<change type="bugfix">
49*2035SN/A<para>
50*2035SN/Aa segmentation fault occurred in the PHP module if chdir() or
51*2035SN/Afastcgi_finish_request() was called in the OPcache preloading script.
52*2035SN/A</para>
53*2035SN/A</change>
54*2035SN/A
552029SN/A</changes>
562029SN/A
572029SN/A
581973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1"
592007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
601973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
611973Sdefan@nginx.com
621973Sdefan@nginx.com<change>
631973Sdefan@nginx.com<para>
641973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit.
651973Sdefan@nginx.com</para>
661973Sdefan@nginx.com</change>
671973Sdefan@nginx.com
681973Sdefan@nginx.com</changes>
691973Sdefan@nginx.com
701973Sdefan@nginx.com
711973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1"
722007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
731973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
741973Sdefan@nginx.com
751973Sdefan@nginx.com<change>
761973Sdefan@nginx.com<para>
771973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit.
781973Sdefan@nginx.com</para>
791973Sdefan@nginx.com</change>
801973Sdefan@nginx.com
811973Sdefan@nginx.com</changes>
821973Sdefan@nginx.com
831973Sdefan@nginx.com
841896Svbart@nginx.com<changes apply="unit-php
851896Svbart@nginx.com                unit-python unit-python2.7
861896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
871896Svbart@nginx.com                unit-python3.8 unit-python3.9
881896Svbart@nginx.com                unit-go
891896Svbart@nginx.com                unit-perl
901896Svbart@nginx.com                unit-ruby
911896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
921896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
931951Svbart@nginx.com         ver="1.26.0" rev="1"
942007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
951951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
961951Svbart@nginx.com
971951Svbart@nginx.com<change>
981951Svbart@nginx.com<para>
991951Svbart@nginx.comNGINX Unit updated to 1.26.0.
1001951Svbart@nginx.com</para>
1011951Svbart@nginx.com</change>
1021951Svbart@nginx.com
1031951Svbart@nginx.com</changes>
1041951Svbart@nginx.com
1051951Svbart@nginx.com
1061951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
1072007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1081951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1091951Svbart@nginx.com
1101960Sz.hong@f5.com<change type="change">
1111960Sz.hong@f5.com<para>
1121960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
1131960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
1141960Sz.hong@f5.com</para>
1151960Sz.hong@f5.com</change>
1161960Sz.hong@f5.com
1171960Sz.hong@f5.com<change type="feature">
1181960Sz.hong@f5.com<para>
1192006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior
1202006Svbart@nginx.comwhen updating from previous versions.
1212006Svbart@nginx.com</para>
1222006Svbart@nginx.com</change>
1232006Svbart@nginx.com
1242006Svbart@nginx.com<change type="feature">
1252006Svbart@nginx.com<para>
1261960Sz.hong@f5.comvariables support in the "share" option.
1271960Sz.hong@f5.com</para>
1281960Sz.hong@f5.com</change>
1291960Sz.hong@f5.com
1301959Sz.hong@f5.com<change type="feature">
1311959Sz.hong@f5.com<para>
1321961Sz.hong@f5.commultiple paths in the "share" option.
1331961Sz.hong@f5.com</para>
1341961Sz.hong@f5.com</change>
1351961Sz.hong@f5.com
1361961Sz.hong@f5.com<change type="feature">
1371961Sz.hong@f5.com<para>
1381959Sz.hong@f5.comvariables support in the "chroot" option.
1391959Sz.hong@f5.com</para>
1401959Sz.hong@f5.com</change>
1411959Sz.hong@f5.com
1421969Sz.hong@f5.com<change type="feature">
1431969Sz.hong@f5.com<para>
1442006Svbart@nginx.comPHP opcache is shared between application processes.
1451969Sz.hong@f5.com</para>
1461969Sz.hong@f5.com</change>
1471969Sz.hong@f5.com
1481991Sz.hong@f5.com<change type="feature">
1491991Sz.hong@f5.com<para>
1501991Sz.hong@f5.comrequest routing by the query string.
1511991Sz.hong@f5.com</para>
1521991Sz.hong@f5.com</change>
1531991Sz.hong@f5.com
1541955Smax.romanov@nginx.com<change type="bugfix">
1551955Smax.romanov@nginx.com<para>
1562006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached
1572006Svbart@nginx.comby asynchronous or multithreaded apps.
1581955Smax.romanov@nginx.com</para>
1591955Smax.romanov@nginx.com</change>
1601955Smax.romanov@nginx.com
1611956Smax.romanov@nginx.com<change type="bugfix">
1621956Smax.romanov@nginx.com<para>
1631956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
1641956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
1651956Smax.romanov@nginx.com</para>
1661956Smax.romanov@nginx.com</change>
1671956Smax.romanov@nginx.com
1681992Smax.romanov@nginx.com<change type="bugfix">
1691992Smax.romanov@nginx.com<para>
1702006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35.
1711992Smax.romanov@nginx.com</para>
1721992Smax.romanov@nginx.com</change>
1731992Smax.romanov@nginx.com
1741951Svbart@nginx.com</changes>
1751951Svbart@nginx.com
1761951Svbart@nginx.com
1771951Svbart@nginx.com<changes apply="unit-php
1781951Svbart@nginx.com                unit-python unit-python2.7
1791951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1801951Svbart@nginx.com                unit-python3.8 unit-python3.9
1811951Svbart@nginx.com                unit-go
1821951Svbart@nginx.com                unit-perl
1831951Svbart@nginx.com                unit-ruby
1841951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1851951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
1861896Svbart@nginx.com         ver="1.25.0" rev="1"
1871945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
1881896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1891896Svbart@nginx.com
1901896Svbart@nginx.com<change>
1911896Svbart@nginx.com<para>
1921896Svbart@nginx.comNGINX Unit updated to 1.25.0.
1931896Svbart@nginx.com</para>
1941896Svbart@nginx.com</change>
1951896Svbart@nginx.com
1961896Svbart@nginx.com</changes>
1971896Svbart@nginx.com
1981896Svbart@nginx.com
1991896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
2001945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
2011896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2021896Svbart@nginx.com
2031910So.canty@f5.com<change type="feature">
2041910So.canty@f5.com<para>
2051944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
2061942Sa.suvorov@f5.com</para>
2071942Sa.suvorov@f5.com</change>
2081942Sa.suvorov@f5.com
2091942Sa.suvorov@f5.com<change type="feature">
2101942Sa.suvorov@f5.com<para>
2111920Sa.suvorov@f5.comTLS sessions cache.
2121920Sa.suvorov@f5.com</para>
2131920Sa.suvorov@f5.com</change>
2141920Sa.suvorov@f5.com
2151920Sa.suvorov@f5.com<change type="feature">
2161920Sa.suvorov@f5.com<para>
2171944Svbart@nginx.comTLS session tickets.
2181910So.canty@f5.com</para>
2191910So.canty@f5.com</change>
2201910So.canty@f5.com
2211926Smax.romanov@nginx.com<change type="feature">
2221926Smax.romanov@nginx.com<para>
2231926Smax.romanov@nginx.comapplication restart control.
2241926Smax.romanov@nginx.com</para>
2251926Smax.romanov@nginx.com</change>
2261926Smax.romanov@nginx.com
2271936So.canty@f5.com<change type="feature">
2281936So.canty@f5.com<para>
2291944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
2301936So.canty@f5.com</para>
2311936So.canty@f5.com</change>
2321936So.canty@f5.com
2331907Smax.romanov@nginx.com<change type="bugfix">
2341907Smax.romanov@nginx.com<para>
2351944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
2361944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
2371921Sa.suvorov@f5.com</para>
2381921Sa.suvorov@f5.com</change>
2391921Sa.suvorov@f5.com
2401921Sa.suvorov@f5.com<change type="bugfix">
2411921Sa.suvorov@f5.com<para>
2421944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
2431944Svbart@nginx.combundles in a listener if the client did not use SNI.
2441907Smax.romanov@nginx.com</para>
2451907Smax.romanov@nginx.com</change>
2461907Smax.romanov@nginx.com
2471907Smax.romanov@nginx.com<change type="bugfix">
2481907Smax.romanov@nginx.com<para>
2491950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
2501915Smax.romanov@nginx.comreconfiguration.
2511915Smax.romanov@nginx.com</para>
2521915Smax.romanov@nginx.com</change>
2531915Smax.romanov@nginx.com
2541915Smax.romanov@nginx.com<change type="bugfix">
2551915Smax.romanov@nginx.com<para>
2561944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
2571944Svbart@nginx.comframework.
2581944Svbart@nginx.com</para>
2591944Svbart@nginx.com</change>
2601944Svbart@nginx.com
2611944Svbart@nginx.com<change type="bugfix">
2621944Svbart@nginx.com<para>
2631944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
2641944Svbart@nginx.comstopped or crashed.
2651907Smax.romanov@nginx.com</para>
2661907Smax.romanov@nginx.com</change>
2671907Smax.romanov@nginx.com
2681909So.canty@f5.com<change type="bugfix">
2691909So.canty@f5.com<para>
2701909So.canty@f5.comthe controller or router process could crash if the configuration contained
2711909So.canty@f5.coma full-form IPv6 in a listener address.
2721909So.canty@f5.com</para>
2731909So.canty@f5.com</change>
2741909So.canty@f5.com
2751916Smax.romanov@nginx.com<change type="bugfix">
2761916Smax.romanov@nginx.com<para>
2771929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
2781929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
2791929Sz.hong@f5.com</para>
2801929Sz.hong@f5.com</change>
2811929Sz.hong@f5.com
2821930So.canty@f5.com<change type="bugfix">
2831930So.canty@f5.com<para>
2841944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
2851944Svbart@nginx.comor destination address patterns.
2861930So.canty@f5.com</para>
2871930So.canty@f5.com</change>
2881930So.canty@f5.com
2891896Svbart@nginx.com</changes>
2901896Svbart@nginx.com
2911896Svbart@nginx.com
2921887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
2931891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2941887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2951887Sdefan@nginx.com
2961887Sdefan@nginx.com<change>
2971887Sdefan@nginx.com<para>
2981887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
2991887Sdefan@nginx.com</para>
3001887Sdefan@nginx.com</change>
3011887Sdefan@nginx.com
3021887Sdefan@nginx.com</changes>
3031887Sdefan@nginx.com
3041887Sdefan@nginx.com
3051887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
3061891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3071887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3081887Sdefan@nginx.com
3091887Sdefan@nginx.com<change>
3101887Sdefan@nginx.com<para>
3111887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
3121887Sdefan@nginx.com</para>
3131887Sdefan@nginx.com</change>
3141887Sdefan@nginx.com
3151887Sdefan@nginx.com</changes>
3161887Sdefan@nginx.com
3171887Sdefan@nginx.com
3181834Svbart@nginx.com<changes apply="unit-php
3191834Svbart@nginx.com                unit-python unit-python2.7
3201834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3211834Svbart@nginx.com                unit-python3.8 unit-python3.9
3221834Svbart@nginx.com                unit-go
3231834Svbart@nginx.com                unit-perl
3241834Svbart@nginx.com                unit-ruby
3251834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3261834Svbart@nginx.com                unit-jsc14 unit-jsc15"
3271839Svbart@nginx.com         ver="1.24.0" rev="1"
3281891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3291839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3301839Svbart@nginx.com
3311839Svbart@nginx.com<change>
3321839Svbart@nginx.com<para>
3331839Svbart@nginx.comNGINX Unit updated to 1.24.0.
3341839Svbart@nginx.com</para>
3351839Svbart@nginx.com</change>
3361839Svbart@nginx.com
3371839Svbart@nginx.com</changes>
3381839Svbart@nginx.com
3391839Svbart@nginx.com
3401839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
3411891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3421839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3431839Svbart@nginx.com
3441882So.canty@f5.com<change type="change">
3451882So.canty@f5.com<para>
3461882So.canty@f5.comPHP added to the default MIME type list.
3471882So.canty@f5.com</para>
3481882So.canty@f5.com</change>
3491882So.canty@f5.com
3501855Sz.hong@f5.com<change type="feature">
3511855Sz.hong@f5.com<para>
3521885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
3531885Sa.suvorov@f5.com</para>
3541885Sa.suvorov@f5.com</change>
3551885Sa.suvorov@f5.com
3561885Sa.suvorov@f5.com<change type="feature">
3571885Sa.suvorov@f5.com<para>
3581890Svbart@nginx.comthe ability to limit static file serving by MIME types.
3591890Svbart@nginx.com</para>
3601890Svbart@nginx.com</change>
3611890Svbart@nginx.com
3621890Svbart@nginx.com<change type="feature">
3631890Svbart@nginx.com<para>
3641890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
3651890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
3661872So.canty@f5.com</para>
3671872So.canty@f5.com</change>
3681872So.canty@f5.com
3691872So.canty@f5.com<change type="feature">
3701872So.canty@f5.com<para>
3711889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
3721889Sartem.konev@nginx.comNode.js.
3731865So.canty@f5.com</para>
3741865So.canty@f5.com</change>
3751865So.canty@f5.com
3761865So.canty@f5.com<change type="feature">
3771865So.canty@f5.com<para>
3781890Svbart@nginx.commultiple "targets" in Python applications.
3791855Sz.hong@f5.com</para>
3801855Sz.hong@f5.com</change>
3811855Sz.hong@f5.com
3821870So.canty@f5.com<change type="feature">
3831870So.canty@f5.com<para>
3841870So.canty@f5.comcompatibility with Ruby 3.0.
3851870So.canty@f5.com</para>
3861870So.canty@f5.com</change>
3871870So.canty@f5.com
3881861Svbart@nginx.com<change type="bugfix">
3891861Svbart@nginx.com<para>
3901889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
3911884Sa.suvorov@f5.com</para>
3921884Sa.suvorov@f5.com</change>
3931884Sa.suvorov@f5.com
3941884Sa.suvorov@f5.com<change type="bugfix">
3951884Sa.suvorov@f5.com<para>
3961861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
3971861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
3981861Svbart@nginx.com</para>
3991861Svbart@nginx.com</change>
4001861Svbart@nginx.com
4011839Svbart@nginx.com</changes>
4021839Svbart@nginx.com
4031839Svbart@nginx.com
4041839Svbart@nginx.com<changes apply="unit-php
4051839Svbart@nginx.com                unit-python unit-python2.7
4061839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4071839Svbart@nginx.com                unit-python3.8 unit-python3.9
4081839Svbart@nginx.com                unit-go
4091839Svbart@nginx.com                unit-perl
4101839Svbart@nginx.com                unit-ruby
4111839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4121839Svbart@nginx.com                unit-jsc14 unit-jsc15"
4131834Svbart@nginx.com         ver="1.23.0" rev="1"
4141834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
4151834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4161834Svbart@nginx.com
4171834Svbart@nginx.com<change>
4181834Svbart@nginx.com<para>
4191834Svbart@nginx.comNGINX Unit updated to 1.23.0.
4201834Svbart@nginx.com</para>
4211834Svbart@nginx.com</change>
4221834Svbart@nginx.com
4231834Svbart@nginx.com</changes>
4241834Svbart@nginx.com
4251834Svbart@nginx.com
4261806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
4271834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
4281806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4291806Svbart@nginx.com
4301825Sthresh@nginx.com<change type="feature">
4311825Sthresh@nginx.com<para>
4321833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
4331828Sa.suvorov@f5.comIndication (SNI) TLS extension.
4341828Sa.suvorov@f5.com</para>
4351828Sa.suvorov@f5.com</change>
4361828Sa.suvorov@f5.com
4371828Sa.suvorov@f5.com<change type="feature">
4381828Sa.suvorov@f5.com<para>
4391833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
4401833Sartem.konev@nginx.cominstallation.
4411825Sthresh@nginx.com</para>
4421825Sthresh@nginx.com</change>
4431825Sthresh@nginx.com
4441811Smax.romanov@nginx.com<change type="bugfix">
4451811Smax.romanov@nginx.com<para>
4461812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
4471812Svbart@nginx.comappeared in 1.17.0.
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 connection leak occurred on premature TLS connection close; the bug had
4541812Svbart@nginx.comappeared in 1.6.
4551812Svbart@nginx.com</para>
4561812Svbart@nginx.com</change>
4571812Svbart@nginx.com
4581812Svbart@nginx.com<change type="bugfix">
4591812Svbart@nginx.com<para>
4601833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
4611832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
4621832Smax.romanov@nginx.com</para>
4631832Smax.romanov@nginx.com</change>
4641832Smax.romanov@nginx.com
4651832Smax.romanov@nginx.com<change type="bugfix">
4661832Smax.romanov@nginx.com<para>
4671833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
4681811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
4691811Smax.romanov@nginx.com</para>
4701811Smax.romanov@nginx.com</change>
4711806Svbart@nginx.com
4721813Svbart@nginx.com<change type="bugfix">
4731813Svbart@nginx.com<para>
4741813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
4751813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
4761813Svbart@nginx.com</para>
4771813Svbart@nginx.com</change>
4781813Svbart@nginx.com
4791814Svbart@nginx.com<change type="bugfix">
4801814Svbart@nginx.com<para>
4811820Svbart@nginx.comthe controller process could crash while requesting information about a
4821820Svbart@nginx.comcertificate with a non-DNS SAN entry.
4831820Svbart@nginx.com</para>
4841820Svbart@nginx.com</change>
4851820Svbart@nginx.com
4861820Svbart@nginx.com<change type="bugfix">
4871820Svbart@nginx.com<para>
4881822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
4891833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
4901822Svbart@nginx.com</para>
4911822Svbart@nginx.com</change>
4921822Svbart@nginx.com
4931822Svbart@nginx.com<change type="bugfix">
4941822Svbart@nginx.com<para>
4951833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
4961833Sartem.konev@nginx.comclass.
4971814Svbart@nginx.com</para>
4981814Svbart@nginx.com</change>
4991814Svbart@nginx.com
5001815Svbart@nginx.com<change type="bugfix">
5011815Svbart@nginx.com<para>
5021815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
5031815Svbart@nginx.comappeared in 1.22.0.
5041815Svbart@nginx.com</para>
5051815Svbart@nginx.com</change>
5061815Svbart@nginx.com
5071806Svbart@nginx.com</changes>
5081806Svbart@nginx.com
5091806Svbart@nginx.com
5101798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
5111798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
5121798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5131798Sdefan@nginx.com
5141798Sdefan@nginx.com<change>
5151798Sdefan@nginx.com<para>
5161798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
5171798Sdefan@nginx.com</para>
5181798Sdefan@nginx.com</change>
5191798Sdefan@nginx.com
5201798Sdefan@nginx.com</changes>
5211798Sdefan@nginx.com
5221798Sdefan@nginx.com
5231763Sdefan@nginx.com<changes apply="unit-php
5241763Sdefan@nginx.com                unit-python unit-python2.7
5251763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5261763Sdefan@nginx.com                unit-python3.8
5271763Sdefan@nginx.com                unit-go
5281763Sdefan@nginx.com                unit-perl
5291763Sdefan@nginx.com                unit-ruby
5301763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
5311763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
5321763Sdefan@nginx.com         ver="1.22.0" rev="1"
5331793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
5341763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5351763Sdefan@nginx.com
5361763Sdefan@nginx.com<change>
5371763Sdefan@nginx.com<para>
5381763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
5391763Sdefan@nginx.com</para>
5401763Sdefan@nginx.com</change>
5411763Sdefan@nginx.com
5421763Sdefan@nginx.com</changes>
5431763Sdefan@nginx.com
5441763Sdefan@nginx.com
5451727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
5461793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
5471727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5481727Svbart@nginx.com
5491759Svbart@nginx.com<change type="feature">
5501759Svbart@nginx.com<para>
5511792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
5521792Svbart@nginx.comcompliant with Stream API.
5531759Svbart@nginx.com</para>
5541759Svbart@nginx.com</change>
5551759Svbart@nginx.com
5561766Smax.romanov@nginx.com<change type="feature">
5571766Smax.romanov@nginx.com<para>
5581792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
5591792Svbart@nginx.comapps.
5601732Svbart@nginx.com</para>
5611732Svbart@nginx.com</change>
5621732Svbart@nginx.com
5631733Svbart@nginx.com<change type="bugfix">
5641733Svbart@nginx.com<para>
5651792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
5661792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
5671754Smax.romanov@nginx.com</para>
5681754Smax.romanov@nginx.com</change>
5691754Smax.romanov@nginx.com
5701755Smax.romanov@nginx.com<change type="bugfix">
5711755Smax.romanov@nginx.com<para>
5721790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
5731755Smax.romanov@nginx.comappeared in 1.19.0.
5741755Smax.romanov@nginx.com</para>
5751755Smax.romanov@nginx.com</change>
5761755Smax.romanov@nginx.com
5771756Smax.romanov@nginx.com<change type="bugfix">
5781756Smax.romanov@nginx.com<para>
5791790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
5801790Sartem.konev@nginx.comappeared in 1.19.0.
5811756Smax.romanov@nginx.com</para>
5821756Smax.romanov@nginx.com</change>
5831756Smax.romanov@nginx.com
5841760Smax.romanov@nginx.com<change type="bugfix">
5851760Smax.romanov@nginx.com<para>
5861792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
5871792Svbart@nginx.com</para>
5881792Svbart@nginx.com</change>
5891792Svbart@nginx.com
5901792Svbart@nginx.com<change type="bugfix">
5911792Svbart@nginx.com<para>
5921792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
5931792Svbart@nginx.commissing in the PHP module.
5941792Svbart@nginx.com</para>
5951792Svbart@nginx.com</change>
5961792Svbart@nginx.com
5971792Svbart@nginx.com<change type="bugfix">
5981792Svbart@nginx.com<para>
5991792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
6001792Svbart@nginx.com</para>
6011792Svbart@nginx.com</change>
6021792Svbart@nginx.com
6031792Svbart@nginx.com<change type="bugfix">
6041792Svbart@nginx.com<para>
6051792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
6061792Svbart@nginx.com</para>
6071792Svbart@nginx.com</change>
6081792Svbart@nginx.com
6091792Svbart@nginx.com<change type="bugfix">
6101792Svbart@nginx.com<para>
6111792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
6121792Svbart@nginx.comthe bug had appeared in 1.21.0.
6131760Smax.romanov@nginx.com</para>
6141760Smax.romanov@nginx.com</change>
6151760Smax.romanov@nginx.com
6161780Smax.romanov@nginx.com<change type="bugfix">
6171780Smax.romanov@nginx.com<para>
6181790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
6191790Sartem.konev@nginx.comWebSocket.
6201780Smax.romanov@nginx.com</para>
6211780Smax.romanov@nginx.com</change>
6221780Smax.romanov@nginx.com
6231789Smax.romanov@nginx.com<change type="bugfix">
6241789Smax.romanov@nginx.com<para>
6251789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
6261789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
6271789Smax.romanov@nginx.com</para>
6281789Smax.romanov@nginx.com</change>
6291789Smax.romanov@nginx.com
6301727Svbart@nginx.com</changes>
6311727Svbart@nginx.com
6321727Svbart@nginx.com
6331722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
6341722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6351722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6361722Svbart@nginx.com
6371722Svbart@nginx.com<change>
6381722Svbart@nginx.com<para>
6391722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
6401722Svbart@nginx.com</para>
6411722Svbart@nginx.com</change>
6421722Svbart@nginx.com
6431722Svbart@nginx.com</changes>
6441722Svbart@nginx.com
6451722Svbart@nginx.com
6461722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
6471722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6481722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6491722Svbart@nginx.com
6501722Svbart@nginx.com<change>
6511722Svbart@nginx.com<para>
6521722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
6531722Svbart@nginx.com</para>
6541722Svbart@nginx.com</change>
6551722Svbart@nginx.com
6561722Svbart@nginx.com</changes>
6571722Svbart@nginx.com
6581722Svbart@nginx.com
6591722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
6601722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6611722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6621722Svbart@nginx.com
6631722Svbart@nginx.com<change>
6641722Svbart@nginx.com<para>
6651722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
6661722Svbart@nginx.com</para>
6671722Svbart@nginx.com</change>
6681722Svbart@nginx.com
6691722Svbart@nginx.com</changes>
6701722Svbart@nginx.com
6711722Svbart@nginx.com
6721722Svbart@nginx.com<changes apply="unit-php
6731722Svbart@nginx.com                unit-python unit-python2.7
6741722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6751722Svbart@nginx.com                unit-python3.8
6761722Svbart@nginx.com                unit-go
6771722Svbart@nginx.com                unit-perl
6781722Svbart@nginx.com                unit-ruby
6791722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
6801722Svbart@nginx.com         ver="1.21.0" rev="1"
6811722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6821722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6831722Svbart@nginx.com
6841722Svbart@nginx.com<change>
6851722Svbart@nginx.com<para>
6861722Svbart@nginx.comNGINX Unit updated to 1.21.0.
6871722Svbart@nginx.com</para>
6881722Svbart@nginx.com</change>
6891722Svbart@nginx.com
6901722Svbart@nginx.com</changes>
6911722Svbart@nginx.com
6921722Svbart@nginx.com
6931722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
6941722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6951722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6961722Svbart@nginx.com
6971722Svbart@nginx.com<change type="change">
6981722Svbart@nginx.com<para>
6991722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
7001722Svbart@nginx.com</para>
7011722Svbart@nginx.com</change>
7021722Svbart@nginx.com
7031722Svbart@nginx.com<change type="change">
7041722Svbart@nginx.com<para>
7051722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
7061722Svbart@nginx.comnames.
7071722Svbart@nginx.com</para>
7081722Svbart@nginx.com</change>
7091722Svbart@nginx.com
7101722Svbart@nginx.com<change type="change">
7111722Svbart@nginx.com<para>
7121722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
7131722Svbart@nginx.comdefault.
7141722Svbart@nginx.com</para>
7151722Svbart@nginx.com</change>
7161722Svbart@nginx.com
7171722Svbart@nginx.com<change type="feature">
7181722Svbart@nginx.com<para>
7191722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
7201722Svbart@nginx.com</para>
7211722Svbart@nginx.com</change>
7221722Svbart@nginx.com
7231722Svbart@nginx.com<change type="feature">
7241722Svbart@nginx.com<para>
7251722Svbart@nginx.comregular expressions in route matching patterns.
7261722Svbart@nginx.com</para>
7271722Svbart@nginx.com</change>
7281722Svbart@nginx.com
7291722Svbart@nginx.com<change type="feature">
7301722Svbart@nginx.com<para>
7311722Svbart@nginx.comcompatibility with Python 3.9.
7321722Svbart@nginx.com</para>
7331722Svbart@nginx.com</change>
7341722Svbart@nginx.com
7351722Svbart@nginx.com<change type="feature">
7361722Svbart@nginx.com<para>
7371722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
7381722Svbart@nginx.com</para>
7391722Svbart@nginx.com</change>
7401722Svbart@nginx.com
7411722Svbart@nginx.com<change type="feature">
7421722Svbart@nginx.com<para>
7431722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
7441722Svbart@nginx.com</para>
7451722Svbart@nginx.com</change>
7461722Svbart@nginx.com
7471722Svbart@nginx.com<change type="feature">
7481722Svbart@nginx.com<para>
7491722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
7501722Svbart@nginx.comcontinues code execution without holding onto the client connection.
7511722Svbart@nginx.com</para>
7521722Svbart@nginx.com</change>
7531722Svbart@nginx.com
7541722Svbart@nginx.com<change type="feature">
7551722Svbart@nginx.com<para>
7561722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
7571722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
7581722Svbart@nginx.com</para>
7591722Svbart@nginx.com</change>
7601722Svbart@nginx.com
7611722Svbart@nginx.com<change type="feature">
7621722Svbart@nginx.com<para>
7631722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
7641722Svbart@nginx.commounting of eponymous filesystems.
7651722Svbart@nginx.com</para>
7661722Svbart@nginx.com</change>
7671722Svbart@nginx.com
7681722Svbart@nginx.com<change type="bugfix">
7691722Svbart@nginx.com<para>
7701722Svbart@nginx.comthe router process could crash when running Go applications under high load;
7711722Svbart@nginx.comthe bug had appeared in 1.19.0.
7721722Svbart@nginx.com</para>
7731722Svbart@nginx.com</change>
7741722Svbart@nginx.com
7751722Svbart@nginx.com<change type="bugfix">
7761722Svbart@nginx.com<para>
7771722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
7781722Svbart@nginx.com</para>
7791722Svbart@nginx.com</change>
7801722Svbart@nginx.com
7811722Svbart@nginx.com<change type="bugfix">
7821722Svbart@nginx.com<para>
7831722Svbart@nginx.comvarious compatibility issues in Java applications.
7841722Svbart@nginx.com</para>
7851722Svbart@nginx.com</change>
7861722Svbart@nginx.com
7871722Svbart@nginx.com<change type="bugfix">
7881722Svbart@nginx.com<para>
7891722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
7901722Svbart@nginx.comuse "rootfs" isolation.
7911722Svbart@nginx.com</para>
7921722Svbart@nginx.com</change>
7931722Svbart@nginx.com
7941722Svbart@nginx.com</changes>
7951722Svbart@nginx.com
7961722Svbart@nginx.com
7971330Svbart@nginx.com<changes apply="unit-php
7981330Svbart@nginx.com                unit-python unit-python2.7
7991330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8001330Svbart@nginx.com                unit-python3.8
8011330Svbart@nginx.com                unit-go
8021330Svbart@nginx.com                unit-perl
8031330Svbart@nginx.com                unit-ruby
8041330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8051640Svbart@nginx.com         ver="1.20.0" rev="1"
8061640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
8071640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8081640Svbart@nginx.com
8091640Svbart@nginx.com<change>
8101640Svbart@nginx.com<para>
8111640Svbart@nginx.comNGINX Unit updated to 1.20.0.
8121640Svbart@nginx.com</para>
8131640Svbart@nginx.com</change>
8141640Svbart@nginx.com
8151640Svbart@nginx.com</changes>
8161640Svbart@nginx.com
8171640Svbart@nginx.com
8181640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
8191640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
8201640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8211640Svbart@nginx.com
8221640Svbart@nginx.com<change type="change">
8231640Svbart@nginx.com<para>
8241640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
8251640Svbart@nginx.comextensions from the host system.
8261640Svbart@nginx.com</para>
8271640Svbart@nginx.com</change>
8281640Svbart@nginx.com
8291640Svbart@nginx.com<change type="change">
8301640Svbart@nginx.com<para>
8311640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
8321640Svbart@nginx.com</para>
8331640Svbart@nginx.com</change>
8341640Svbart@nginx.com
8351643Svbart@nginx.com<change type="change">
8361643Svbart@nginx.com<para>
8371643Svbart@nginx.comfunctional tests migrated to the pytest framework.
8381643Svbart@nginx.com</para>
8391643Svbart@nginx.com</change>
8401643Svbart@nginx.com
8411640Svbart@nginx.com<change type="feature">
8421640Svbart@nginx.com<para>
8431640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
8441640Svbart@nginx.cominterface.
8451640Svbart@nginx.com</para>
8461640Svbart@nginx.com</change>
8471640Svbart@nginx.com
8481640Svbart@nginx.com<change type="feature">
8491640Svbart@nginx.com<para>
8501640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
8511640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
8521640Svbart@nginx.comspecification.
8531640Svbart@nginx.com</para>
8541640Svbart@nginx.com</change>
8551640Svbart@nginx.com
8561640Svbart@nginx.com<change type="feature">
8571640Svbart@nginx.com<para>
8581640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
8591640Svbart@nginx.comenvironments.
8601640Svbart@nginx.com</para>
8611640Svbart@nginx.com</change>
8621640Svbart@nginx.com
8631640Svbart@nginx.com<change type="feature">
8641640Svbart@nginx.com<para>
8651640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
8661640Svbart@nginx.com</para>
8671640Svbart@nginx.com</change>
8681640Svbart@nginx.com
8691640Svbart@nginx.com<change type="feature">
8701640Svbart@nginx.com<para>
8711640Svbart@nginx.comthe "callable" option sets Python application callable names.
8721640Svbart@nginx.com</para>
8731640Svbart@nginx.com</change>
8741640Svbart@nginx.com
8751640Svbart@nginx.com<change type="feature">
8761640Svbart@nginx.com<para>
8771640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
8781640Svbart@nginx.com</para>
8791640Svbart@nginx.com</change>
8801640Svbart@nginx.com
8811640Svbart@nginx.com<change type="feature">
8821640Svbart@nginx.com<para>
8831640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
8841640Svbart@nginx.comautomatic mounting of language module dependencies.
8851640Svbart@nginx.com</para>
8861640Svbart@nginx.com</change>
8871640Svbart@nginx.com
8881640Svbart@nginx.com<change type="bugfix">
8891640Svbart@nginx.com<para>
8901640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
8911640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
8921640Svbart@nginx.com</para>
8931640Svbart@nginx.com</change>
8941640Svbart@nginx.com
8951640Svbart@nginx.com<change type="bugfix">
8961640Svbart@nginx.com<para>
8971640Svbart@nginx.comthe router process could crash during reconfiguration.
8981640Svbart@nginx.com</para>
8991640Svbart@nginx.com</change>
9001640Svbart@nginx.com
9011640Svbart@nginx.com<change type="bugfix">
9021640Svbart@nginx.com<para>
9031640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
9041640Svbart@nginx.com</para>
9051640Svbart@nginx.com</change>
9061640Svbart@nginx.com
9071640Svbart@nginx.com<change type="bugfix">
9081640Svbart@nginx.com<para>
9091640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
9101640Svbart@nginx.comthe bug had appeared in 1.19.0.
9111640Svbart@nginx.com</para>
9121640Svbart@nginx.com</change>
9131640Svbart@nginx.com
9141640Svbart@nginx.com<change type="bugfix">
9151640Svbart@nginx.com<para>
9161640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
9171640Svbart@nginx.comthe bug had appeared in 1.16.0.
9181640Svbart@nginx.com</para>
9191640Svbart@nginx.com</change>
9201640Svbart@nginx.com
9211640Svbart@nginx.com</changes>
9221640Svbart@nginx.com
9231640Svbart@nginx.com
9241640Svbart@nginx.com<changes apply="unit-php
9251640Svbart@nginx.com                unit-python unit-python2.7
9261640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9271640Svbart@nginx.com                unit-python3.8
9281640Svbart@nginx.com                unit-go
9291640Svbart@nginx.com                unit-perl
9301640Svbart@nginx.com                unit-ruby
9311640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9321570Svbart@nginx.com         ver="1.19.0" rev="1"
9331570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
9341570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9351570Svbart@nginx.com
9361570Svbart@nginx.com<change>
9371570Svbart@nginx.com<para>
9381570Svbart@nginx.comNGINX Unit updated to 1.19.0.
9391570Svbart@nginx.com</para>
9401570Svbart@nginx.com</change>
9411570Svbart@nginx.com
9421570Svbart@nginx.com</changes>
9431570Svbart@nginx.com
9441570Svbart@nginx.com
9451570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1"
9461570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
9471570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9481570Svbart@nginx.com
9491570Svbart@nginx.com<change type="feature">
9501570Svbart@nginx.com<para>
9511570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
9521570Svbart@nginx.comincrease performance, and improve scalability.
9531570Svbart@nginx.com</para>
9541570Svbart@nginx.com</change>
9551570Svbart@nginx.com
9561570Svbart@nginx.com<change type="feature">
9571570Svbart@nginx.com<para>
9581570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns.
9591570Svbart@nginx.com</para>
9601570Svbart@nginx.com</change>
9611570Svbart@nginx.com
9621570Svbart@nginx.com<change type="feature">
9631570Svbart@nginx.com<para>
9641570Svbart@nginx.comchunked transfer encoding in proxy responses.
9651570Svbart@nginx.com</para>
9661570Svbart@nginx.com</change>
9671570Svbart@nginx.com
9681570Svbart@nginx.com<change type="feature">
9691570Svbart@nginx.com<para>
9701570Svbart@nginx.combasic variables support in the "pass" option.
9711570Svbart@nginx.com</para>
9721570Svbart@nginx.com</change>
9731570Svbart@nginx.com
9741570Svbart@nginx.com<change type="feature">
9751570Svbart@nginx.com<para>
9761570Svbart@nginx.comcompatibility with PHP 8 Beta 1.
9771570Svbart@nginx.comThanks to Remi Collet.
9781570Svbart@nginx.com</para>
9791570Svbart@nginx.com</change>
9801570Svbart@nginx.com
9811570Svbart@nginx.com<change type="bugfix">
9821570Svbart@nginx.com<para>
9831570Svbart@nginx.comthe router process could crash while passing requests to an application under
9841570Svbart@nginx.comhigh load.
9851570Svbart@nginx.com</para>
9861570Svbart@nginx.com</change>
9871570Svbart@nginx.com
9881570Svbart@nginx.com<change type="bugfix">
9891570Svbart@nginx.com<para>
9901570Svbart@nginx.coma number of language modules failed to build on some systems;
9911570Svbart@nginx.comthe bug had appeared in 1.18.0.
9921570Svbart@nginx.com</para>
9931570Svbart@nginx.com</change>
9941570Svbart@nginx.com
9951570Svbart@nginx.com<change type="bugfix">
9961570Svbart@nginx.com<para>
9971570Svbart@nginx.comtime in error log messages from PHP applications could lag.
9981570Svbart@nginx.com</para>
9991570Svbart@nginx.com</change>
10001570Svbart@nginx.com
10011570Svbart@nginx.com<change type="bugfix">
10021570Svbart@nginx.com<para>
10031570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start;
10041570Svbart@nginx.comthe bug had appeared in 1.18.0.
10051570Svbart@nginx.com</para>
10061570Svbart@nginx.com</change>
10071570Svbart@nginx.com
10081570Svbart@nginx.com<change type="bugfix">
10091570Svbart@nginx.com<para>
10101570Svbart@nginx.commemory leak during reconfiguration.
10111570Svbart@nginx.com</para>
10121570Svbart@nginx.com</change>
10131570Svbart@nginx.com
10141570Svbart@nginx.com<change type="bugfix">
10151570Svbart@nginx.com<para>
10161570Svbart@nginx.comthe daemon didn't start without language modules;
10171570Svbart@nginx.comthe bug had appeared in 1.18.0.
10181570Svbart@nginx.com</para>
10191570Svbart@nginx.com</change>
10201570Svbart@nginx.com
10211570Svbart@nginx.com<change type="bugfix">
10221570Svbart@nginx.com<para>
10231570Svbart@nginx.comthe router process could crash at exit.
10241570Svbart@nginx.com</para>
10251570Svbart@nginx.com</change>
10261570Svbart@nginx.com
10271570Svbart@nginx.com<change type="bugfix">
10281570Svbart@nginx.com<para>
10291570Svbart@nginx.comNode.js applications could crash at exit.
10301570Svbart@nginx.com</para>
10311570Svbart@nginx.com</change>
10321570Svbart@nginx.com
10331570Svbart@nginx.com<change type="bugfix">
10341570Svbart@nginx.com<para>
10351570Svbart@nginx.comthe Ruby module could be linked against a wrong library version.
10361570Svbart@nginx.com</para>
10371570Svbart@nginx.com</change>
10381570Svbart@nginx.com
10391570Svbart@nginx.com</changes>
10401570Svbart@nginx.com
10411570Svbart@nginx.com
10421570Svbart@nginx.com<changes apply="unit-php
10431570Svbart@nginx.com                unit-python unit-python2.7
10441570Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10451570Svbart@nginx.com                unit-python3.8
10461570Svbart@nginx.com                unit-go
10471570Svbart@nginx.com                unit-perl
10481570Svbart@nginx.com                unit-ruby
10491570Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10501491Svbart@nginx.com         ver="1.18.0" rev="1"
10511491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
10521491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10531491Svbart@nginx.com
10541491Svbart@nginx.com<change>
10551491Svbart@nginx.com<para>
10561491Svbart@nginx.comNGINX Unit updated to 1.18.0.
10571491Svbart@nginx.com</para>
10581491Svbart@nginx.com</change>
10591491Svbart@nginx.com
10601491Svbart@nginx.com</changes>
10611491Svbart@nginx.com
10621491Svbart@nginx.com
10631491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1"
10641491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
10651491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10661491Svbart@nginx.com
10671491Svbart@nginx.com<change type="feature">
10681491Svbart@nginx.com<para>
10691491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application.
10701491Svbart@nginx.com</para>
10711491Svbart@nginx.com</change>
10721491Svbart@nginx.com
10731491Svbart@nginx.com<change type="feature">
10741491Svbart@nginx.com<para>
10751491Svbart@nginx.commultiple "targets" in PHP applications.
10761491Svbart@nginx.com</para>
10771491Svbart@nginx.com</change>
10781491Svbart@nginx.com
10791491Svbart@nginx.com<change type="feature">
10801491Svbart@nginx.com<para>
10811491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options
10821491Svbart@nginx.comand in the "pass" option.
10831491Svbart@nginx.com</para>
10841491Svbart@nginx.com</change>
10851491Svbart@nginx.com
10861491Svbart@nginx.com</changes>
10871491Svbart@nginx.com
10881491Svbart@nginx.com
10891491Svbart@nginx.com<changes apply="unit-php
10901491Svbart@nginx.com                unit-python unit-python2.7
10911491Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10921491Svbart@nginx.com                unit-python3.8
10931491Svbart@nginx.com                unit-go
10941491Svbart@nginx.com                unit-perl
10951491Svbart@nginx.com                unit-ruby
10961491Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10971460Svbart@nginx.com         ver="1.17.0" rev="1"
10981460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
10991460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11001460Svbart@nginx.com
11011460Svbart@nginx.com<change>
11021460Svbart@nginx.com<para>
11031460Svbart@nginx.comNGINX Unit updated to 1.17.0.
11041460Svbart@nginx.com</para>
11051460Svbart@nginx.com</change>
11061460Svbart@nginx.com
11071460Svbart@nginx.com</changes>
11081460Svbart@nginx.com
11091460Svbart@nginx.com
11101460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1"
11111460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
11121460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11131460Svbart@nginx.com
11141460Svbart@nginx.com<change type="feature">
11151460Svbart@nginx.com<para>
11161460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external
11171460Svbart@nginx.comredirection.
11181460Svbart@nginx.com</para>
11191460Svbart@nginx.com</change>
11201460Svbart@nginx.com
11211460Svbart@nginx.com<change type="feature">
11221460Svbart@nginx.com<para>
11231460Svbart@nginx.comfractional weights support for upstream servers.
11241460Svbart@nginx.com</para>
11251460Svbart@nginx.com</change>
11261460Svbart@nginx.com
11271460Svbart@nginx.com<change type="bugfix">
11281460Svbart@nginx.com<para>
11291460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under
11301460Svbart@nginx.comhigh load.
11311460Svbart@nginx.com</para>
11321460Svbart@nginx.com</change>
11331460Svbart@nginx.com
11341460Svbart@nginx.com<change type="bugfix">
11351460Svbart@nginx.com<para>
11361460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0.
11371460Svbart@nginx.com</para>
11381460Svbart@nginx.com</change>
11391460Svbart@nginx.com
11401460Svbart@nginx.com<change type="bugfix">
11411460Svbart@nginx.com<para>
11421460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching
11431460Svbart@nginx.comopen connections limit.
11441460Svbart@nginx.com</para>
11451460Svbart@nginx.com</change>
11461460Svbart@nginx.com
11471460Svbart@nginx.com<change type="bugfix">
11481460Svbart@nginx.com<para>
11491460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log
11501460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0.
11511460Svbart@nginx.com</para>
11521460Svbart@nginx.com</change>
11531460Svbart@nginx.com
11541460Svbart@nginx.com<change type="bugfix">
11551460Svbart@nginx.com<para>
11561460Svbart@nginx.comexisting application processes didn't reopen the log file.
11571460Svbart@nginx.com</para>
11581460Svbart@nginx.com</change>
11591460Svbart@nginx.com
11601460Svbart@nginx.com<change type="bugfix">
11611460Svbart@nginx.com<para>
11621460Svbart@nginx.comincompatibility with some Node.js applications.
11631460Svbart@nginx.com</para>
11641460Svbart@nginx.com</change>
11651460Svbart@nginx.com
11661460Svbart@nginx.com<change type="bugfix">
11671460Svbart@nginx.com<para>
11681460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0.
11691460Svbart@nginx.com</para>
11701460Svbart@nginx.com</change>
11711460Svbart@nginx.com
1172