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 <nginx-packaging@f5.com>"> 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 <nginx-packaging@f5.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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