xref: /unit/docs/changes.xml (revision 2149)
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
342133Sz.hong@f5.com<change type="feature">
352133Sz.hong@f5.com<para>
362133Sz.hong@f5.comforwarded header to replace client address and protocol.
372133Sz.hong@f5.com</para>
382133Sz.hong@f5.com</change>
392133Sz.hong@f5.com
402147Sz.hong@f5.com<change type="feature">
412147Sz.hong@f5.com<para>
422147Sz.hong@f5.comability to get dynamic variables.
432147Sz.hong@f5.com</para>
442147Sz.hong@f5.com</change>
452147Sz.hong@f5.com
46*2149Sz.hong@f5.com<change type="feature">
47*2149Sz.hong@f5.com<para>
48*2149Sz.hong@f5.commore http variables support.
49*2149Sz.hong@f5.com</para>
50*2149Sz.hong@f5.com</change>
51*2149Sz.hong@f5.com
522137Salx.manpages@gmail.com<change type="bugfix">
532137Salx.manpages@gmail.com<para>
542137Salx.manpages@gmail.coman index file that didn't contain a file extension was incorrectly
552137Salx.manpages@gmail.comhandled, and caused a use-after-free bug.
562137Salx.manpages@gmail.com</para>
572137Salx.manpages@gmail.com</change>
582137Salx.manpages@gmail.com
592145Stippexs91@googlemail.com<change type="change">
602145Stippexs91@googlemail.com<para>
612145Stippexs91@googlemail.comincreased the applications' startup timeout.
622145Stippexs91@googlemail.com</para>
632145Stippexs91@googlemail.com</change>
642145Stippexs91@googlemail.com
652129Szelenkov@nginx.com</changes>
662129Szelenkov@nginx.com
672129Szelenkov@nginx.com
682129Szelenkov@nginx.com<changes apply="unit-php
692129Szelenkov@nginx.com                unit-python unit-python2.7
702129Szelenkov@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
712129Szelenkov@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
722129Szelenkov@nginx.com                unit-go
732129Szelenkov@nginx.com                unit-perl
742129Szelenkov@nginx.com                unit-ruby
752129Szelenkov@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
762129Szelenkov@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
772012Svbart@nginx.com         ver="1.27.0" rev="1"
782127Szelenkov@nginx.com         date="2022-06-02" time="18:00:00 +0300"
792012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
802012Svbart@nginx.com
812012Svbart@nginx.com<change>
822012Svbart@nginx.com<para>
832012Svbart@nginx.comNGINX Unit updated to 1.27.0.
842012Svbart@nginx.com</para>
852012Svbart@nginx.com</change>
862012Svbart@nginx.com
872012Svbart@nginx.com</changes>
882012Svbart@nginx.com
892012Svbart@nginx.com
902012Svbart@nginx.com<changes apply="unit" ver="1.27.0" rev="1"
912127Szelenkov@nginx.com         date="2022-06-02" time="18:00:00 +0300"
922012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
932012Svbart@nginx.com
942072Sz.hong@f5.com<change type="feature">
952072Sz.hong@f5.com<para>
962108Salx.manpages@gmail.comability to specify a custom index file name when serving static files.
972108Salx.manpages@gmail.com</para>
982108Salx.manpages@gmail.com</change>
992108Salx.manpages@gmail.com
1002108Salx.manpages@gmail.com<change type="feature">
1012108Salx.manpages@gmail.com<para>
1022081Salx.manpages@gmail.comvariables support in the "location" option of the "return" action.
1032081Salx.manpages@gmail.com</para>
1042081Salx.manpages@gmail.com</change>
1052081Salx.manpages@gmail.com
1062081Salx.manpages@gmail.com<change type="feature">
1072081Salx.manpages@gmail.com<para>
1082113Sartem.konev@nginx.comsupport empty strings in the "location" option of the "return" action.
1092113Sartem.konev@nginx.com</para>
1102113Sartem.konev@nginx.com</change>
1112113Sartem.konev@nginx.com
1122113Sartem.konev@nginx.com<change type="feature">
1132113Sartem.konev@nginx.com<para>
1142113Sartem.konev@nginx.comadded a new variable, $request_uri, that includes both the path and the query
1152113Sartem.konev@nginx.comparts as per RFC 3986, sections 3-4.
1162113Sartem.konev@nginx.com</para>
1172113Sartem.konev@nginx.com</change>
1182113Sartem.konev@nginx.com
1192113Sartem.konev@nginx.com<change type="feature">
1202113Sartem.konev@nginx.com<para>
1212113Sartem.konev@nginx.comRuby Rack environment parameter "SCRIPT_NAME" support.
1222110Salx.manpages@gmail.com</para>
1232110Salx.manpages@gmail.com</change>
1242110Salx.manpages@gmail.com
1252110Salx.manpages@gmail.com<change type="feature">
1262110Salx.manpages@gmail.com<para>
1272072Sz.hong@f5.comcompatibility with GCC 12.
1282072Sz.hong@f5.com</para>
1292072Sz.hong@f5.com</change>
1302072Sz.hong@f5.com
1312060Smax.romanov@nginx.com<change type="bugfix">
1322060Smax.romanov@nginx.com<para>
1332093Sz.hong@f5.comRuby Sinatra applications don't work without custom logging.
1342093Sz.hong@f5.com</para>
1352093Sz.hong@f5.com</change>
1362093Sz.hong@f5.com
1372093Sz.hong@f5.com<change type="bugfix">
1382093Sz.hong@f5.com<para>
1392113Sartem.konev@nginx.comthe controller process could crash when a chain of more than four
1402069Sz.hong@f5.comcertificates was uploaded.
1412069Sz.hong@f5.com</para>
1422069Sz.hong@f5.com</change>
1432069Sz.hong@f5.com
1442069Sz.hong@f5.com<change type="bugfix">
1452069Sz.hong@f5.com<para>
1462060Smax.romanov@nginx.comsome Perl applications failed to process the request body, notably with Plack.
1472060Smax.romanov@nginx.com</para>
1482060Smax.romanov@nginx.com</change>
1492060Smax.romanov@nginx.com
1502061Smax.romanov@nginx.com<change type="bugfix">
1512061Smax.romanov@nginx.com<para>
1522061Smax.romanov@nginx.comsome Spring Boot applications failed to start, notably with Grails.
1532061Smax.romanov@nginx.com</para>
1542061Smax.romanov@nginx.com</change>
1552061Smax.romanov@nginx.com
1562067Smax.romanov@nginx.com<change type="bugfix">
1572067Smax.romanov@nginx.com<para>
1582067Smax.romanov@nginx.comincorrect Python protocol auto detection (ASGI or WSGI) for native callable
1592067Smax.romanov@nginx.comobject, notably with Falcon.
1602067Smax.romanov@nginx.com</para>
1612067Smax.romanov@nginx.com</change>
1622067Smax.romanov@nginx.com
1632117Szelenkov@nginx.com<change type="bugfix">
1642117Szelenkov@nginx.com<para>
1652117Szelenkov@nginx.comECMAScript modules did not work with the recent Node.js versions.
1662117Szelenkov@nginx.com</para>
1672117Szelenkov@nginx.com</change>
1682117Szelenkov@nginx.com
1692050Svbart@nginx.com</changes>
1702050Svbart@nginx.com
1712050Svbart@nginx.com
1722050Svbart@nginx.com<changes apply="unit-php
1732050Svbart@nginx.com                unit-python unit-python2.7
1742050Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1752050Svbart@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
1762050Svbart@nginx.com                unit-go
1772050Svbart@nginx.com                unit-perl
1782050Svbart@nginx.com                unit-ruby
1792050Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1802050Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
1812029SN/A         ver="1.26.1" rev="1"
1822045SN/A         date="2021-12-02" time="18:00:00 +0300"
1832029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1842029SN/A
1852029SN/A<change>
1862029SN/A<para>
1872029SN/ANGINX Unit updated to 1.26.1.
1882029SN/A</para>
1892029SN/A</change>
1902029SN/A
1912029SN/A</changes>
1922029SN/A
1932029SN/A
1942029SN/A<changes apply="unit" ver="1.26.1" rev="1"
1952045SN/A         date="2021-12-02" time="18:00:00 +0300"
1962029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1972029SN/A
1982033SN/A<change type="bugfix">
1992033SN/A<para>
2002044SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had
2012044SN/Aappeared in 1.26.0.
2022033SN/A</para>
2032033SN/A</change>
2042033SN/A
2052034SN/A<change type="bugfix">
2062034SN/A<para>
2072044SN/Aa prototype process could crash on an application process exit; the bug had
2082034SN/Aappeared in 1.26.0.
2092034SN/A</para>
2102034SN/A</change>
2112034SN/A
2122035SN/A<change type="bugfix">
2132035SN/A<para>
2142044SN/Athe router process crashed on reconfiguration if "access_log" was configured
2152044SN/Awithout listeners.
2162044SN/A</para>
2172044SN/A</change>
2182044SN/A
2192044SN/A<change type="bugfix">
2202044SN/A<para>
2212035SN/Aa segmentation fault occurred in the PHP module if chdir() or
2222035SN/Afastcgi_finish_request() was called in the OPcache preloading script.
2232035SN/A</para>
2242035SN/A</change>
2252035SN/A
2262040SN/A<change type="bugfix">
2272040SN/A<para>
2282041SN/Afatal errors on DragonFly BSD; the bug had appeared in 1.26.0.
2292041SN/A</para>
2302041SN/A</change>
2312041SN/A
2322029SN/A</changes>
2332029SN/A
2342029SN/A
2351973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1"
2362007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2371973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2381973Sdefan@nginx.com
2391973Sdefan@nginx.com<change>
2401973Sdefan@nginx.com<para>
2411973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit.
2421973Sdefan@nginx.com</para>
2431973Sdefan@nginx.com</change>
2441973Sdefan@nginx.com
2451973Sdefan@nginx.com</changes>
2461973Sdefan@nginx.com
2471973Sdefan@nginx.com
2481973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1"
2492007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2501973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2511973Sdefan@nginx.com
2521973Sdefan@nginx.com<change>
2531973Sdefan@nginx.com<para>
2541973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit.
2551973Sdefan@nginx.com</para>
2561973Sdefan@nginx.com</change>
2571973Sdefan@nginx.com
2581973Sdefan@nginx.com</changes>
2591973Sdefan@nginx.com
2601973Sdefan@nginx.com
2611896Svbart@nginx.com<changes apply="unit-php
2621896Svbart@nginx.com                unit-python unit-python2.7
2631896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2641896Svbart@nginx.com                unit-python3.8 unit-python3.9
2651896Svbart@nginx.com                unit-go
2661896Svbart@nginx.com                unit-perl
2671896Svbart@nginx.com                unit-ruby
2681896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2691896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
2701951Svbart@nginx.com         ver="1.26.0" rev="1"
2712007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2721951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2731951Svbart@nginx.com
2741951Svbart@nginx.com<change>
2751951Svbart@nginx.com<para>
2761951Svbart@nginx.comNGINX Unit updated to 1.26.0.
2771951Svbart@nginx.com</para>
2781951Svbart@nginx.com</change>
2791951Svbart@nginx.com
2801951Svbart@nginx.com</changes>
2811951Svbart@nginx.com
2821951Svbart@nginx.com
2831951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
2842007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2851951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2861951Svbart@nginx.com
2871960Sz.hong@f5.com<change type="change">
2881960Sz.hong@f5.com<para>
2891960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
2901960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
2911960Sz.hong@f5.com</para>
2921960Sz.hong@f5.com</change>
2931960Sz.hong@f5.com
2941960Sz.hong@f5.com<change type="feature">
2951960Sz.hong@f5.com<para>
2962006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior
2972006Svbart@nginx.comwhen updating from previous versions.
2982006Svbart@nginx.com</para>
2992006Svbart@nginx.com</change>
3002006Svbart@nginx.com
3012006Svbart@nginx.com<change type="feature">
3022006Svbart@nginx.com<para>
3031960Sz.hong@f5.comvariables support in the "share" option.
3041960Sz.hong@f5.com</para>
3051960Sz.hong@f5.com</change>
3061960Sz.hong@f5.com
3071959Sz.hong@f5.com<change type="feature">
3081959Sz.hong@f5.com<para>
3091961Sz.hong@f5.commultiple paths in the "share" option.
3101961Sz.hong@f5.com</para>
3111961Sz.hong@f5.com</change>
3121961Sz.hong@f5.com
3131961Sz.hong@f5.com<change type="feature">
3141961Sz.hong@f5.com<para>
3151959Sz.hong@f5.comvariables support in the "chroot" option.
3161959Sz.hong@f5.com</para>
3171959Sz.hong@f5.com</change>
3181959Sz.hong@f5.com
3191969Sz.hong@f5.com<change type="feature">
3201969Sz.hong@f5.com<para>
3212006Svbart@nginx.comPHP opcache is shared between application processes.
3221969Sz.hong@f5.com</para>
3231969Sz.hong@f5.com</change>
3241969Sz.hong@f5.com
3251991Sz.hong@f5.com<change type="feature">
3261991Sz.hong@f5.com<para>
3271991Sz.hong@f5.comrequest routing by the query string.
3281991Sz.hong@f5.com</para>
3291991Sz.hong@f5.com</change>
3301991Sz.hong@f5.com
3311955Smax.romanov@nginx.com<change type="bugfix">
3321955Smax.romanov@nginx.com<para>
3332006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached
3342006Svbart@nginx.comby asynchronous or multithreaded apps.
3351955Smax.romanov@nginx.com</para>
3361955Smax.romanov@nginx.com</change>
3371955Smax.romanov@nginx.com
3381956Smax.romanov@nginx.com<change type="bugfix">
3391956Smax.romanov@nginx.com<para>
3401956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
3411956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
3421956Smax.romanov@nginx.com</para>
3431956Smax.romanov@nginx.com</change>
3441956Smax.romanov@nginx.com
3451992Smax.romanov@nginx.com<change type="bugfix">
3461992Smax.romanov@nginx.com<para>
3472006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35.
3481992Smax.romanov@nginx.com</para>
3491992Smax.romanov@nginx.com</change>
3501992Smax.romanov@nginx.com
3511951Svbart@nginx.com</changes>
3521951Svbart@nginx.com
3531951Svbart@nginx.com
3541951Svbart@nginx.com<changes apply="unit-php
3551951Svbart@nginx.com                unit-python unit-python2.7
3561951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3571951Svbart@nginx.com                unit-python3.8 unit-python3.9
3581951Svbart@nginx.com                unit-go
3591951Svbart@nginx.com                unit-perl
3601951Svbart@nginx.com                unit-ruby
3611951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3621951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
3631896Svbart@nginx.com         ver="1.25.0" rev="1"
3641945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
3651896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3661896Svbart@nginx.com
3671896Svbart@nginx.com<change>
3681896Svbart@nginx.com<para>
3691896Svbart@nginx.comNGINX Unit updated to 1.25.0.
3701896Svbart@nginx.com</para>
3711896Svbart@nginx.com</change>
3721896Svbart@nginx.com
3731896Svbart@nginx.com</changes>
3741896Svbart@nginx.com
3751896Svbart@nginx.com
3761896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
3771945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
3781896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3791896Svbart@nginx.com
3801910So.canty@f5.com<change type="feature">
3811910So.canty@f5.com<para>
3821944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
3831942Sa.suvorov@f5.com</para>
3841942Sa.suvorov@f5.com</change>
3851942Sa.suvorov@f5.com
3861942Sa.suvorov@f5.com<change type="feature">
3871942Sa.suvorov@f5.com<para>
3881920Sa.suvorov@f5.comTLS sessions cache.
3891920Sa.suvorov@f5.com</para>
3901920Sa.suvorov@f5.com</change>
3911920Sa.suvorov@f5.com
3921920Sa.suvorov@f5.com<change type="feature">
3931920Sa.suvorov@f5.com<para>
3941944Svbart@nginx.comTLS session tickets.
3951910So.canty@f5.com</para>
3961910So.canty@f5.com</change>
3971910So.canty@f5.com
3981926Smax.romanov@nginx.com<change type="feature">
3991926Smax.romanov@nginx.com<para>
4001926Smax.romanov@nginx.comapplication restart control.
4011926Smax.romanov@nginx.com</para>
4021926Smax.romanov@nginx.com</change>
4031926Smax.romanov@nginx.com
4041936So.canty@f5.com<change type="feature">
4051936So.canty@f5.com<para>
4061944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
4071936So.canty@f5.com</para>
4081936So.canty@f5.com</change>
4091936So.canty@f5.com
4101907Smax.romanov@nginx.com<change type="bugfix">
4111907Smax.romanov@nginx.com<para>
4121944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
4131944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
4141921Sa.suvorov@f5.com</para>
4151921Sa.suvorov@f5.com</change>
4161921Sa.suvorov@f5.com
4171921Sa.suvorov@f5.com<change type="bugfix">
4181921Sa.suvorov@f5.com<para>
4191944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
4201944Svbart@nginx.combundles in a listener if the client did not use SNI.
4211907Smax.romanov@nginx.com</para>
4221907Smax.romanov@nginx.com</change>
4231907Smax.romanov@nginx.com
4241907Smax.romanov@nginx.com<change type="bugfix">
4251907Smax.romanov@nginx.com<para>
4261950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
4271915Smax.romanov@nginx.comreconfiguration.
4281915Smax.romanov@nginx.com</para>
4291915Smax.romanov@nginx.com</change>
4301915Smax.romanov@nginx.com
4311915Smax.romanov@nginx.com<change type="bugfix">
4321915Smax.romanov@nginx.com<para>
4331944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
4341944Svbart@nginx.comframework.
4351944Svbart@nginx.com</para>
4361944Svbart@nginx.com</change>
4371944Svbart@nginx.com
4381944Svbart@nginx.com<change type="bugfix">
4391944Svbart@nginx.com<para>
4401944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
4411944Svbart@nginx.comstopped or crashed.
4421907Smax.romanov@nginx.com</para>
4431907Smax.romanov@nginx.com</change>
4441907Smax.romanov@nginx.com
4451909So.canty@f5.com<change type="bugfix">
4461909So.canty@f5.com<para>
4471909So.canty@f5.comthe controller or router process could crash if the configuration contained
4481909So.canty@f5.coma full-form IPv6 in a listener address.
4491909So.canty@f5.com</para>
4501909So.canty@f5.com</change>
4511909So.canty@f5.com
4521916Smax.romanov@nginx.com<change type="bugfix">
4531916Smax.romanov@nginx.com<para>
4541929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
4551929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
4561929Sz.hong@f5.com</para>
4571929Sz.hong@f5.com</change>
4581929Sz.hong@f5.com
4591930So.canty@f5.com<change type="bugfix">
4601930So.canty@f5.com<para>
4611944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
4621944Svbart@nginx.comor destination address patterns.
4631930So.canty@f5.com</para>
4641930So.canty@f5.com</change>
4651930So.canty@f5.com
4661896Svbart@nginx.com</changes>
4671896Svbart@nginx.com
4681896Svbart@nginx.com
4691887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
4701891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4711887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4721887Sdefan@nginx.com
4731887Sdefan@nginx.com<change>
4741887Sdefan@nginx.com<para>
4751887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
4761887Sdefan@nginx.com</para>
4771887Sdefan@nginx.com</change>
4781887Sdefan@nginx.com
4791887Sdefan@nginx.com</changes>
4801887Sdefan@nginx.com
4811887Sdefan@nginx.com
4821887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
4831891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4841887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4851887Sdefan@nginx.com
4861887Sdefan@nginx.com<change>
4871887Sdefan@nginx.com<para>
4881887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
4891887Sdefan@nginx.com</para>
4901887Sdefan@nginx.com</change>
4911887Sdefan@nginx.com
4921887Sdefan@nginx.com</changes>
4931887Sdefan@nginx.com
4941887Sdefan@nginx.com
4951834Svbart@nginx.com<changes apply="unit-php
4961834Svbart@nginx.com                unit-python unit-python2.7
4971834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4981834Svbart@nginx.com                unit-python3.8 unit-python3.9
4991834Svbart@nginx.com                unit-go
5001834Svbart@nginx.com                unit-perl
5011834Svbart@nginx.com                unit-ruby
5021834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
5031834Svbart@nginx.com                unit-jsc14 unit-jsc15"
5041839Svbart@nginx.com         ver="1.24.0" rev="1"
5051891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
5061839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5071839Svbart@nginx.com
5081839Svbart@nginx.com<change>
5091839Svbart@nginx.com<para>
5101839Svbart@nginx.comNGINX Unit updated to 1.24.0.
5111839Svbart@nginx.com</para>
5121839Svbart@nginx.com</change>
5131839Svbart@nginx.com
5141839Svbart@nginx.com</changes>
5151839Svbart@nginx.com
5161839Svbart@nginx.com
5171839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
5181891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
5191839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5201839Svbart@nginx.com
5211882So.canty@f5.com<change type="change">
5221882So.canty@f5.com<para>
5231882So.canty@f5.comPHP added to the default MIME type list.
5241882So.canty@f5.com</para>
5251882So.canty@f5.com</change>
5261882So.canty@f5.com
5271855Sz.hong@f5.com<change type="feature">
5281855Sz.hong@f5.com<para>
5291885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
5301885Sa.suvorov@f5.com</para>
5311885Sa.suvorov@f5.com</change>
5321885Sa.suvorov@f5.com
5331885Sa.suvorov@f5.com<change type="feature">
5341885Sa.suvorov@f5.com<para>
5351890Svbart@nginx.comthe ability to limit static file serving by MIME types.
5361890Svbart@nginx.com</para>
5371890Svbart@nginx.com</change>
5381890Svbart@nginx.com
5391890Svbart@nginx.com<change type="feature">
5401890Svbart@nginx.com<para>
5411890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
5421890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
5431872So.canty@f5.com</para>
5441872So.canty@f5.com</change>
5451872So.canty@f5.com
5461872So.canty@f5.com<change type="feature">
5471872So.canty@f5.com<para>
5481889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
5491889Sartem.konev@nginx.comNode.js.
5501865So.canty@f5.com</para>
5511865So.canty@f5.com</change>
5521865So.canty@f5.com
5531865So.canty@f5.com<change type="feature">
5541865So.canty@f5.com<para>
5551890Svbart@nginx.commultiple "targets" in Python applications.
5561855Sz.hong@f5.com</para>
5571855Sz.hong@f5.com</change>
5581855Sz.hong@f5.com
5591870So.canty@f5.com<change type="feature">
5601870So.canty@f5.com<para>
5611870So.canty@f5.comcompatibility with Ruby 3.0.
5621870So.canty@f5.com</para>
5631870So.canty@f5.com</change>
5641870So.canty@f5.com
5651861Svbart@nginx.com<change type="bugfix">
5661861Svbart@nginx.com<para>
5671889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
5681884Sa.suvorov@f5.com</para>
5691884Sa.suvorov@f5.com</change>
5701884Sa.suvorov@f5.com
5711884Sa.suvorov@f5.com<change type="bugfix">
5721884Sa.suvorov@f5.com<para>
5731861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
5741861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
5751861Svbart@nginx.com</para>
5761861Svbart@nginx.com</change>
5771861Svbart@nginx.com
5781839Svbart@nginx.com</changes>
5791839Svbart@nginx.com
5801839Svbart@nginx.com
5811839Svbart@nginx.com<changes apply="unit-php
5821839Svbart@nginx.com                unit-python unit-python2.7
5831839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5841839Svbart@nginx.com                unit-python3.8 unit-python3.9
5851839Svbart@nginx.com                unit-go
5861839Svbart@nginx.com                unit-perl
5871839Svbart@nginx.com                unit-ruby
5881839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
5891839Svbart@nginx.com                unit-jsc14 unit-jsc15"
5901834Svbart@nginx.com         ver="1.23.0" rev="1"
5911834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
5921834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5931834Svbart@nginx.com
5941834Svbart@nginx.com<change>
5951834Svbart@nginx.com<para>
5961834Svbart@nginx.comNGINX Unit updated to 1.23.0.
5971834Svbart@nginx.com</para>
5981834Svbart@nginx.com</change>
5991834Svbart@nginx.com
6001834Svbart@nginx.com</changes>
6011834Svbart@nginx.com
6021834Svbart@nginx.com
6031806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
6041834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
6051806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6061806Svbart@nginx.com
6071825Sthresh@nginx.com<change type="feature">
6081825Sthresh@nginx.com<para>
6091833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
6101828Sa.suvorov@f5.comIndication (SNI) TLS extension.
6111828Sa.suvorov@f5.com</para>
6121828Sa.suvorov@f5.com</change>
6131828Sa.suvorov@f5.com
6141828Sa.suvorov@f5.com<change type="feature">
6151828Sa.suvorov@f5.com<para>
6161833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
6171833Sartem.konev@nginx.cominstallation.
6181825Sthresh@nginx.com</para>
6191825Sthresh@nginx.com</change>
6201825Sthresh@nginx.com
6211811Smax.romanov@nginx.com<change type="bugfix">
6221811Smax.romanov@nginx.com<para>
6231812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
6241812Svbart@nginx.comappeared in 1.17.0.
6251812Svbart@nginx.com</para>
6261812Svbart@nginx.com</change>
6271812Svbart@nginx.com
6281812Svbart@nginx.com<change type="bugfix">
6291812Svbart@nginx.com<para>
6301833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
6311812Svbart@nginx.comappeared in 1.6.
6321812Svbart@nginx.com</para>
6331812Svbart@nginx.com</change>
6341812Svbart@nginx.com
6351812Svbart@nginx.com<change type="bugfix">
6361812Svbart@nginx.com<para>
6371833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
6381832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
6391832Smax.romanov@nginx.com</para>
6401832Smax.romanov@nginx.com</change>
6411832Smax.romanov@nginx.com
6421832Smax.romanov@nginx.com<change type="bugfix">
6431832Smax.romanov@nginx.com<para>
6441833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
6451811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
6461811Smax.romanov@nginx.com</para>
6471811Smax.romanov@nginx.com</change>
6481806Svbart@nginx.com
6491813Svbart@nginx.com<change type="bugfix">
6501813Svbart@nginx.com<para>
6511813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
6521813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
6531813Svbart@nginx.com</para>
6541813Svbart@nginx.com</change>
6551813Svbart@nginx.com
6561814Svbart@nginx.com<change type="bugfix">
6571814Svbart@nginx.com<para>
6581820Svbart@nginx.comthe controller process could crash while requesting information about a
6591820Svbart@nginx.comcertificate with a non-DNS SAN entry.
6601820Svbart@nginx.com</para>
6611820Svbart@nginx.com</change>
6621820Svbart@nginx.com
6631820Svbart@nginx.com<change type="bugfix">
6641820Svbart@nginx.com<para>
6651822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
6661833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
6671822Svbart@nginx.com</para>
6681822Svbart@nginx.com</change>
6691822Svbart@nginx.com
6701822Svbart@nginx.com<change type="bugfix">
6711822Svbart@nginx.com<para>
6721833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
6731833Sartem.konev@nginx.comclass.
6741814Svbart@nginx.com</para>
6751814Svbart@nginx.com</change>
6761814Svbart@nginx.com
6771815Svbart@nginx.com<change type="bugfix">
6781815Svbart@nginx.com<para>
6791815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
6801815Svbart@nginx.comappeared in 1.22.0.
6811815Svbart@nginx.com</para>
6821815Svbart@nginx.com</change>
6831815Svbart@nginx.com
6841806Svbart@nginx.com</changes>
6851806Svbart@nginx.com
6861806Svbart@nginx.com
6871798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
6881798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
6891798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6901798Sdefan@nginx.com
6911798Sdefan@nginx.com<change>
6921798Sdefan@nginx.com<para>
6931798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
6941798Sdefan@nginx.com</para>
6951798Sdefan@nginx.com</change>
6961798Sdefan@nginx.com
6971798Sdefan@nginx.com</changes>
6981798Sdefan@nginx.com
6991798Sdefan@nginx.com
7001763Sdefan@nginx.com<changes apply="unit-php
7011763Sdefan@nginx.com                unit-python unit-python2.7
7021763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7031763Sdefan@nginx.com                unit-python3.8
7041763Sdefan@nginx.com                unit-go
7051763Sdefan@nginx.com                unit-perl
7061763Sdefan@nginx.com                unit-ruby
7071763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
7081763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
7091763Sdefan@nginx.com         ver="1.22.0" rev="1"
7101793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
7111763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7121763Sdefan@nginx.com
7131763Sdefan@nginx.com<change>
7141763Sdefan@nginx.com<para>
7151763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
7161763Sdefan@nginx.com</para>
7171763Sdefan@nginx.com</change>
7181763Sdefan@nginx.com
7191763Sdefan@nginx.com</changes>
7201763Sdefan@nginx.com
7211763Sdefan@nginx.com
7221727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
7231793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
7241727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7251727Svbart@nginx.com
7261759Svbart@nginx.com<change type="feature">
7271759Svbart@nginx.com<para>
7281792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
7291792Svbart@nginx.comcompliant with Stream API.
7301759Svbart@nginx.com</para>
7311759Svbart@nginx.com</change>
7321759Svbart@nginx.com
7331766Smax.romanov@nginx.com<change type="feature">
7341766Smax.romanov@nginx.com<para>
7351792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
7361792Svbart@nginx.comapps.
7371732Svbart@nginx.com</para>
7381732Svbart@nginx.com</change>
7391732Svbart@nginx.com
7401733Svbart@nginx.com<change type="bugfix">
7411733Svbart@nginx.com<para>
7421792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
7431792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
7441754Smax.romanov@nginx.com</para>
7451754Smax.romanov@nginx.com</change>
7461754Smax.romanov@nginx.com
7471755Smax.romanov@nginx.com<change type="bugfix">
7481755Smax.romanov@nginx.com<para>
7491790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
7501755Smax.romanov@nginx.comappeared in 1.19.0.
7511755Smax.romanov@nginx.com</para>
7521755Smax.romanov@nginx.com</change>
7531755Smax.romanov@nginx.com
7541756Smax.romanov@nginx.com<change type="bugfix">
7551756Smax.romanov@nginx.com<para>
7561790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
7571790Sartem.konev@nginx.comappeared in 1.19.0.
7581756Smax.romanov@nginx.com</para>
7591756Smax.romanov@nginx.com</change>
7601756Smax.romanov@nginx.com
7611760Smax.romanov@nginx.com<change type="bugfix">
7621760Smax.romanov@nginx.com<para>
7631792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
7641792Svbart@nginx.com</para>
7651792Svbart@nginx.com</change>
7661792Svbart@nginx.com
7671792Svbart@nginx.com<change type="bugfix">
7681792Svbart@nginx.com<para>
7691792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
7701792Svbart@nginx.commissing in the PHP module.
7711792Svbart@nginx.com</para>
7721792Svbart@nginx.com</change>
7731792Svbart@nginx.com
7741792Svbart@nginx.com<change type="bugfix">
7751792Svbart@nginx.com<para>
7761792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
7771792Svbart@nginx.com</para>
7781792Svbart@nginx.com</change>
7791792Svbart@nginx.com
7801792Svbart@nginx.com<change type="bugfix">
7811792Svbart@nginx.com<para>
7821792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
7831792Svbart@nginx.com</para>
7841792Svbart@nginx.com</change>
7851792Svbart@nginx.com
7861792Svbart@nginx.com<change type="bugfix">
7871792Svbart@nginx.com<para>
7881792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
7891792Svbart@nginx.comthe bug had appeared in 1.21.0.
7901760Smax.romanov@nginx.com</para>
7911760Smax.romanov@nginx.com</change>
7921760Smax.romanov@nginx.com
7931780Smax.romanov@nginx.com<change type="bugfix">
7941780Smax.romanov@nginx.com<para>
7951790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
7961790Sartem.konev@nginx.comWebSocket.
7971780Smax.romanov@nginx.com</para>
7981780Smax.romanov@nginx.com</change>
7991780Smax.romanov@nginx.com
8001789Smax.romanov@nginx.com<change type="bugfix">
8011789Smax.romanov@nginx.com<para>
8021789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
8031789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
8041789Smax.romanov@nginx.com</para>
8051789Smax.romanov@nginx.com</change>
8061789Smax.romanov@nginx.com
8071727Svbart@nginx.com</changes>
8081727Svbart@nginx.com
8091727Svbart@nginx.com
8101722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
8111722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
8121722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8131722Svbart@nginx.com
8141722Svbart@nginx.com<change>
8151722Svbart@nginx.com<para>
8161722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
8171722Svbart@nginx.com</para>
8181722Svbart@nginx.com</change>
8191722Svbart@nginx.com
8201722Svbart@nginx.com</changes>
8211722Svbart@nginx.com
8221722Svbart@nginx.com
8231722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
8241722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
8251722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8261722Svbart@nginx.com
8271722Svbart@nginx.com<change>
8281722Svbart@nginx.com<para>
8291722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
8301722Svbart@nginx.com</para>
8311722Svbart@nginx.com</change>
8321722Svbart@nginx.com
8331722Svbart@nginx.com</changes>
8341722Svbart@nginx.com
8351722Svbart@nginx.com
8361722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
8371722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
8381722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8391722Svbart@nginx.com
8401722Svbart@nginx.com<change>
8411722Svbart@nginx.com<para>
8421722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
8431722Svbart@nginx.com</para>
8441722Svbart@nginx.com</change>
8451722Svbart@nginx.com
8461722Svbart@nginx.com</changes>
8471722Svbart@nginx.com
8481722Svbart@nginx.com
8491722Svbart@nginx.com<changes apply="unit-php
8501722Svbart@nginx.com                unit-python unit-python2.7
8511722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8521722Svbart@nginx.com                unit-python3.8
8531722Svbart@nginx.com                unit-go
8541722Svbart@nginx.com                unit-perl
8551722Svbart@nginx.com                unit-ruby
8561722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8571722Svbart@nginx.com         ver="1.21.0" rev="1"
8581722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
8591722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8601722Svbart@nginx.com
8611722Svbart@nginx.com<change>
8621722Svbart@nginx.com<para>
8631722Svbart@nginx.comNGINX Unit updated to 1.21.0.
8641722Svbart@nginx.com</para>
8651722Svbart@nginx.com</change>
8661722Svbart@nginx.com
8671722Svbart@nginx.com</changes>
8681722Svbart@nginx.com
8691722Svbart@nginx.com
8701722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
8711722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
8721722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8731722Svbart@nginx.com
8741722Svbart@nginx.com<change type="change">
8751722Svbart@nginx.com<para>
8761722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
8771722Svbart@nginx.com</para>
8781722Svbart@nginx.com</change>
8791722Svbart@nginx.com
8801722Svbart@nginx.com<change type="change">
8811722Svbart@nginx.com<para>
8821722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
8831722Svbart@nginx.comnames.
8841722Svbart@nginx.com</para>
8851722Svbart@nginx.com</change>
8861722Svbart@nginx.com
8871722Svbart@nginx.com<change type="change">
8881722Svbart@nginx.com<para>
8891722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
8901722Svbart@nginx.comdefault.
8911722Svbart@nginx.com</para>
8921722Svbart@nginx.com</change>
8931722Svbart@nginx.com
8941722Svbart@nginx.com<change type="feature">
8951722Svbart@nginx.com<para>
8961722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
8971722Svbart@nginx.com</para>
8981722Svbart@nginx.com</change>
8991722Svbart@nginx.com
9001722Svbart@nginx.com<change type="feature">
9011722Svbart@nginx.com<para>
9021722Svbart@nginx.comregular expressions in route matching patterns.
9031722Svbart@nginx.com</para>
9041722Svbart@nginx.com</change>
9051722Svbart@nginx.com
9061722Svbart@nginx.com<change type="feature">
9071722Svbart@nginx.com<para>
9081722Svbart@nginx.comcompatibility with Python 3.9.
9091722Svbart@nginx.com</para>
9101722Svbart@nginx.com</change>
9111722Svbart@nginx.com
9121722Svbart@nginx.com<change type="feature">
9131722Svbart@nginx.com<para>
9141722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
9151722Svbart@nginx.com</para>
9161722Svbart@nginx.com</change>
9171722Svbart@nginx.com
9181722Svbart@nginx.com<change type="feature">
9191722Svbart@nginx.com<para>
9201722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
9211722Svbart@nginx.com</para>
9221722Svbart@nginx.com</change>
9231722Svbart@nginx.com
9241722Svbart@nginx.com<change type="feature">
9251722Svbart@nginx.com<para>
9261722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
9271722Svbart@nginx.comcontinues code execution without holding onto the client connection.
9281722Svbart@nginx.com</para>
9291722Svbart@nginx.com</change>
9301722Svbart@nginx.com
9311722Svbart@nginx.com<change type="feature">
9321722Svbart@nginx.com<para>
9331722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
9341722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
9351722Svbart@nginx.com</para>
9361722Svbart@nginx.com</change>
9371722Svbart@nginx.com
9381722Svbart@nginx.com<change type="feature">
9391722Svbart@nginx.com<para>
9401722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
9411722Svbart@nginx.commounting of eponymous filesystems.
9421722Svbart@nginx.com</para>
9431722Svbart@nginx.com</change>
9441722Svbart@nginx.com
9451722Svbart@nginx.com<change type="bugfix">
9461722Svbart@nginx.com<para>
9471722Svbart@nginx.comthe router process could crash when running Go applications under high load;
9481722Svbart@nginx.comthe bug had appeared in 1.19.0.
9491722Svbart@nginx.com</para>
9501722Svbart@nginx.com</change>
9511722Svbart@nginx.com
9521722Svbart@nginx.com<change type="bugfix">
9531722Svbart@nginx.com<para>
9541722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
9551722Svbart@nginx.com</para>
9561722Svbart@nginx.com</change>
9571722Svbart@nginx.com
9581722Svbart@nginx.com<change type="bugfix">
9591722Svbart@nginx.com<para>
9601722Svbart@nginx.comvarious compatibility issues in Java applications.
9611722Svbart@nginx.com</para>
9621722Svbart@nginx.com</change>
9631722Svbart@nginx.com
9641722Svbart@nginx.com<change type="bugfix">
9651722Svbart@nginx.com<para>
9661722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
9671722Svbart@nginx.comuse "rootfs" isolation.
9681722Svbart@nginx.com</para>
9691722Svbart@nginx.com</change>
9701722Svbart@nginx.com
9711722Svbart@nginx.com</changes>
9721722Svbart@nginx.com
973