xref: /unit/docs/changes.xml (revision 2197)
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"
172129Szelenkov@nginx.com         ver="1.28.0" rev="1"
18*2197Szelenkov@nginx.com         date="2022-09-13" time="18:00:00 +0300"
192135Sthresh@nginx.com         packager="Nginx Packaging &lt;nginx-packaging@f5.com&gt;">
202129Szelenkov@nginx.com
212129Szelenkov@nginx.com<change>
222129Szelenkov@nginx.com<para>
232129Szelenkov@nginx.comNGINX Unit updated to 1.28.0.
242129Szelenkov@nginx.com</para>
252129Szelenkov@nginx.com</change>
262129Szelenkov@nginx.com
272129Szelenkov@nginx.com</changes>
282129Szelenkov@nginx.com
292129Szelenkov@nginx.com
302129Szelenkov@nginx.com<changes apply="unit" ver="1.28.0" rev="1"
31*2197Szelenkov@nginx.com         date="2022-09-13" time="18:00:00 +0300"
322135Sthresh@nginx.com         packager="Nginx Packaging &lt;nginx-packaging@f5.com&gt;">
332129Szelenkov@nginx.com
342173Salx.manpages@gmail.com<change type="change">
352173Salx.manpages@gmail.com<para>
362173Salx.manpages@gmail.comincreased the applications' startup timeout.
372173Salx.manpages@gmail.com</para>
382173Salx.manpages@gmail.com</change>
392173Salx.manpages@gmail.com
402181Salx.manpages@gmail.com<change type="change">
412181Salx.manpages@gmail.com<para>
422181Salx.manpages@gmail.comdisallowed abstract Unix domain socket syntax in non-Linux systems.
432181Salx.manpages@gmail.com</para>
442181Salx.manpages@gmail.com</change>
452181Salx.manpages@gmail.com
462133Sz.hong@f5.com<change type="feature">
472133Sz.hong@f5.com<para>
482196Szelenkov@nginx.combasic statistics API.
492179Salx.manpages@gmail.com</para>
502179Salx.manpages@gmail.com</change>
512179Salx.manpages@gmail.com
522179Salx.manpages@gmail.com<change type="feature">
532179Salx.manpages@gmail.com<para>
542196Szelenkov@nginx.comcustomizable access log format.
552196Szelenkov@nginx.com</para>
562196Szelenkov@nginx.com</change>
572196Szelenkov@nginx.com
582196Szelenkov@nginx.com<change type="feature">
592196Szelenkov@nginx.com<para>
602196Szelenkov@nginx.commore HTTP variables support.
612161Salx.manpages@gmail.com</para>
622161Salx.manpages@gmail.com</change>
632161Salx.manpages@gmail.com
642161Salx.manpages@gmail.com<change type="feature">
652161Salx.manpages@gmail.com<para>
662133Sz.hong@f5.comforwarded header to replace client address and protocol.
672133Sz.hong@f5.com</para>
682133Sz.hong@f5.com</change>
692133Sz.hong@f5.com
702147Sz.hong@f5.com<change type="feature">
712147Sz.hong@f5.com<para>
722147Sz.hong@f5.comability to get dynamic variables.
732147Sz.hong@f5.com</para>
742147Sz.hong@f5.com</change>
752147Sz.hong@f5.com
762149Sz.hong@f5.com<change type="feature">
772149Sz.hong@f5.com<para>
782196Szelenkov@nginx.comsupport for abstract Unix sockets.
792196Szelenkov@nginx.com</para>
802196Szelenkov@nginx.com</change>
812196Szelenkov@nginx.com
822196Szelenkov@nginx.com<change type="feature">
832196Szelenkov@nginx.com<para>
842196Szelenkov@nginx.comsupport for Unix sockets in address matching.
852149Sz.hong@f5.com</para>
862149Sz.hong@f5.com</change>
872149Sz.hong@f5.com
882161Salx.manpages@gmail.com<change type="feature">
892161Salx.manpages@gmail.com<para>
902188Szelenkov@nginx.comthe $dollar variable translates to a literal "$" during variable substitution.
912161Salx.manpages@gmail.com</para>
922161Salx.manpages@gmail.com</change>
932161Salx.manpages@gmail.com
942137Salx.manpages@gmail.com<change type="bugfix">
952137Salx.manpages@gmail.com<para>
962188Szelenkov@nginx.comrouter process could crash if index file didn't contain an extension.
972137Salx.manpages@gmail.com</para>
982137Salx.manpages@gmail.com</change>
992137Salx.manpages@gmail.com
1002163Salx.manpages@gmail.com<change type="bugfix">
1012163Salx.manpages@gmail.com<para>
1022163Salx.manpages@gmail.comforce SCRIPT_NAME in Ruby to always be an empty string.
1032163Salx.manpages@gmail.com</para>
1042163Salx.manpages@gmail.com</change>
1052163Salx.manpages@gmail.com
1062164Sz.hong@f5.com<change type="bugfix">
1072164Sz.hong@f5.com<para>
1082196Szelenkov@nginx.comwhen isolated PID numbers reach the prototype process host PID,
1092196Szelenkov@nginx.comthe prototype crashed.
1102196Szelenkov@nginx.com</para>
1112196Szelenkov@nginx.com</change>
1122196Szelenkov@nginx.com
1132196Szelenkov@nginx.com<change type="bugfix">
1142196Szelenkov@nginx.com<para>
1152188Szelenkov@nginx.comthe Ruby application process could crash on SIGTERM.
1162164Sz.hong@f5.com</para>
1172164Sz.hong@f5.com</change>
1182164Sz.hong@f5.com
1192174Smax.romanov@gmail.com<change type="bugfix">
1202174Smax.romanov@gmail.com<para>
1212188Szelenkov@nginx.comthe Ruby application process could crash on SIGINT.
1222183Sa.clayton@f5.com</para>
1232183Sa.clayton@f5.com</change>
1242183Sa.clayton@f5.com
1252183Sa.clayton@f5.com<change type="bugfix">
1262183Sa.clayton@f5.com<para>
1272194Sa.colomar@f5.commutex leak in the C API.
1282194Sa.colomar@f5.com</para>
1292194Sa.colomar@f5.com</change>
1302194Sa.colomar@f5.com
1312129Szelenkov@nginx.com</changes>
1322129Szelenkov@nginx.com
1332129Szelenkov@nginx.com
1342129Szelenkov@nginx.com<changes apply="unit-php
1352129Szelenkov@nginx.com                unit-python unit-python2.7
1362129Szelenkov@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1372129Szelenkov@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
1382129Szelenkov@nginx.com                unit-go
1392129Szelenkov@nginx.com                unit-perl
1402129Szelenkov@nginx.com                unit-ruby
1412129Szelenkov@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1422129Szelenkov@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
1432012Svbart@nginx.com         ver="1.27.0" rev="1"
1442127Szelenkov@nginx.com         date="2022-06-02" time="18:00:00 +0300"
1452012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1462012Svbart@nginx.com
1472012Svbart@nginx.com<change>
1482012Svbart@nginx.com<para>
1492012Svbart@nginx.comNGINX Unit updated to 1.27.0.
1502012Svbart@nginx.com</para>
1512012Svbart@nginx.com</change>
1522012Svbart@nginx.com
1532012Svbart@nginx.com</changes>
1542012Svbart@nginx.com
1552012Svbart@nginx.com
1562012Svbart@nginx.com<changes apply="unit" ver="1.27.0" rev="1"
1572127Szelenkov@nginx.com         date="2022-06-02" time="18:00:00 +0300"
1582012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1592012Svbart@nginx.com
1602072Sz.hong@f5.com<change type="feature">
1612072Sz.hong@f5.com<para>
1622108Salx.manpages@gmail.comability to specify a custom index file name when serving static files.
1632108Salx.manpages@gmail.com</para>
1642108Salx.manpages@gmail.com</change>
1652108Salx.manpages@gmail.com
1662108Salx.manpages@gmail.com<change type="feature">
1672108Salx.manpages@gmail.com<para>
1682081Salx.manpages@gmail.comvariables support in the "location" option of the "return" action.
1692081Salx.manpages@gmail.com</para>
1702081Salx.manpages@gmail.com</change>
1712081Salx.manpages@gmail.com
1722081Salx.manpages@gmail.com<change type="feature">
1732081Salx.manpages@gmail.com<para>
1742113Sartem.konev@nginx.comsupport empty strings in the "location" option of the "return" action.
1752113Sartem.konev@nginx.com</para>
1762113Sartem.konev@nginx.com</change>
1772113Sartem.konev@nginx.com
1782113Sartem.konev@nginx.com<change type="feature">
1792113Sartem.konev@nginx.com<para>
1802113Sartem.konev@nginx.comadded a new variable, $request_uri, that includes both the path and the query
1812113Sartem.konev@nginx.comparts as per RFC 3986, sections 3-4.
1822113Sartem.konev@nginx.com</para>
1832113Sartem.konev@nginx.com</change>
1842113Sartem.konev@nginx.com
1852113Sartem.konev@nginx.com<change type="feature">
1862113Sartem.konev@nginx.com<para>
1872113Sartem.konev@nginx.comRuby Rack environment parameter "SCRIPT_NAME" support.
1882110Salx.manpages@gmail.com</para>
1892110Salx.manpages@gmail.com</change>
1902110Salx.manpages@gmail.com
1912110Salx.manpages@gmail.com<change type="feature">
1922110Salx.manpages@gmail.com<para>
1932072Sz.hong@f5.comcompatibility with GCC 12.
1942072Sz.hong@f5.com</para>
1952072Sz.hong@f5.com</change>
1962072Sz.hong@f5.com
1972060Smax.romanov@nginx.com<change type="bugfix">
1982060Smax.romanov@nginx.com<para>
1992093Sz.hong@f5.comRuby Sinatra applications don't work without custom logging.
2002093Sz.hong@f5.com</para>
2012093Sz.hong@f5.com</change>
2022093Sz.hong@f5.com
2032093Sz.hong@f5.com<change type="bugfix">
2042093Sz.hong@f5.com<para>
2052113Sartem.konev@nginx.comthe controller process could crash when a chain of more than four
2062069Sz.hong@f5.comcertificates was uploaded.
2072069Sz.hong@f5.com</para>
2082069Sz.hong@f5.com</change>
2092069Sz.hong@f5.com
2102069Sz.hong@f5.com<change type="bugfix">
2112069Sz.hong@f5.com<para>
2122060Smax.romanov@nginx.comsome Perl applications failed to process the request body, notably with Plack.
2132060Smax.romanov@nginx.com</para>
2142060Smax.romanov@nginx.com</change>
2152060Smax.romanov@nginx.com
2162061Smax.romanov@nginx.com<change type="bugfix">
2172061Smax.romanov@nginx.com<para>
2182061Smax.romanov@nginx.comsome Spring Boot applications failed to start, notably with Grails.
2192061Smax.romanov@nginx.com</para>
2202061Smax.romanov@nginx.com</change>
2212061Smax.romanov@nginx.com
2222067Smax.romanov@nginx.com<change type="bugfix">
2232067Smax.romanov@nginx.com<para>
2242067Smax.romanov@nginx.comincorrect Python protocol auto detection (ASGI or WSGI) for native callable
2252067Smax.romanov@nginx.comobject, notably with Falcon.
2262067Smax.romanov@nginx.com</para>
2272067Smax.romanov@nginx.com</change>
2282067Smax.romanov@nginx.com
2292117Szelenkov@nginx.com<change type="bugfix">
2302117Szelenkov@nginx.com<para>
2312117Szelenkov@nginx.comECMAScript modules did not work with the recent Node.js versions.
2322117Szelenkov@nginx.com</para>
2332117Szelenkov@nginx.com</change>
2342117Szelenkov@nginx.com
2352050Svbart@nginx.com</changes>
2362050Svbart@nginx.com
2372050Svbart@nginx.com
2382050Svbart@nginx.com<changes apply="unit-php
2392050Svbart@nginx.com                unit-python unit-python2.7
2402050Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2412050Svbart@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
2422050Svbart@nginx.com                unit-go
2432050Svbart@nginx.com                unit-perl
2442050Svbart@nginx.com                unit-ruby
2452050Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2462050Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
2472029SN/A         ver="1.26.1" rev="1"
2482045SN/A         date="2021-12-02" time="18:00:00 +0300"
2492029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2502029SN/A
2512029SN/A<change>
2522029SN/A<para>
2532029SN/ANGINX Unit updated to 1.26.1.
2542029SN/A</para>
2552029SN/A</change>
2562029SN/A
2572029SN/A</changes>
2582029SN/A
2592029SN/A
2602029SN/A<changes apply="unit" ver="1.26.1" rev="1"
2612045SN/A         date="2021-12-02" time="18:00:00 +0300"
2622029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2632029SN/A
2642033SN/A<change type="bugfix">
2652033SN/A<para>
2662044SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had
2672044SN/Aappeared in 1.26.0.
2682033SN/A</para>
2692033SN/A</change>
2702033SN/A
2712034SN/A<change type="bugfix">
2722034SN/A<para>
2732044SN/Aa prototype process could crash on an application process exit; the bug had
2742034SN/Aappeared in 1.26.0.
2752034SN/A</para>
2762034SN/A</change>
2772034SN/A
2782035SN/A<change type="bugfix">
2792035SN/A<para>
2802044SN/Athe router process crashed on reconfiguration if "access_log" was configured
2812044SN/Awithout listeners.
2822044SN/A</para>
2832044SN/A</change>
2842044SN/A
2852044SN/A<change type="bugfix">
2862044SN/A<para>
2872035SN/Aa segmentation fault occurred in the PHP module if chdir() or
2882035SN/Afastcgi_finish_request() was called in the OPcache preloading script.
2892035SN/A</para>
2902035SN/A</change>
2912035SN/A
2922040SN/A<change type="bugfix">
2932040SN/A<para>
2942041SN/Afatal errors on DragonFly BSD; the bug had appeared in 1.26.0.
2952041SN/A</para>
2962041SN/A</change>
2972041SN/A
2982029SN/A</changes>
2992029SN/A
3002029SN/A
3011973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1"
3022007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
3031973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3041973Sdefan@nginx.com
3051973Sdefan@nginx.com<change>
3061973Sdefan@nginx.com<para>
3071973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit.
3081973Sdefan@nginx.com</para>
3091973Sdefan@nginx.com</change>
3101973Sdefan@nginx.com
3111973Sdefan@nginx.com</changes>
3121973Sdefan@nginx.com
3131973Sdefan@nginx.com
3141973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1"
3152007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
3161973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3171973Sdefan@nginx.com
3181973Sdefan@nginx.com<change>
3191973Sdefan@nginx.com<para>
3201973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit.
3211973Sdefan@nginx.com</para>
3221973Sdefan@nginx.com</change>
3231973Sdefan@nginx.com
3241973Sdefan@nginx.com</changes>
3251973Sdefan@nginx.com
3261973Sdefan@nginx.com
3271896Svbart@nginx.com<changes apply="unit-php
3281896Svbart@nginx.com                unit-python unit-python2.7
3291896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3301896Svbart@nginx.com                unit-python3.8 unit-python3.9
3311896Svbart@nginx.com                unit-go
3321896Svbart@nginx.com                unit-perl
3331896Svbart@nginx.com                unit-ruby
3341896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3351896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
3361951Svbart@nginx.com         ver="1.26.0" rev="1"
3372007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
3381951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3391951Svbart@nginx.com
3401951Svbart@nginx.com<change>
3411951Svbart@nginx.com<para>
3421951Svbart@nginx.comNGINX Unit updated to 1.26.0.
3431951Svbart@nginx.com</para>
3441951Svbart@nginx.com</change>
3451951Svbart@nginx.com
3461951Svbart@nginx.com</changes>
3471951Svbart@nginx.com
3481951Svbart@nginx.com
3491951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
3502007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
3511951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3521951Svbart@nginx.com
3531960Sz.hong@f5.com<change type="change">
3541960Sz.hong@f5.com<para>
3551960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
3561960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
3571960Sz.hong@f5.com</para>
3581960Sz.hong@f5.com</change>
3591960Sz.hong@f5.com
3601960Sz.hong@f5.com<change type="feature">
3611960Sz.hong@f5.com<para>
3622006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior
3632006Svbart@nginx.comwhen updating from previous versions.
3642006Svbart@nginx.com</para>
3652006Svbart@nginx.com</change>
3662006Svbart@nginx.com
3672006Svbart@nginx.com<change type="feature">
3682006Svbart@nginx.com<para>
3691960Sz.hong@f5.comvariables support in the "share" option.
3701960Sz.hong@f5.com</para>
3711960Sz.hong@f5.com</change>
3721960Sz.hong@f5.com
3731959Sz.hong@f5.com<change type="feature">
3741959Sz.hong@f5.com<para>
3751961Sz.hong@f5.commultiple paths in the "share" option.
3761961Sz.hong@f5.com</para>
3771961Sz.hong@f5.com</change>
3781961Sz.hong@f5.com
3791961Sz.hong@f5.com<change type="feature">
3801961Sz.hong@f5.com<para>
3811959Sz.hong@f5.comvariables support in the "chroot" option.
3821959Sz.hong@f5.com</para>
3831959Sz.hong@f5.com</change>
3841959Sz.hong@f5.com
3851969Sz.hong@f5.com<change type="feature">
3861969Sz.hong@f5.com<para>
3872006Svbart@nginx.comPHP opcache is shared between application processes.
3881969Sz.hong@f5.com</para>
3891969Sz.hong@f5.com</change>
3901969Sz.hong@f5.com
3911991Sz.hong@f5.com<change type="feature">
3921991Sz.hong@f5.com<para>
3931991Sz.hong@f5.comrequest routing by the query string.
3941991Sz.hong@f5.com</para>
3951991Sz.hong@f5.com</change>
3961991Sz.hong@f5.com
3971955Smax.romanov@nginx.com<change type="bugfix">
3981955Smax.romanov@nginx.com<para>
3992006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached
4002006Svbart@nginx.comby asynchronous or multithreaded apps.
4011955Smax.romanov@nginx.com</para>
4021955Smax.romanov@nginx.com</change>
4031955Smax.romanov@nginx.com
4041956Smax.romanov@nginx.com<change type="bugfix">
4051956Smax.romanov@nginx.com<para>
4061956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
4071956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
4081956Smax.romanov@nginx.com</para>
4091956Smax.romanov@nginx.com</change>
4101956Smax.romanov@nginx.com
4111992Smax.romanov@nginx.com<change type="bugfix">
4121992Smax.romanov@nginx.com<para>
4132006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35.
4141992Smax.romanov@nginx.com</para>
4151992Smax.romanov@nginx.com</change>
4161992Smax.romanov@nginx.com
4171951Svbart@nginx.com</changes>
4181951Svbart@nginx.com
4191951Svbart@nginx.com
4201951Svbart@nginx.com<changes apply="unit-php
4211951Svbart@nginx.com                unit-python unit-python2.7
4221951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4231951Svbart@nginx.com                unit-python3.8 unit-python3.9
4241951Svbart@nginx.com                unit-go
4251951Svbart@nginx.com                unit-perl
4261951Svbart@nginx.com                unit-ruby
4271951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4281951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
4291896Svbart@nginx.com         ver="1.25.0" rev="1"
4301945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
4311896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4321896Svbart@nginx.com
4331896Svbart@nginx.com<change>
4341896Svbart@nginx.com<para>
4351896Svbart@nginx.comNGINX Unit updated to 1.25.0.
4361896Svbart@nginx.com</para>
4371896Svbart@nginx.com</change>
4381896Svbart@nginx.com
4391896Svbart@nginx.com</changes>
4401896Svbart@nginx.com
4411896Svbart@nginx.com
4421896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
4431945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
4441896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4451896Svbart@nginx.com
4461910So.canty@f5.com<change type="feature">
4471910So.canty@f5.com<para>
4481944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
4491942Sa.suvorov@f5.com</para>
4501942Sa.suvorov@f5.com</change>
4511942Sa.suvorov@f5.com
4521942Sa.suvorov@f5.com<change type="feature">
4531942Sa.suvorov@f5.com<para>
4541920Sa.suvorov@f5.comTLS sessions cache.
4551920Sa.suvorov@f5.com</para>
4561920Sa.suvorov@f5.com</change>
4571920Sa.suvorov@f5.com
4581920Sa.suvorov@f5.com<change type="feature">
4591920Sa.suvorov@f5.com<para>
4601944Svbart@nginx.comTLS session tickets.
4611910So.canty@f5.com</para>
4621910So.canty@f5.com</change>
4631910So.canty@f5.com
4641926Smax.romanov@nginx.com<change type="feature">
4651926Smax.romanov@nginx.com<para>
4661926Smax.romanov@nginx.comapplication restart control.
4671926Smax.romanov@nginx.com</para>
4681926Smax.romanov@nginx.com</change>
4691926Smax.romanov@nginx.com
4701936So.canty@f5.com<change type="feature">
4711936So.canty@f5.com<para>
4721944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
4731936So.canty@f5.com</para>
4741936So.canty@f5.com</change>
4751936So.canty@f5.com
4761907Smax.romanov@nginx.com<change type="bugfix">
4771907Smax.romanov@nginx.com<para>
4781944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
4791944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
4801921Sa.suvorov@f5.com</para>
4811921Sa.suvorov@f5.com</change>
4821921Sa.suvorov@f5.com
4831921Sa.suvorov@f5.com<change type="bugfix">
4841921Sa.suvorov@f5.com<para>
4851944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
4861944Svbart@nginx.combundles in a listener if the client did not use SNI.
4871907Smax.romanov@nginx.com</para>
4881907Smax.romanov@nginx.com</change>
4891907Smax.romanov@nginx.com
4901907Smax.romanov@nginx.com<change type="bugfix">
4911907Smax.romanov@nginx.com<para>
4921950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
4931915Smax.romanov@nginx.comreconfiguration.
4941915Smax.romanov@nginx.com</para>
4951915Smax.romanov@nginx.com</change>
4961915Smax.romanov@nginx.com
4971915Smax.romanov@nginx.com<change type="bugfix">
4981915Smax.romanov@nginx.com<para>
4991944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
5001944Svbart@nginx.comframework.
5011944Svbart@nginx.com</para>
5021944Svbart@nginx.com</change>
5031944Svbart@nginx.com
5041944Svbart@nginx.com<change type="bugfix">
5051944Svbart@nginx.com<para>
5061944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
5071944Svbart@nginx.comstopped or crashed.
5081907Smax.romanov@nginx.com</para>
5091907Smax.romanov@nginx.com</change>
5101907Smax.romanov@nginx.com
5111909So.canty@f5.com<change type="bugfix">
5121909So.canty@f5.com<para>
5131909So.canty@f5.comthe controller or router process could crash if the configuration contained
5141909So.canty@f5.coma full-form IPv6 in a listener address.
5151909So.canty@f5.com</para>
5161909So.canty@f5.com</change>
5171909So.canty@f5.com
5181916Smax.romanov@nginx.com<change type="bugfix">
5191916Smax.romanov@nginx.com<para>
5201929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
5211929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
5221929Sz.hong@f5.com</para>
5231929Sz.hong@f5.com</change>
5241929Sz.hong@f5.com
5251930So.canty@f5.com<change type="bugfix">
5261930So.canty@f5.com<para>
5271944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
5281944Svbart@nginx.comor destination address patterns.
5291930So.canty@f5.com</para>
5301930So.canty@f5.com</change>
5311930So.canty@f5.com
5321896Svbart@nginx.com</changes>
5331896Svbart@nginx.com
5341896Svbart@nginx.com
5351887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
5361891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
5371887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5381887Sdefan@nginx.com
5391887Sdefan@nginx.com<change>
5401887Sdefan@nginx.com<para>
5411887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
5421887Sdefan@nginx.com</para>
5431887Sdefan@nginx.com</change>
5441887Sdefan@nginx.com
5451887Sdefan@nginx.com</changes>
5461887Sdefan@nginx.com
5471887Sdefan@nginx.com
5481887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
5491891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
5501887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5511887Sdefan@nginx.com
5521887Sdefan@nginx.com<change>
5531887Sdefan@nginx.com<para>
5541887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
5551887Sdefan@nginx.com</para>
5561887Sdefan@nginx.com</change>
5571887Sdefan@nginx.com
5581887Sdefan@nginx.com</changes>
5591887Sdefan@nginx.com
5601887Sdefan@nginx.com
5611834Svbart@nginx.com<changes apply="unit-php
5621834Svbart@nginx.com                unit-python unit-python2.7
5631834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5641834Svbart@nginx.com                unit-python3.8 unit-python3.9
5651834Svbart@nginx.com                unit-go
5661834Svbart@nginx.com                unit-perl
5671834Svbart@nginx.com                unit-ruby
5681834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
5691834Svbart@nginx.com                unit-jsc14 unit-jsc15"
5701839Svbart@nginx.com         ver="1.24.0" rev="1"
5711891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
5721839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5731839Svbart@nginx.com
5741839Svbart@nginx.com<change>
5751839Svbart@nginx.com<para>
5761839Svbart@nginx.comNGINX Unit updated to 1.24.0.
5771839Svbart@nginx.com</para>
5781839Svbart@nginx.com</change>
5791839Svbart@nginx.com
5801839Svbart@nginx.com</changes>
5811839Svbart@nginx.com
5821839Svbart@nginx.com
5831839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
5841891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
5851839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5861839Svbart@nginx.com
5871882So.canty@f5.com<change type="change">
5881882So.canty@f5.com<para>
5891882So.canty@f5.comPHP added to the default MIME type list.
5901882So.canty@f5.com</para>
5911882So.canty@f5.com</change>
5921882So.canty@f5.com
5931855Sz.hong@f5.com<change type="feature">
5941855Sz.hong@f5.com<para>
5951885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
5961885Sa.suvorov@f5.com</para>
5971885Sa.suvorov@f5.com</change>
5981885Sa.suvorov@f5.com
5991885Sa.suvorov@f5.com<change type="feature">
6001885Sa.suvorov@f5.com<para>
6011890Svbart@nginx.comthe ability to limit static file serving by MIME types.
6021890Svbart@nginx.com</para>
6031890Svbart@nginx.com</change>
6041890Svbart@nginx.com
6051890Svbart@nginx.com<change type="feature">
6061890Svbart@nginx.com<para>
6071890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
6081890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
6091872So.canty@f5.com</para>
6101872So.canty@f5.com</change>
6111872So.canty@f5.com
6121872So.canty@f5.com<change type="feature">
6131872So.canty@f5.com<para>
6141889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
6151889Sartem.konev@nginx.comNode.js.
6161865So.canty@f5.com</para>
6171865So.canty@f5.com</change>
6181865So.canty@f5.com
6191865So.canty@f5.com<change type="feature">
6201865So.canty@f5.com<para>
6211890Svbart@nginx.commultiple "targets" in Python applications.
6221855Sz.hong@f5.com</para>
6231855Sz.hong@f5.com</change>
6241855Sz.hong@f5.com
6251870So.canty@f5.com<change type="feature">
6261870So.canty@f5.com<para>
6271870So.canty@f5.comcompatibility with Ruby 3.0.
6281870So.canty@f5.com</para>
6291870So.canty@f5.com</change>
6301870So.canty@f5.com
6311861Svbart@nginx.com<change type="bugfix">
6321861Svbart@nginx.com<para>
6331889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
6341884Sa.suvorov@f5.com</para>
6351884Sa.suvorov@f5.com</change>
6361884Sa.suvorov@f5.com
6371884Sa.suvorov@f5.com<change type="bugfix">
6381884Sa.suvorov@f5.com<para>
6391861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
6401861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
6411861Svbart@nginx.com</para>
6421861Svbart@nginx.com</change>
6431861Svbart@nginx.com
6441839Svbart@nginx.com</changes>
6451839Svbart@nginx.com
6461839Svbart@nginx.com
6471839Svbart@nginx.com<changes apply="unit-php
6481839Svbart@nginx.com                unit-python unit-python2.7
6491839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6501839Svbart@nginx.com                unit-python3.8 unit-python3.9
6511839Svbart@nginx.com                unit-go
6521839Svbart@nginx.com                unit-perl
6531839Svbart@nginx.com                unit-ruby
6541839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
6551839Svbart@nginx.com                unit-jsc14 unit-jsc15"
6561834Svbart@nginx.com         ver="1.23.0" rev="1"
6571834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
6581834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6591834Svbart@nginx.com
6601834Svbart@nginx.com<change>
6611834Svbart@nginx.com<para>
6621834Svbart@nginx.comNGINX Unit updated to 1.23.0.
6631834Svbart@nginx.com</para>
6641834Svbart@nginx.com</change>
6651834Svbart@nginx.com
6661834Svbart@nginx.com</changes>
6671834Svbart@nginx.com
6681834Svbart@nginx.com
6691806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
6701834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
6711806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6721806Svbart@nginx.com
6731825Sthresh@nginx.com<change type="feature">
6741825Sthresh@nginx.com<para>
6751833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
6761828Sa.suvorov@f5.comIndication (SNI) TLS extension.
6771828Sa.suvorov@f5.com</para>
6781828Sa.suvorov@f5.com</change>
6791828Sa.suvorov@f5.com
6801828Sa.suvorov@f5.com<change type="feature">
6811828Sa.suvorov@f5.com<para>
6821833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
6831833Sartem.konev@nginx.cominstallation.
6841825Sthresh@nginx.com</para>
6851825Sthresh@nginx.com</change>
6861825Sthresh@nginx.com
6871811Smax.romanov@nginx.com<change type="bugfix">
6881811Smax.romanov@nginx.com<para>
6891812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
6901812Svbart@nginx.comappeared in 1.17.0.
6911812Svbart@nginx.com</para>
6921812Svbart@nginx.com</change>
6931812Svbart@nginx.com
6941812Svbart@nginx.com<change type="bugfix">
6951812Svbart@nginx.com<para>
6961833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
6971812Svbart@nginx.comappeared in 1.6.
6981812Svbart@nginx.com</para>
6991812Svbart@nginx.com</change>
7001812Svbart@nginx.com
7011812Svbart@nginx.com<change type="bugfix">
7021812Svbart@nginx.com<para>
7031833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
7041832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
7051832Smax.romanov@nginx.com</para>
7061832Smax.romanov@nginx.com</change>
7071832Smax.romanov@nginx.com
7081832Smax.romanov@nginx.com<change type="bugfix">
7091832Smax.romanov@nginx.com<para>
7101833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
7111811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
7121811Smax.romanov@nginx.com</para>
7131811Smax.romanov@nginx.com</change>
7141806Svbart@nginx.com
7151813Svbart@nginx.com<change type="bugfix">
7161813Svbart@nginx.com<para>
7171813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
7181813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
7191813Svbart@nginx.com</para>
7201813Svbart@nginx.com</change>
7211813Svbart@nginx.com
7221814Svbart@nginx.com<change type="bugfix">
7231814Svbart@nginx.com<para>
7241820Svbart@nginx.comthe controller process could crash while requesting information about a
7251820Svbart@nginx.comcertificate with a non-DNS SAN entry.
7261820Svbart@nginx.com</para>
7271820Svbart@nginx.com</change>
7281820Svbart@nginx.com
7291820Svbart@nginx.com<change type="bugfix">
7301820Svbart@nginx.com<para>
7311822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
7321833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
7331822Svbart@nginx.com</para>
7341822Svbart@nginx.com</change>
7351822Svbart@nginx.com
7361822Svbart@nginx.com<change type="bugfix">
7371822Svbart@nginx.com<para>
7381833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
7391833Sartem.konev@nginx.comclass.
7401814Svbart@nginx.com</para>
7411814Svbart@nginx.com</change>
7421814Svbart@nginx.com
7431815Svbart@nginx.com<change type="bugfix">
7441815Svbart@nginx.com<para>
7451815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
7461815Svbart@nginx.comappeared in 1.22.0.
7471815Svbart@nginx.com</para>
7481815Svbart@nginx.com</change>
7491815Svbart@nginx.com
7501806Svbart@nginx.com</changes>
7511806Svbart@nginx.com
7521806Svbart@nginx.com
7531798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
7541798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
7551798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7561798Sdefan@nginx.com
7571798Sdefan@nginx.com<change>
7581798Sdefan@nginx.com<para>
7591798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
7601798Sdefan@nginx.com</para>
7611798Sdefan@nginx.com</change>
7621798Sdefan@nginx.com
7631798Sdefan@nginx.com</changes>
7641798Sdefan@nginx.com
7651798Sdefan@nginx.com
7661763Sdefan@nginx.com<changes apply="unit-php
7671763Sdefan@nginx.com                unit-python unit-python2.7
7681763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7691763Sdefan@nginx.com                unit-python3.8
7701763Sdefan@nginx.com                unit-go
7711763Sdefan@nginx.com                unit-perl
7721763Sdefan@nginx.com                unit-ruby
7731763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
7741763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
7751763Sdefan@nginx.com         ver="1.22.0" rev="1"
7761793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
7771763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7781763Sdefan@nginx.com
7791763Sdefan@nginx.com<change>
7801763Sdefan@nginx.com<para>
7811763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
7821763Sdefan@nginx.com</para>
7831763Sdefan@nginx.com</change>
7841763Sdefan@nginx.com
7851763Sdefan@nginx.com</changes>
7861763Sdefan@nginx.com
7871763Sdefan@nginx.com
7881727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
7891793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
7901727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7911727Svbart@nginx.com
7921759Svbart@nginx.com<change type="feature">
7931759Svbart@nginx.com<para>
7941792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
7951792Svbart@nginx.comcompliant with Stream API.
7961759Svbart@nginx.com</para>
7971759Svbart@nginx.com</change>
7981759Svbart@nginx.com
7991766Smax.romanov@nginx.com<change type="feature">
8001766Smax.romanov@nginx.com<para>
8011792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
8021792Svbart@nginx.comapps.
8031732Svbart@nginx.com</para>
8041732Svbart@nginx.com</change>
8051732Svbart@nginx.com
8061733Svbart@nginx.com<change type="bugfix">
8071733Svbart@nginx.com<para>
8081792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
8091792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
8101754Smax.romanov@nginx.com</para>
8111754Smax.romanov@nginx.com</change>
8121754Smax.romanov@nginx.com
8131755Smax.romanov@nginx.com<change type="bugfix">
8141755Smax.romanov@nginx.com<para>
8151790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
8161755Smax.romanov@nginx.comappeared in 1.19.0.
8171755Smax.romanov@nginx.com</para>
8181755Smax.romanov@nginx.com</change>
8191755Smax.romanov@nginx.com
8201756Smax.romanov@nginx.com<change type="bugfix">
8211756Smax.romanov@nginx.com<para>
8221790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
8231790Sartem.konev@nginx.comappeared in 1.19.0.
8241756Smax.romanov@nginx.com</para>
8251756Smax.romanov@nginx.com</change>
8261756Smax.romanov@nginx.com
8271760Smax.romanov@nginx.com<change type="bugfix">
8281760Smax.romanov@nginx.com<para>
8291792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
8301792Svbart@nginx.com</para>
8311792Svbart@nginx.com</change>
8321792Svbart@nginx.com
8331792Svbart@nginx.com<change type="bugfix">
8341792Svbart@nginx.com<para>
8351792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
8361792Svbart@nginx.commissing in the PHP module.
8371792Svbart@nginx.com</para>
8381792Svbart@nginx.com</change>
8391792Svbart@nginx.com
8401792Svbart@nginx.com<change type="bugfix">
8411792Svbart@nginx.com<para>
8421792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
8431792Svbart@nginx.com</para>
8441792Svbart@nginx.com</change>
8451792Svbart@nginx.com
8461792Svbart@nginx.com<change type="bugfix">
8471792Svbart@nginx.com<para>
8481792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
8491792Svbart@nginx.com</para>
8501792Svbart@nginx.com</change>
8511792Svbart@nginx.com
8521792Svbart@nginx.com<change type="bugfix">
8531792Svbart@nginx.com<para>
8541792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
8551792Svbart@nginx.comthe bug had appeared in 1.21.0.
8561760Smax.romanov@nginx.com</para>
8571760Smax.romanov@nginx.com</change>
8581760Smax.romanov@nginx.com
8591780Smax.romanov@nginx.com<change type="bugfix">
8601780Smax.romanov@nginx.com<para>
8611790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
8621790Sartem.konev@nginx.comWebSocket.
8631780Smax.romanov@nginx.com</para>
8641780Smax.romanov@nginx.com</change>
8651780Smax.romanov@nginx.com
8661789Smax.romanov@nginx.com<change type="bugfix">
8671789Smax.romanov@nginx.com<para>
8681789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
8691789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
8701789Smax.romanov@nginx.com</para>
8711789Smax.romanov@nginx.com</change>
8721789Smax.romanov@nginx.com
873