xref: /unit/docs/changes.xml (revision 2183)
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"
182129Szelenkov@nginx.com         date="" time=""
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"
312129Szelenkov@nginx.com         date="" time=""
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>
482179Salx.manpages@gmail.comsupporting abstract UNIX sockets.
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>
542161Salx.manpages@gmail.comsupporting UNIX sockets in address matching.
552161Salx.manpages@gmail.com</para>
562161Salx.manpages@gmail.com</change>
572161Salx.manpages@gmail.com
582161Salx.manpages@gmail.com<change type="feature">
592161Salx.manpages@gmail.com<para>
602133Sz.hong@f5.comforwarded header to replace client address and protocol.
612133Sz.hong@f5.com</para>
622133Sz.hong@f5.com</change>
632133Sz.hong@f5.com
642147Sz.hong@f5.com<change type="feature">
652147Sz.hong@f5.com<para>
662147Sz.hong@f5.comability to get dynamic variables.
672147Sz.hong@f5.com</para>
682147Sz.hong@f5.com</change>
692147Sz.hong@f5.com
702149Sz.hong@f5.com<change type="feature">
712149Sz.hong@f5.com<para>
722149Sz.hong@f5.commore http variables support.
732149Sz.hong@f5.com</para>
742149Sz.hong@f5.com</change>
752149Sz.hong@f5.com
762161Salx.manpages@gmail.com<change type="feature">
772161Salx.manpages@gmail.com<para>
782161Salx.manpages@gmail.comadded a new variable, $dollar, that translates to a literal "$" during
792162Salx.manpages@gmail.comvariable substitution.
802161Salx.manpages@gmail.com</para>
812161Salx.manpages@gmail.com</change>
822161Salx.manpages@gmail.com
832166Sz.hong@f5.com<change type="feature">
842166Sz.hong@f5.com<para>
852166Sz.hong@f5.comcustomizable access log format.
862166Sz.hong@f5.com</para>
872166Sz.hong@f5.com</change>
882166Sz.hong@f5.com
892137Salx.manpages@gmail.com<change type="bugfix">
902137Salx.manpages@gmail.com<para>
912137Salx.manpages@gmail.coman index file that didn't contain a file extension was incorrectly
922137Salx.manpages@gmail.comhandled, and caused a use-after-free bug.
932137Salx.manpages@gmail.com</para>
942137Salx.manpages@gmail.com</change>
952137Salx.manpages@gmail.com
962163Salx.manpages@gmail.com<change type="bugfix">
972163Salx.manpages@gmail.com<para>
982163Salx.manpages@gmail.comforce SCRIPT_NAME in Ruby to always be an empty string.
992163Salx.manpages@gmail.com</para>
1002163Salx.manpages@gmail.com</change>
1012163Salx.manpages@gmail.com
1022164Sz.hong@f5.com<change type="bugfix">
1032164Sz.hong@f5.com<para>
1042164Sz.hong@f5.comthe ruby application process could crash if it's interrupted by SIGTERM signal.
1052164Sz.hong@f5.com</para>
1062164Sz.hong@f5.com</change>
1072164Sz.hong@f5.com
1082174Smax.romanov@gmail.com<change type="bugfix">
1092174Smax.romanov@gmail.com<para>
110*2183Sa.clayton@f5.comprevent the ruby application processes from crashing on SIGINT (^C).
111*2183Sa.clayton@f5.com</para>
112*2183Sa.clayton@f5.com</change>
113*2183Sa.clayton@f5.com
114*2183Sa.clayton@f5.com<change type="bugfix">
115*2183Sa.clayton@f5.com<para>
1162174Smax.romanov@gmail.comwhen isolated PID numbers reach the prototype process host PID,
1172174Smax.romanov@gmail.comthe prototype crashed.
1182174Smax.romanov@gmail.com</para>
1192174Smax.romanov@gmail.com</change>
1202174Smax.romanov@gmail.com
1212129Szelenkov@nginx.com</changes>
1222129Szelenkov@nginx.com
1232129Szelenkov@nginx.com
1242129Szelenkov@nginx.com<changes apply="unit-php
1252129Szelenkov@nginx.com                unit-python unit-python2.7
1262129Szelenkov@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1272129Szelenkov@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
1282129Szelenkov@nginx.com                unit-go
1292129Szelenkov@nginx.com                unit-perl
1302129Szelenkov@nginx.com                unit-ruby
1312129Szelenkov@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1322129Szelenkov@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
1332012Svbart@nginx.com         ver="1.27.0" rev="1"
1342127Szelenkov@nginx.com         date="2022-06-02" time="18:00:00 +0300"
1352012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1362012Svbart@nginx.com
1372012Svbart@nginx.com<change>
1382012Svbart@nginx.com<para>
1392012Svbart@nginx.comNGINX Unit updated to 1.27.0.
1402012Svbart@nginx.com</para>
1412012Svbart@nginx.com</change>
1422012Svbart@nginx.com
1432012Svbart@nginx.com</changes>
1442012Svbart@nginx.com
1452012Svbart@nginx.com
1462012Svbart@nginx.com<changes apply="unit" ver="1.27.0" rev="1"
1472127Szelenkov@nginx.com         date="2022-06-02" time="18:00:00 +0300"
1482012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1492012Svbart@nginx.com
1502072Sz.hong@f5.com<change type="feature">
1512072Sz.hong@f5.com<para>
1522108Salx.manpages@gmail.comability to specify a custom index file name when serving static files.
1532108Salx.manpages@gmail.com</para>
1542108Salx.manpages@gmail.com</change>
1552108Salx.manpages@gmail.com
1562108Salx.manpages@gmail.com<change type="feature">
1572108Salx.manpages@gmail.com<para>
1582081Salx.manpages@gmail.comvariables support in the "location" option of the "return" action.
1592081Salx.manpages@gmail.com</para>
1602081Salx.manpages@gmail.com</change>
1612081Salx.manpages@gmail.com
1622081Salx.manpages@gmail.com<change type="feature">
1632081Salx.manpages@gmail.com<para>
1642113Sartem.konev@nginx.comsupport empty strings in the "location" option of the "return" action.
1652113Sartem.konev@nginx.com</para>
1662113Sartem.konev@nginx.com</change>
1672113Sartem.konev@nginx.com
1682113Sartem.konev@nginx.com<change type="feature">
1692113Sartem.konev@nginx.com<para>
1702113Sartem.konev@nginx.comadded a new variable, $request_uri, that includes both the path and the query
1712113Sartem.konev@nginx.comparts as per RFC 3986, sections 3-4.
1722113Sartem.konev@nginx.com</para>
1732113Sartem.konev@nginx.com</change>
1742113Sartem.konev@nginx.com
1752113Sartem.konev@nginx.com<change type="feature">
1762113Sartem.konev@nginx.com<para>
1772113Sartem.konev@nginx.comRuby Rack environment parameter "SCRIPT_NAME" support.
1782110Salx.manpages@gmail.com</para>
1792110Salx.manpages@gmail.com</change>
1802110Salx.manpages@gmail.com
1812110Salx.manpages@gmail.com<change type="feature">
1822110Salx.manpages@gmail.com<para>
1832072Sz.hong@f5.comcompatibility with GCC 12.
1842072Sz.hong@f5.com</para>
1852072Sz.hong@f5.com</change>
1862072Sz.hong@f5.com
1872060Smax.romanov@nginx.com<change type="bugfix">
1882060Smax.romanov@nginx.com<para>
1892093Sz.hong@f5.comRuby Sinatra applications don't work without custom logging.
1902093Sz.hong@f5.com</para>
1912093Sz.hong@f5.com</change>
1922093Sz.hong@f5.com
1932093Sz.hong@f5.com<change type="bugfix">
1942093Sz.hong@f5.com<para>
1952113Sartem.konev@nginx.comthe controller process could crash when a chain of more than four
1962069Sz.hong@f5.comcertificates was uploaded.
1972069Sz.hong@f5.com</para>
1982069Sz.hong@f5.com</change>
1992069Sz.hong@f5.com
2002069Sz.hong@f5.com<change type="bugfix">
2012069Sz.hong@f5.com<para>
2022060Smax.romanov@nginx.comsome Perl applications failed to process the request body, notably with Plack.
2032060Smax.romanov@nginx.com</para>
2042060Smax.romanov@nginx.com</change>
2052060Smax.romanov@nginx.com
2062061Smax.romanov@nginx.com<change type="bugfix">
2072061Smax.romanov@nginx.com<para>
2082061Smax.romanov@nginx.comsome Spring Boot applications failed to start, notably with Grails.
2092061Smax.romanov@nginx.com</para>
2102061Smax.romanov@nginx.com</change>
2112061Smax.romanov@nginx.com
2122067Smax.romanov@nginx.com<change type="bugfix">
2132067Smax.romanov@nginx.com<para>
2142067Smax.romanov@nginx.comincorrect Python protocol auto detection (ASGI or WSGI) for native callable
2152067Smax.romanov@nginx.comobject, notably with Falcon.
2162067Smax.romanov@nginx.com</para>
2172067Smax.romanov@nginx.com</change>
2182067Smax.romanov@nginx.com
2192117Szelenkov@nginx.com<change type="bugfix">
2202117Szelenkov@nginx.com<para>
2212117Szelenkov@nginx.comECMAScript modules did not work with the recent Node.js versions.
2222117Szelenkov@nginx.com</para>
2232117Szelenkov@nginx.com</change>
2242117Szelenkov@nginx.com
2252050Svbart@nginx.com</changes>
2262050Svbart@nginx.com
2272050Svbart@nginx.com
2282050Svbart@nginx.com<changes apply="unit-php
2292050Svbart@nginx.com                unit-python unit-python2.7
2302050Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2312050Svbart@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
2322050Svbart@nginx.com                unit-go
2332050Svbart@nginx.com                unit-perl
2342050Svbart@nginx.com                unit-ruby
2352050Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2362050Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
2372029SN/A         ver="1.26.1" rev="1"
2382045SN/A         date="2021-12-02" time="18:00:00 +0300"
2392029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2402029SN/A
2412029SN/A<change>
2422029SN/A<para>
2432029SN/ANGINX Unit updated to 1.26.1.
2442029SN/A</para>
2452029SN/A</change>
2462029SN/A
2472029SN/A</changes>
2482029SN/A
2492029SN/A
2502029SN/A<changes apply="unit" ver="1.26.1" rev="1"
2512045SN/A         date="2021-12-02" time="18:00:00 +0300"
2522029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2532029SN/A
2542033SN/A<change type="bugfix">
2552033SN/A<para>
2562044SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had
2572044SN/Aappeared in 1.26.0.
2582033SN/A</para>
2592033SN/A</change>
2602033SN/A
2612034SN/A<change type="bugfix">
2622034SN/A<para>
2632044SN/Aa prototype process could crash on an application process exit; the bug had
2642034SN/Aappeared in 1.26.0.
2652034SN/A</para>
2662034SN/A</change>
2672034SN/A
2682035SN/A<change type="bugfix">
2692035SN/A<para>
2702044SN/Athe router process crashed on reconfiguration if "access_log" was configured
2712044SN/Awithout listeners.
2722044SN/A</para>
2732044SN/A</change>
2742044SN/A
2752044SN/A<change type="bugfix">
2762044SN/A<para>
2772035SN/Aa segmentation fault occurred in the PHP module if chdir() or
2782035SN/Afastcgi_finish_request() was called in the OPcache preloading script.
2792035SN/A</para>
2802035SN/A</change>
2812035SN/A
2822040SN/A<change type="bugfix">
2832040SN/A<para>
2842041SN/Afatal errors on DragonFly BSD; the bug had appeared in 1.26.0.
2852041SN/A</para>
2862041SN/A</change>
2872041SN/A
2882029SN/A</changes>
2892029SN/A
2902029SN/A
2911973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1"
2922007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2931973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2941973Sdefan@nginx.com
2951973Sdefan@nginx.com<change>
2961973Sdefan@nginx.com<para>
2971973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit.
2981973Sdefan@nginx.com</para>
2991973Sdefan@nginx.com</change>
3001973Sdefan@nginx.com
3011973Sdefan@nginx.com</changes>
3021973Sdefan@nginx.com
3031973Sdefan@nginx.com
3041973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1"
3052007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
3061973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3071973Sdefan@nginx.com
3081973Sdefan@nginx.com<change>
3091973Sdefan@nginx.com<para>
3101973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit.
3111973Sdefan@nginx.com</para>
3121973Sdefan@nginx.com</change>
3131973Sdefan@nginx.com
3141973Sdefan@nginx.com</changes>
3151973Sdefan@nginx.com
3161973Sdefan@nginx.com
3171896Svbart@nginx.com<changes apply="unit-php
3181896Svbart@nginx.com                unit-python unit-python2.7
3191896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3201896Svbart@nginx.com                unit-python3.8 unit-python3.9
3211896Svbart@nginx.com                unit-go
3221896Svbart@nginx.com                unit-perl
3231896Svbart@nginx.com                unit-ruby
3241896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3251896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
3261951Svbart@nginx.com         ver="1.26.0" rev="1"
3272007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
3281951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3291951Svbart@nginx.com
3301951Svbart@nginx.com<change>
3311951Svbart@nginx.com<para>
3321951Svbart@nginx.comNGINX Unit updated to 1.26.0.
3331951Svbart@nginx.com</para>
3341951Svbart@nginx.com</change>
3351951Svbart@nginx.com
3361951Svbart@nginx.com</changes>
3371951Svbart@nginx.com
3381951Svbart@nginx.com
3391951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
3402007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
3411951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3421951Svbart@nginx.com
3431960Sz.hong@f5.com<change type="change">
3441960Sz.hong@f5.com<para>
3451960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
3461960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
3471960Sz.hong@f5.com</para>
3481960Sz.hong@f5.com</change>
3491960Sz.hong@f5.com
3501960Sz.hong@f5.com<change type="feature">
3511960Sz.hong@f5.com<para>
3522006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior
3532006Svbart@nginx.comwhen updating from previous versions.
3542006Svbart@nginx.com</para>
3552006Svbart@nginx.com</change>
3562006Svbart@nginx.com
3572006Svbart@nginx.com<change type="feature">
3582006Svbart@nginx.com<para>
3591960Sz.hong@f5.comvariables support in the "share" option.
3601960Sz.hong@f5.com</para>
3611960Sz.hong@f5.com</change>
3621960Sz.hong@f5.com
3631959Sz.hong@f5.com<change type="feature">
3641959Sz.hong@f5.com<para>
3651961Sz.hong@f5.commultiple paths in the "share" option.
3661961Sz.hong@f5.com</para>
3671961Sz.hong@f5.com</change>
3681961Sz.hong@f5.com
3691961Sz.hong@f5.com<change type="feature">
3701961Sz.hong@f5.com<para>
3711959Sz.hong@f5.comvariables support in the "chroot" option.
3721959Sz.hong@f5.com</para>
3731959Sz.hong@f5.com</change>
3741959Sz.hong@f5.com
3751969Sz.hong@f5.com<change type="feature">
3761969Sz.hong@f5.com<para>
3772006Svbart@nginx.comPHP opcache is shared between application processes.
3781969Sz.hong@f5.com</para>
3791969Sz.hong@f5.com</change>
3801969Sz.hong@f5.com
3811991Sz.hong@f5.com<change type="feature">
3821991Sz.hong@f5.com<para>
3831991Sz.hong@f5.comrequest routing by the query string.
3841991Sz.hong@f5.com</para>
3851991Sz.hong@f5.com</change>
3861991Sz.hong@f5.com
3871955Smax.romanov@nginx.com<change type="bugfix">
3881955Smax.romanov@nginx.com<para>
3892006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached
3902006Svbart@nginx.comby asynchronous or multithreaded apps.
3911955Smax.romanov@nginx.com</para>
3921955Smax.romanov@nginx.com</change>
3931955Smax.romanov@nginx.com
3941956Smax.romanov@nginx.com<change type="bugfix">
3951956Smax.romanov@nginx.com<para>
3961956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
3971956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
3981956Smax.romanov@nginx.com</para>
3991956Smax.romanov@nginx.com</change>
4001956Smax.romanov@nginx.com
4011992Smax.romanov@nginx.com<change type="bugfix">
4021992Smax.romanov@nginx.com<para>
4032006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35.
4041992Smax.romanov@nginx.com</para>
4051992Smax.romanov@nginx.com</change>
4061992Smax.romanov@nginx.com
4071951Svbart@nginx.com</changes>
4081951Svbart@nginx.com
4091951Svbart@nginx.com
4101951Svbart@nginx.com<changes apply="unit-php
4111951Svbart@nginx.com                unit-python unit-python2.7
4121951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4131951Svbart@nginx.com                unit-python3.8 unit-python3.9
4141951Svbart@nginx.com                unit-go
4151951Svbart@nginx.com                unit-perl
4161951Svbart@nginx.com                unit-ruby
4171951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4181951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
4191896Svbart@nginx.com         ver="1.25.0" rev="1"
4201945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
4211896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4221896Svbart@nginx.com
4231896Svbart@nginx.com<change>
4241896Svbart@nginx.com<para>
4251896Svbart@nginx.comNGINX Unit updated to 1.25.0.
4261896Svbart@nginx.com</para>
4271896Svbart@nginx.com</change>
4281896Svbart@nginx.com
4291896Svbart@nginx.com</changes>
4301896Svbart@nginx.com
4311896Svbart@nginx.com
4321896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
4331945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
4341896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4351896Svbart@nginx.com
4361910So.canty@f5.com<change type="feature">
4371910So.canty@f5.com<para>
4381944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
4391942Sa.suvorov@f5.com</para>
4401942Sa.suvorov@f5.com</change>
4411942Sa.suvorov@f5.com
4421942Sa.suvorov@f5.com<change type="feature">
4431942Sa.suvorov@f5.com<para>
4441920Sa.suvorov@f5.comTLS sessions cache.
4451920Sa.suvorov@f5.com</para>
4461920Sa.suvorov@f5.com</change>
4471920Sa.suvorov@f5.com
4481920Sa.suvorov@f5.com<change type="feature">
4491920Sa.suvorov@f5.com<para>
4501944Svbart@nginx.comTLS session tickets.
4511910So.canty@f5.com</para>
4521910So.canty@f5.com</change>
4531910So.canty@f5.com
4541926Smax.romanov@nginx.com<change type="feature">
4551926Smax.romanov@nginx.com<para>
4561926Smax.romanov@nginx.comapplication restart control.
4571926Smax.romanov@nginx.com</para>
4581926Smax.romanov@nginx.com</change>
4591926Smax.romanov@nginx.com
4601936So.canty@f5.com<change type="feature">
4611936So.canty@f5.com<para>
4621944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
4631936So.canty@f5.com</para>
4641936So.canty@f5.com</change>
4651936So.canty@f5.com
4661907Smax.romanov@nginx.com<change type="bugfix">
4671907Smax.romanov@nginx.com<para>
4681944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
4691944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
4701921Sa.suvorov@f5.com</para>
4711921Sa.suvorov@f5.com</change>
4721921Sa.suvorov@f5.com
4731921Sa.suvorov@f5.com<change type="bugfix">
4741921Sa.suvorov@f5.com<para>
4751944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
4761944Svbart@nginx.combundles in a listener if the client did not use SNI.
4771907Smax.romanov@nginx.com</para>
4781907Smax.romanov@nginx.com</change>
4791907Smax.romanov@nginx.com
4801907Smax.romanov@nginx.com<change type="bugfix">
4811907Smax.romanov@nginx.com<para>
4821950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
4831915Smax.romanov@nginx.comreconfiguration.
4841915Smax.romanov@nginx.com</para>
4851915Smax.romanov@nginx.com</change>
4861915Smax.romanov@nginx.com
4871915Smax.romanov@nginx.com<change type="bugfix">
4881915Smax.romanov@nginx.com<para>
4891944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
4901944Svbart@nginx.comframework.
4911944Svbart@nginx.com</para>
4921944Svbart@nginx.com</change>
4931944Svbart@nginx.com
4941944Svbart@nginx.com<change type="bugfix">
4951944Svbart@nginx.com<para>
4961944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
4971944Svbart@nginx.comstopped or crashed.
4981907Smax.romanov@nginx.com</para>
4991907Smax.romanov@nginx.com</change>
5001907Smax.romanov@nginx.com
5011909So.canty@f5.com<change type="bugfix">
5021909So.canty@f5.com<para>
5031909So.canty@f5.comthe controller or router process could crash if the configuration contained
5041909So.canty@f5.coma full-form IPv6 in a listener address.
5051909So.canty@f5.com</para>
5061909So.canty@f5.com</change>
5071909So.canty@f5.com
5081916Smax.romanov@nginx.com<change type="bugfix">
5091916Smax.romanov@nginx.com<para>
5101929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
5111929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
5121929Sz.hong@f5.com</para>
5131929Sz.hong@f5.com</change>
5141929Sz.hong@f5.com
5151930So.canty@f5.com<change type="bugfix">
5161930So.canty@f5.com<para>
5171944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
5181944Svbart@nginx.comor destination address patterns.
5191930So.canty@f5.com</para>
5201930So.canty@f5.com</change>
5211930So.canty@f5.com
5221896Svbart@nginx.com</changes>
5231896Svbart@nginx.com
5241896Svbart@nginx.com
5251887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
5261891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
5271887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5281887Sdefan@nginx.com
5291887Sdefan@nginx.com<change>
5301887Sdefan@nginx.com<para>
5311887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
5321887Sdefan@nginx.com</para>
5331887Sdefan@nginx.com</change>
5341887Sdefan@nginx.com
5351887Sdefan@nginx.com</changes>
5361887Sdefan@nginx.com
5371887Sdefan@nginx.com
5381887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
5391891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
5401887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5411887Sdefan@nginx.com
5421887Sdefan@nginx.com<change>
5431887Sdefan@nginx.com<para>
5441887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
5451887Sdefan@nginx.com</para>
5461887Sdefan@nginx.com</change>
5471887Sdefan@nginx.com
5481887Sdefan@nginx.com</changes>
5491887Sdefan@nginx.com
5501887Sdefan@nginx.com
5511834Svbart@nginx.com<changes apply="unit-php
5521834Svbart@nginx.com                unit-python unit-python2.7
5531834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5541834Svbart@nginx.com                unit-python3.8 unit-python3.9
5551834Svbart@nginx.com                unit-go
5561834Svbart@nginx.com                unit-perl
5571834Svbart@nginx.com                unit-ruby
5581834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
5591834Svbart@nginx.com                unit-jsc14 unit-jsc15"
5601839Svbart@nginx.com         ver="1.24.0" rev="1"
5611891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
5621839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5631839Svbart@nginx.com
5641839Svbart@nginx.com<change>
5651839Svbart@nginx.com<para>
5661839Svbart@nginx.comNGINX Unit updated to 1.24.0.
5671839Svbart@nginx.com</para>
5681839Svbart@nginx.com</change>
5691839Svbart@nginx.com
5701839Svbart@nginx.com</changes>
5711839Svbart@nginx.com
5721839Svbart@nginx.com
5731839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
5741891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
5751839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5761839Svbart@nginx.com
5771882So.canty@f5.com<change type="change">
5781882So.canty@f5.com<para>
5791882So.canty@f5.comPHP added to the default MIME type list.
5801882So.canty@f5.com</para>
5811882So.canty@f5.com</change>
5821882So.canty@f5.com
5831855Sz.hong@f5.com<change type="feature">
5841855Sz.hong@f5.com<para>
5851885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
5861885Sa.suvorov@f5.com</para>
5871885Sa.suvorov@f5.com</change>
5881885Sa.suvorov@f5.com
5891885Sa.suvorov@f5.com<change type="feature">
5901885Sa.suvorov@f5.com<para>
5911890Svbart@nginx.comthe ability to limit static file serving by MIME types.
5921890Svbart@nginx.com</para>
5931890Svbart@nginx.com</change>
5941890Svbart@nginx.com
5951890Svbart@nginx.com<change type="feature">
5961890Svbart@nginx.com<para>
5971890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
5981890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
5991872So.canty@f5.com</para>
6001872So.canty@f5.com</change>
6011872So.canty@f5.com
6021872So.canty@f5.com<change type="feature">
6031872So.canty@f5.com<para>
6041889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
6051889Sartem.konev@nginx.comNode.js.
6061865So.canty@f5.com</para>
6071865So.canty@f5.com</change>
6081865So.canty@f5.com
6091865So.canty@f5.com<change type="feature">
6101865So.canty@f5.com<para>
6111890Svbart@nginx.commultiple "targets" in Python applications.
6121855Sz.hong@f5.com</para>
6131855Sz.hong@f5.com</change>
6141855Sz.hong@f5.com
6151870So.canty@f5.com<change type="feature">
6161870So.canty@f5.com<para>
6171870So.canty@f5.comcompatibility with Ruby 3.0.
6181870So.canty@f5.com</para>
6191870So.canty@f5.com</change>
6201870So.canty@f5.com
6211861Svbart@nginx.com<change type="bugfix">
6221861Svbart@nginx.com<para>
6231889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
6241884Sa.suvorov@f5.com</para>
6251884Sa.suvorov@f5.com</change>
6261884Sa.suvorov@f5.com
6271884Sa.suvorov@f5.com<change type="bugfix">
6281884Sa.suvorov@f5.com<para>
6291861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
6301861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
6311861Svbart@nginx.com</para>
6321861Svbart@nginx.com</change>
6331861Svbart@nginx.com
6341839Svbart@nginx.com</changes>
6351839Svbart@nginx.com
6361839Svbart@nginx.com
6371839Svbart@nginx.com<changes apply="unit-php
6381839Svbart@nginx.com                unit-python unit-python2.7
6391839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6401839Svbart@nginx.com                unit-python3.8 unit-python3.9
6411839Svbart@nginx.com                unit-go
6421839Svbart@nginx.com                unit-perl
6431839Svbart@nginx.com                unit-ruby
6441839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
6451839Svbart@nginx.com                unit-jsc14 unit-jsc15"
6461834Svbart@nginx.com         ver="1.23.0" rev="1"
6471834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
6481834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6491834Svbart@nginx.com
6501834Svbart@nginx.com<change>
6511834Svbart@nginx.com<para>
6521834Svbart@nginx.comNGINX Unit updated to 1.23.0.
6531834Svbart@nginx.com</para>
6541834Svbart@nginx.com</change>
6551834Svbart@nginx.com
6561834Svbart@nginx.com</changes>
6571834Svbart@nginx.com
6581834Svbart@nginx.com
6591806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
6601834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
6611806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6621806Svbart@nginx.com
6631825Sthresh@nginx.com<change type="feature">
6641825Sthresh@nginx.com<para>
6651833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
6661828Sa.suvorov@f5.comIndication (SNI) TLS extension.
6671828Sa.suvorov@f5.com</para>
6681828Sa.suvorov@f5.com</change>
6691828Sa.suvorov@f5.com
6701828Sa.suvorov@f5.com<change type="feature">
6711828Sa.suvorov@f5.com<para>
6721833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
6731833Sartem.konev@nginx.cominstallation.
6741825Sthresh@nginx.com</para>
6751825Sthresh@nginx.com</change>
6761825Sthresh@nginx.com
6771811Smax.romanov@nginx.com<change type="bugfix">
6781811Smax.romanov@nginx.com<para>
6791812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
6801812Svbart@nginx.comappeared in 1.17.0.
6811812Svbart@nginx.com</para>
6821812Svbart@nginx.com</change>
6831812Svbart@nginx.com
6841812Svbart@nginx.com<change type="bugfix">
6851812Svbart@nginx.com<para>
6861833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
6871812Svbart@nginx.comappeared in 1.6.
6881812Svbart@nginx.com</para>
6891812Svbart@nginx.com</change>
6901812Svbart@nginx.com
6911812Svbart@nginx.com<change type="bugfix">
6921812Svbart@nginx.com<para>
6931833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
6941832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
6951832Smax.romanov@nginx.com</para>
6961832Smax.romanov@nginx.com</change>
6971832Smax.romanov@nginx.com
6981832Smax.romanov@nginx.com<change type="bugfix">
6991832Smax.romanov@nginx.com<para>
7001833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
7011811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
7021811Smax.romanov@nginx.com</para>
7031811Smax.romanov@nginx.com</change>
7041806Svbart@nginx.com
7051813Svbart@nginx.com<change type="bugfix">
7061813Svbart@nginx.com<para>
7071813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
7081813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
7091813Svbart@nginx.com</para>
7101813Svbart@nginx.com</change>
7111813Svbart@nginx.com
7121814Svbart@nginx.com<change type="bugfix">
7131814Svbart@nginx.com<para>
7141820Svbart@nginx.comthe controller process could crash while requesting information about a
7151820Svbart@nginx.comcertificate with a non-DNS SAN entry.
7161820Svbart@nginx.com</para>
7171820Svbart@nginx.com</change>
7181820Svbart@nginx.com
7191820Svbart@nginx.com<change type="bugfix">
7201820Svbart@nginx.com<para>
7211822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
7221833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
7231822Svbart@nginx.com</para>
7241822Svbart@nginx.com</change>
7251822Svbart@nginx.com
7261822Svbart@nginx.com<change type="bugfix">
7271822Svbart@nginx.com<para>
7281833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
7291833Sartem.konev@nginx.comclass.
7301814Svbart@nginx.com</para>
7311814Svbart@nginx.com</change>
7321814Svbart@nginx.com
7331815Svbart@nginx.com<change type="bugfix">
7341815Svbart@nginx.com<para>
7351815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
7361815Svbart@nginx.comappeared in 1.22.0.
7371815Svbart@nginx.com</para>
7381815Svbart@nginx.com</change>
7391815Svbart@nginx.com
7401806Svbart@nginx.com</changes>
7411806Svbart@nginx.com
7421806Svbart@nginx.com
7431798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
7441798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
7451798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7461798Sdefan@nginx.com
7471798Sdefan@nginx.com<change>
7481798Sdefan@nginx.com<para>
7491798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
7501798Sdefan@nginx.com</para>
7511798Sdefan@nginx.com</change>
7521798Sdefan@nginx.com
7531798Sdefan@nginx.com</changes>
7541798Sdefan@nginx.com
7551798Sdefan@nginx.com
7561763Sdefan@nginx.com<changes apply="unit-php
7571763Sdefan@nginx.com                unit-python unit-python2.7
7581763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7591763Sdefan@nginx.com                unit-python3.8
7601763Sdefan@nginx.com                unit-go
7611763Sdefan@nginx.com                unit-perl
7621763Sdefan@nginx.com                unit-ruby
7631763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
7641763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
7651763Sdefan@nginx.com         ver="1.22.0" rev="1"
7661793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
7671763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7681763Sdefan@nginx.com
7691763Sdefan@nginx.com<change>
7701763Sdefan@nginx.com<para>
7711763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
7721763Sdefan@nginx.com</para>
7731763Sdefan@nginx.com</change>
7741763Sdefan@nginx.com
7751763Sdefan@nginx.com</changes>
7761763Sdefan@nginx.com
7771763Sdefan@nginx.com
7781727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
7791793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
7801727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7811727Svbart@nginx.com
7821759Svbart@nginx.com<change type="feature">
7831759Svbart@nginx.com<para>
7841792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
7851792Svbart@nginx.comcompliant with Stream API.
7861759Svbart@nginx.com</para>
7871759Svbart@nginx.com</change>
7881759Svbart@nginx.com
7891766Smax.romanov@nginx.com<change type="feature">
7901766Smax.romanov@nginx.com<para>
7911792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
7921792Svbart@nginx.comapps.
7931732Svbart@nginx.com</para>
7941732Svbart@nginx.com</change>
7951732Svbart@nginx.com
7961733Svbart@nginx.com<change type="bugfix">
7971733Svbart@nginx.com<para>
7981792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
7991792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
8001754Smax.romanov@nginx.com</para>
8011754Smax.romanov@nginx.com</change>
8021754Smax.romanov@nginx.com
8031755Smax.romanov@nginx.com<change type="bugfix">
8041755Smax.romanov@nginx.com<para>
8051790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
8061755Smax.romanov@nginx.comappeared in 1.19.0.
8071755Smax.romanov@nginx.com</para>
8081755Smax.romanov@nginx.com</change>
8091755Smax.romanov@nginx.com
8101756Smax.romanov@nginx.com<change type="bugfix">
8111756Smax.romanov@nginx.com<para>
8121790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
8131790Sartem.konev@nginx.comappeared in 1.19.0.
8141756Smax.romanov@nginx.com</para>
8151756Smax.romanov@nginx.com</change>
8161756Smax.romanov@nginx.com
8171760Smax.romanov@nginx.com<change type="bugfix">
8181760Smax.romanov@nginx.com<para>
8191792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
8201792Svbart@nginx.com</para>
8211792Svbart@nginx.com</change>
8221792Svbart@nginx.com
8231792Svbart@nginx.com<change type="bugfix">
8241792Svbart@nginx.com<para>
8251792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
8261792Svbart@nginx.commissing in the PHP module.
8271792Svbart@nginx.com</para>
8281792Svbart@nginx.com</change>
8291792Svbart@nginx.com
8301792Svbart@nginx.com<change type="bugfix">
8311792Svbart@nginx.com<para>
8321792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
8331792Svbart@nginx.com</para>
8341792Svbart@nginx.com</change>
8351792Svbart@nginx.com
8361792Svbart@nginx.com<change type="bugfix">
8371792Svbart@nginx.com<para>
8381792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
8391792Svbart@nginx.com</para>
8401792Svbart@nginx.com</change>
8411792Svbart@nginx.com
8421792Svbart@nginx.com<change type="bugfix">
8431792Svbart@nginx.com<para>
8441792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
8451792Svbart@nginx.comthe bug had appeared in 1.21.0.
8461760Smax.romanov@nginx.com</para>
8471760Smax.romanov@nginx.com</change>
8481760Smax.romanov@nginx.com
8491780Smax.romanov@nginx.com<change type="bugfix">
8501780Smax.romanov@nginx.com<para>
8511790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
8521790Sartem.konev@nginx.comWebSocket.
8531780Smax.romanov@nginx.com</para>
8541780Smax.romanov@nginx.com</change>
855