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" 172202Szelenkov@nginx.com ver="1.29.0" rev="1" 182202Szelenkov@nginx.com date="" time="" 192202Szelenkov@nginx.com packager="Nginx Packaging <nginx-packaging@f5.com>"> 202202Szelenkov@nginx.com 212202Szelenkov@nginx.com<change> 222202Szelenkov@nginx.com<para> 232202Szelenkov@nginx.comNGINX Unit updated to 1.29.0. 242202Szelenkov@nginx.com</para> 252202Szelenkov@nginx.com</change> 262202Szelenkov@nginx.com 272202Szelenkov@nginx.com</changes> 282202Szelenkov@nginx.com 292202Szelenkov@nginx.com 302202Szelenkov@nginx.com<changes apply="unit" ver="1.29.0" rev="1" 312202Szelenkov@nginx.com date="" time="" 322202Szelenkov@nginx.com packager="Nginx Packaging <nginx-packaging@f5.com>"> 332202Szelenkov@nginx.com 342203Sz.hong@f5.com<change type="bugfix"> 352203Sz.hong@f5.com<para> 362203Sz.hong@f5.comfix HTTP cookie parsing when the value contains an equals sign. 372203Sz.hong@f5.com</para> 382203Sz.hong@f5.com</change> 392203Sz.hong@f5.com 40*2204Sz.hong@f5.com<change type="bugfix"> 41*2204Sz.hong@f5.com<para> 42*2204Sz.hong@f5.comfix error in connection statistics when using proxy. 43*2204Sz.hong@f5.com</para> 44*2204Sz.hong@f5.com</change> 45*2204Sz.hong@f5.com 462202Szelenkov@nginx.com</changes> 472202Szelenkov@nginx.com 482202Szelenkov@nginx.com 492202Szelenkov@nginx.com<changes apply="unit-php 502202Szelenkov@nginx.com unit-python unit-python2.7 512202Szelenkov@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 522202Szelenkov@nginx.com unit-python3.8 unit-python3.9 unit-python3.10 532202Szelenkov@nginx.com unit-go 542202Szelenkov@nginx.com unit-perl 552202Szelenkov@nginx.com unit-ruby 562202Szelenkov@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 572202Szelenkov@nginx.com unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18" 582129Szelenkov@nginx.com ver="1.28.0" rev="1" 592197Szelenkov@nginx.com date="2022-09-13" time="18:00:00 +0300" 602135Sthresh@nginx.com packager="Nginx Packaging <nginx-packaging@f5.com>"> 612129Szelenkov@nginx.com 622129Szelenkov@nginx.com<change> 632129Szelenkov@nginx.com<para> 642129Szelenkov@nginx.comNGINX Unit updated to 1.28.0. 652129Szelenkov@nginx.com</para> 662129Szelenkov@nginx.com</change> 672129Szelenkov@nginx.com 682129Szelenkov@nginx.com</changes> 692129Szelenkov@nginx.com 702129Szelenkov@nginx.com 712129Szelenkov@nginx.com<changes apply="unit" ver="1.28.0" rev="1" 722197Szelenkov@nginx.com date="2022-09-13" time="18:00:00 +0300" 732135Sthresh@nginx.com packager="Nginx Packaging <nginx-packaging@f5.com>"> 742129Szelenkov@nginx.com 752173Salx.manpages@gmail.com<change type="change"> 762173Salx.manpages@gmail.com<para> 772173Salx.manpages@gmail.comincreased the applications' startup timeout. 782173Salx.manpages@gmail.com</para> 792173Salx.manpages@gmail.com</change> 802173Salx.manpages@gmail.com 812181Salx.manpages@gmail.com<change type="change"> 822181Salx.manpages@gmail.com<para> 832181Salx.manpages@gmail.comdisallowed abstract Unix domain socket syntax in non-Linux systems. 842181Salx.manpages@gmail.com</para> 852181Salx.manpages@gmail.com</change> 862181Salx.manpages@gmail.com 872133Sz.hong@f5.com<change type="feature"> 882133Sz.hong@f5.com<para> 892196Szelenkov@nginx.combasic statistics API. 902179Salx.manpages@gmail.com</para> 912179Salx.manpages@gmail.com</change> 922179Salx.manpages@gmail.com 932179Salx.manpages@gmail.com<change type="feature"> 942179Salx.manpages@gmail.com<para> 952196Szelenkov@nginx.comcustomizable access log format. 962196Szelenkov@nginx.com</para> 972196Szelenkov@nginx.com</change> 982196Szelenkov@nginx.com 992196Szelenkov@nginx.com<change type="feature"> 1002196Szelenkov@nginx.com<para> 1012196Szelenkov@nginx.commore HTTP variables support. 1022161Salx.manpages@gmail.com</para> 1032161Salx.manpages@gmail.com</change> 1042161Salx.manpages@gmail.com 1052161Salx.manpages@gmail.com<change type="feature"> 1062161Salx.manpages@gmail.com<para> 1072133Sz.hong@f5.comforwarded header to replace client address and protocol. 1082133Sz.hong@f5.com</para> 1092133Sz.hong@f5.com</change> 1102133Sz.hong@f5.com 1112147Sz.hong@f5.com<change type="feature"> 1122147Sz.hong@f5.com<para> 1132147Sz.hong@f5.comability to get dynamic variables. 1142147Sz.hong@f5.com</para> 1152147Sz.hong@f5.com</change> 1162147Sz.hong@f5.com 1172149Sz.hong@f5.com<change type="feature"> 1182149Sz.hong@f5.com<para> 1192196Szelenkov@nginx.comsupport for abstract Unix sockets. 1202196Szelenkov@nginx.com</para> 1212196Szelenkov@nginx.com</change> 1222196Szelenkov@nginx.com 1232196Szelenkov@nginx.com<change type="feature"> 1242196Szelenkov@nginx.com<para> 1252196Szelenkov@nginx.comsupport for Unix sockets in address matching. 1262149Sz.hong@f5.com</para> 1272149Sz.hong@f5.com</change> 1282149Sz.hong@f5.com 1292161Salx.manpages@gmail.com<change type="feature"> 1302161Salx.manpages@gmail.com<para> 1312188Szelenkov@nginx.comthe $dollar variable translates to a literal "$" during variable substitution. 1322161Salx.manpages@gmail.com</para> 1332161Salx.manpages@gmail.com</change> 1342161Salx.manpages@gmail.com 1352137Salx.manpages@gmail.com<change type="bugfix"> 1362137Salx.manpages@gmail.com<para> 1372188Szelenkov@nginx.comrouter process could crash if index file didn't contain an extension. 1382137Salx.manpages@gmail.com</para> 1392137Salx.manpages@gmail.com</change> 1402137Salx.manpages@gmail.com 1412163Salx.manpages@gmail.com<change type="bugfix"> 1422163Salx.manpages@gmail.com<para> 1432163Salx.manpages@gmail.comforce SCRIPT_NAME in Ruby to always be an empty string. 1442163Salx.manpages@gmail.com</para> 1452163Salx.manpages@gmail.com</change> 1462163Salx.manpages@gmail.com 1472164Sz.hong@f5.com<change type="bugfix"> 1482164Sz.hong@f5.com<para> 1492196Szelenkov@nginx.comwhen isolated PID numbers reach the prototype process host PID, 1502196Szelenkov@nginx.comthe prototype crashed. 1512196Szelenkov@nginx.com</para> 1522196Szelenkov@nginx.com</change> 1532196Szelenkov@nginx.com 1542196Szelenkov@nginx.com<change type="bugfix"> 1552196Szelenkov@nginx.com<para> 1562188Szelenkov@nginx.comthe Ruby application process could crash on SIGTERM. 1572164Sz.hong@f5.com</para> 1582164Sz.hong@f5.com</change> 1592164Sz.hong@f5.com 1602174Smax.romanov@gmail.com<change type="bugfix"> 1612174Smax.romanov@gmail.com<para> 1622188Szelenkov@nginx.comthe Ruby application process could crash on SIGINT. 1632183Sa.clayton@f5.com</para> 1642183Sa.clayton@f5.com</change> 1652183Sa.clayton@f5.com 1662183Sa.clayton@f5.com<change type="bugfix"> 1672183Sa.clayton@f5.com<para> 1682194Sa.colomar@f5.commutex leak in the C API. 1692194Sa.colomar@f5.com</para> 1702194Sa.colomar@f5.com</change> 1712194Sa.colomar@f5.com 1722129Szelenkov@nginx.com</changes> 1732129Szelenkov@nginx.com 1742129Szelenkov@nginx.com 1752129Szelenkov@nginx.com<changes apply="unit-php 1762129Szelenkov@nginx.com unit-python unit-python2.7 1772129Szelenkov@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 1782129Szelenkov@nginx.com unit-python3.8 unit-python3.9 unit-python3.10 1792129Szelenkov@nginx.com unit-go 1802129Szelenkov@nginx.com unit-perl 1812129Szelenkov@nginx.com unit-ruby 1822129Szelenkov@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 1832129Szelenkov@nginx.com unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18" 1842012Svbart@nginx.com ver="1.27.0" rev="1" 1852127Szelenkov@nginx.com date="2022-06-02" time="18:00:00 +0300" 1862012Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1872012Svbart@nginx.com 1882012Svbart@nginx.com<change> 1892012Svbart@nginx.com<para> 1902012Svbart@nginx.comNGINX Unit updated to 1.27.0. 1912012Svbart@nginx.com</para> 1922012Svbart@nginx.com</change> 1932012Svbart@nginx.com 1942012Svbart@nginx.com</changes> 1952012Svbart@nginx.com 1962012Svbart@nginx.com 1972012Svbart@nginx.com<changes apply="unit" ver="1.27.0" rev="1" 1982127Szelenkov@nginx.com date="2022-06-02" time="18:00:00 +0300" 1992012Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2002012Svbart@nginx.com 2012072Sz.hong@f5.com<change type="feature"> 2022072Sz.hong@f5.com<para> 2032108Salx.manpages@gmail.comability to specify a custom index file name when serving static files. 2042108Salx.manpages@gmail.com</para> 2052108Salx.manpages@gmail.com</change> 2062108Salx.manpages@gmail.com 2072108Salx.manpages@gmail.com<change type="feature"> 2082108Salx.manpages@gmail.com<para> 2092081Salx.manpages@gmail.comvariables support in the "location" option of the "return" action. 2102081Salx.manpages@gmail.com</para> 2112081Salx.manpages@gmail.com</change> 2122081Salx.manpages@gmail.com 2132081Salx.manpages@gmail.com<change type="feature"> 2142081Salx.manpages@gmail.com<para> 2152113Sartem.konev@nginx.comsupport empty strings in the "location" option of the "return" action. 2162113Sartem.konev@nginx.com</para> 2172113Sartem.konev@nginx.com</change> 2182113Sartem.konev@nginx.com 2192113Sartem.konev@nginx.com<change type="feature"> 2202113Sartem.konev@nginx.com<para> 2212113Sartem.konev@nginx.comadded a new variable, $request_uri, that includes both the path and the query 2222113Sartem.konev@nginx.comparts as per RFC 3986, sections 3-4. 2232113Sartem.konev@nginx.com</para> 2242113Sartem.konev@nginx.com</change> 2252113Sartem.konev@nginx.com 2262113Sartem.konev@nginx.com<change type="feature"> 2272113Sartem.konev@nginx.com<para> 2282113Sartem.konev@nginx.comRuby Rack environment parameter "SCRIPT_NAME" support. 2292110Salx.manpages@gmail.com</para> 2302110Salx.manpages@gmail.com</change> 2312110Salx.manpages@gmail.com 2322110Salx.manpages@gmail.com<change type="feature"> 2332110Salx.manpages@gmail.com<para> 2342072Sz.hong@f5.comcompatibility with GCC 12. 2352072Sz.hong@f5.com</para> 2362072Sz.hong@f5.com</change> 2372072Sz.hong@f5.com 2382060Smax.romanov@nginx.com<change type="bugfix"> 2392060Smax.romanov@nginx.com<para> 2402093Sz.hong@f5.comRuby Sinatra applications don't work without custom logging. 2412093Sz.hong@f5.com</para> 2422093Sz.hong@f5.com</change> 2432093Sz.hong@f5.com 2442093Sz.hong@f5.com<change type="bugfix"> 2452093Sz.hong@f5.com<para> 2462113Sartem.konev@nginx.comthe controller process could crash when a chain of more than four 2472069Sz.hong@f5.comcertificates was uploaded. 2482069Sz.hong@f5.com</para> 2492069Sz.hong@f5.com</change> 2502069Sz.hong@f5.com 2512069Sz.hong@f5.com<change type="bugfix"> 2522069Sz.hong@f5.com<para> 2532060Smax.romanov@nginx.comsome Perl applications failed to process the request body, notably with Plack. 2542060Smax.romanov@nginx.com</para> 2552060Smax.romanov@nginx.com</change> 2562060Smax.romanov@nginx.com 2572061Smax.romanov@nginx.com<change type="bugfix"> 2582061Smax.romanov@nginx.com<para> 2592061Smax.romanov@nginx.comsome Spring Boot applications failed to start, notably with Grails. 2602061Smax.romanov@nginx.com</para> 2612061Smax.romanov@nginx.com</change> 2622061Smax.romanov@nginx.com 2632067Smax.romanov@nginx.com<change type="bugfix"> 2642067Smax.romanov@nginx.com<para> 2652067Smax.romanov@nginx.comincorrect Python protocol auto detection (ASGI or WSGI) for native callable 2662067Smax.romanov@nginx.comobject, notably with Falcon. 2672067Smax.romanov@nginx.com</para> 2682067Smax.romanov@nginx.com</change> 2692067Smax.romanov@nginx.com 2702117Szelenkov@nginx.com<change type="bugfix"> 2712117Szelenkov@nginx.com<para> 2722117Szelenkov@nginx.comECMAScript modules did not work with the recent Node.js versions. 2732117Szelenkov@nginx.com</para> 2742117Szelenkov@nginx.com</change> 2752117Szelenkov@nginx.com 2762050Svbart@nginx.com</changes> 2772050Svbart@nginx.com 2782050Svbart@nginx.com 2792050Svbart@nginx.com<changes apply="unit-php 2802050Svbart@nginx.com unit-python unit-python2.7 2812050Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 2822050Svbart@nginx.com unit-python3.8 unit-python3.9 unit-python3.10 2832050Svbart@nginx.com unit-go 2842050Svbart@nginx.com unit-perl 2852050Svbart@nginx.com unit-ruby 2862050Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 2872050Svbart@nginx.com unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18" 2882029SN/A ver="1.26.1" rev="1" 2892045SN/A date="2021-12-02" time="18:00:00 +0300" 2902029SN/A packager="Andrei Belov <defan@nginx.com>"> 2912029SN/A 2922029SN/A<change> 2932029SN/A<para> 2942029SN/ANGINX Unit updated to 1.26.1. 2952029SN/A</para> 2962029SN/A</change> 2972029SN/A 2982029SN/A</changes> 2992029SN/A 3002029SN/A 3012029SN/A<changes apply="unit" ver="1.26.1" rev="1" 3022045SN/A date="2021-12-02" time="18:00:00 +0300" 3032029SN/A packager="Andrei Belov <defan@nginx.com>"> 3042029SN/A 3052033SN/A<change type="bugfix"> 3062033SN/A<para> 3072044SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had 3082044SN/Aappeared in 1.26.0. 3092033SN/A</para> 3102033SN/A</change> 3112033SN/A 3122034SN/A<change type="bugfix"> 3132034SN/A<para> 3142044SN/Aa prototype process could crash on an application process exit; the bug had 3152034SN/Aappeared in 1.26.0. 3162034SN/A</para> 3172034SN/A</change> 3182034SN/A 3192035SN/A<change type="bugfix"> 3202035SN/A<para> 3212044SN/Athe router process crashed on reconfiguration if "access_log" was configured 3222044SN/Awithout listeners. 3232044SN/A</para> 3242044SN/A</change> 3252044SN/A 3262044SN/A<change type="bugfix"> 3272044SN/A<para> 3282035SN/Aa segmentation fault occurred in the PHP module if chdir() or 3292035SN/Afastcgi_finish_request() was called in the OPcache preloading script. 3302035SN/A</para> 3312035SN/A</change> 3322035SN/A 3332040SN/A<change type="bugfix"> 3342040SN/A<para> 3352041SN/Afatal errors on DragonFly BSD; the bug had appeared in 1.26.0. 3362041SN/A</para> 3372041SN/A</change> 3382041SN/A 3392029SN/A</changes> 3402029SN/A 3412029SN/A 3421973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1" 3432007Svbart@nginx.com date="2021-11-18" time="18:00:00 +0300" 3441973Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3451973Sdefan@nginx.com 3461973Sdefan@nginx.com<change> 3471973Sdefan@nginx.com<para> 3481973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit. 3491973Sdefan@nginx.com</para> 3501973Sdefan@nginx.com</change> 3511973Sdefan@nginx.com 3521973Sdefan@nginx.com</changes> 3531973Sdefan@nginx.com 3541973Sdefan@nginx.com 3551973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1" 3562007Svbart@nginx.com date="2021-11-18" time="18:00:00 +0300" 3571973Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3581973Sdefan@nginx.com 3591973Sdefan@nginx.com<change> 3601973Sdefan@nginx.com<para> 3611973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit. 3621973Sdefan@nginx.com</para> 3631973Sdefan@nginx.com</change> 3641973Sdefan@nginx.com 3651973Sdefan@nginx.com</changes> 3661973Sdefan@nginx.com 3671973Sdefan@nginx.com 3681896Svbart@nginx.com<changes apply="unit-php 3691896Svbart@nginx.com unit-python unit-python2.7 3701896Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 3711896Svbart@nginx.com unit-python3.8 unit-python3.9 3721896Svbart@nginx.com unit-go 3731896Svbart@nginx.com unit-perl 3741896Svbart@nginx.com unit-ruby 3751896Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 3761896Svbart@nginx.com unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17" 3771951Svbart@nginx.com ver="1.26.0" rev="1" 3782007Svbart@nginx.com date="2021-11-18" time="18:00:00 +0300" 3791951Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3801951Svbart@nginx.com 3811951Svbart@nginx.com<change> 3821951Svbart@nginx.com<para> 3831951Svbart@nginx.comNGINX Unit updated to 1.26.0. 3841951Svbart@nginx.com</para> 3851951Svbart@nginx.com</change> 3861951Svbart@nginx.com 3871951Svbart@nginx.com</changes> 3881951Svbart@nginx.com 3891951Svbart@nginx.com 3901951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1" 3912007Svbart@nginx.com date="2021-11-18" time="18:00:00 +0300" 3921951Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3931951Svbart@nginx.com 3941960Sz.hong@f5.com<change type="change"> 3951960Sz.hong@f5.com<para> 3961960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves, 3971960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI. 3981960Sz.hong@f5.com</para> 3991960Sz.hong@f5.com</change> 4001960Sz.hong@f5.com 4011960Sz.hong@f5.com<change type="feature"> 4021960Sz.hong@f5.com<para> 4032006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior 4042006Svbart@nginx.comwhen updating from previous versions. 4052006Svbart@nginx.com</para> 4062006Svbart@nginx.com</change> 4072006Svbart@nginx.com 4082006Svbart@nginx.com<change type="feature"> 4092006Svbart@nginx.com<para> 4101960Sz.hong@f5.comvariables support in the "share" option. 4111960Sz.hong@f5.com</para> 4121960Sz.hong@f5.com</change> 4131960Sz.hong@f5.com 4141959Sz.hong@f5.com<change type="feature"> 4151959Sz.hong@f5.com<para> 4161961Sz.hong@f5.commultiple paths in the "share" option. 4171961Sz.hong@f5.com</para> 4181961Sz.hong@f5.com</change> 4191961Sz.hong@f5.com 4201961Sz.hong@f5.com<change type="feature"> 4211961Sz.hong@f5.com<para> 4221959Sz.hong@f5.comvariables support in the "chroot" option. 4231959Sz.hong@f5.com</para> 4241959Sz.hong@f5.com</change> 4251959Sz.hong@f5.com 4261969Sz.hong@f5.com<change type="feature"> 4271969Sz.hong@f5.com<para> 4282006Svbart@nginx.comPHP opcache is shared between application processes. 4291969Sz.hong@f5.com</para> 4301969Sz.hong@f5.com</change> 4311969Sz.hong@f5.com 4321991Sz.hong@f5.com<change type="feature"> 4331991Sz.hong@f5.com<para> 4341991Sz.hong@f5.comrequest routing by the query string. 4351991Sz.hong@f5.com</para> 4361991Sz.hong@f5.com</change> 4371991Sz.hong@f5.com 4381955Smax.romanov@nginx.com<change type="bugfix"> 4391955Smax.romanov@nginx.com<para> 4402006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached 4412006Svbart@nginx.comby asynchronous or multithreaded apps. 4421955Smax.romanov@nginx.com</para> 4431955Smax.romanov@nginx.com</change> 4441955Smax.romanov@nginx.com 4451956Smax.romanov@nginx.com<change type="bugfix"> 4461956Smax.romanov@nginx.com<para> 4471956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client 4481956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured. 4491956Smax.romanov@nginx.com</para> 4501956Smax.romanov@nginx.com</change> 4511956Smax.romanov@nginx.com 4521992Smax.romanov@nginx.com<change type="bugfix"> 4531992Smax.romanov@nginx.com<para> 4542006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35. 4551992Smax.romanov@nginx.com</para> 4561992Smax.romanov@nginx.com</change> 4571992Smax.romanov@nginx.com 4581951Svbart@nginx.com</changes> 4591951Svbart@nginx.com 4601951Svbart@nginx.com 4611951Svbart@nginx.com<changes apply="unit-php 4621951Svbart@nginx.com unit-python unit-python2.7 4631951Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 4641951Svbart@nginx.com unit-python3.8 unit-python3.9 4651951Svbart@nginx.com unit-go 4661951Svbart@nginx.com unit-perl 4671951Svbart@nginx.com unit-ruby 4681951Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 4691951Svbart@nginx.com unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17" 4701896Svbart@nginx.com ver="1.25.0" rev="1" 4711945Svbart@nginx.com date="2021-08-19" time="18:00:00 +0300" 4721896Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4731896Svbart@nginx.com 4741896Svbart@nginx.com<change> 4751896Svbart@nginx.com<para> 4761896Svbart@nginx.comNGINX Unit updated to 1.25.0. 4771896Svbart@nginx.com</para> 4781896Svbart@nginx.com</change> 4791896Svbart@nginx.com 4801896Svbart@nginx.com</changes> 4811896Svbart@nginx.com 4821896Svbart@nginx.com 4831896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1" 4841945Svbart@nginx.com date="2021-08-19" time="18:00:00 +0300" 4851896Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4861896Svbart@nginx.com 4871910So.canty@f5.com<change type="feature"> 4881910So.canty@f5.com<para> 4891944Svbart@nginx.comclient IP address replacement from a specified HTTP header field. 4901942Sa.suvorov@f5.com</para> 4911942Sa.suvorov@f5.com</change> 4921942Sa.suvorov@f5.com 4931942Sa.suvorov@f5.com<change type="feature"> 4941942Sa.suvorov@f5.com<para> 4951920Sa.suvorov@f5.comTLS sessions cache. 4961920Sa.suvorov@f5.com</para> 4971920Sa.suvorov@f5.com</change> 4981920Sa.suvorov@f5.com 4991920Sa.suvorov@f5.com<change type="feature"> 5001920Sa.suvorov@f5.com<para> 5011944Svbart@nginx.comTLS session tickets. 5021910So.canty@f5.com</para> 5031910So.canty@f5.com</change> 5041910So.canty@f5.com 5051926Smax.romanov@nginx.com<change type="feature"> 5061926Smax.romanov@nginx.com<para> 5071926Smax.romanov@nginx.comapplication restart control. 5081926Smax.romanov@nginx.com</para> 5091926Smax.romanov@nginx.com</change> 5101926Smax.romanov@nginx.com 5111936So.canty@f5.com<change type="feature"> 5121936So.canty@f5.com<para> 5131944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby. 5141936So.canty@f5.com</para> 5151936So.canty@f5.com</change> 5161936So.canty@f5.com 5171907Smax.romanov@nginx.com<change type="bugfix"> 5181907Smax.romanov@nginx.com<para> 5191944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners 5201944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0. 5211921Sa.suvorov@f5.com</para> 5221921Sa.suvorov@f5.com</change> 5231921Sa.suvorov@f5.com 5241921Sa.suvorov@f5.com<change type="bugfix"> 5251921Sa.suvorov@f5.com<para> 5261944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate 5271944Svbart@nginx.combundles in a listener if the client did not use SNI. 5281907Smax.romanov@nginx.com</para> 5291907Smax.romanov@nginx.com</change> 5301907Smax.romanov@nginx.com 5311907Smax.romanov@nginx.com<change type="bugfix"> 5321907Smax.romanov@nginx.com<para> 5331950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application 5341915Smax.romanov@nginx.comreconfiguration. 5351915Smax.romanov@nginx.com</para> 5361915Smax.romanov@nginx.com</change> 5371915Smax.romanov@nginx.com 5381915Smax.romanov@nginx.com<change type="bugfix"> 5391915Smax.romanov@nginx.com<para> 5401944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette 5411944Svbart@nginx.comframework. 5421944Svbart@nginx.com</para> 5431944Svbart@nginx.com</change> 5441944Svbart@nginx.com 5451944Svbart@nginx.com<change type="bugfix"> 5461944Svbart@nginx.com<para> 5471944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process 5481944Svbart@nginx.comstopped or crashed. 5491907Smax.romanov@nginx.com</para> 5501907Smax.romanov@nginx.com</change> 5511907Smax.romanov@nginx.com 5521909So.canty@f5.com<change type="bugfix"> 5531909So.canty@f5.com<para> 5541909So.canty@f5.comthe controller or router process could crash if the configuration contained 5551909So.canty@f5.coma full-form IPv6 in a listener address. 5561909So.canty@f5.com</para> 5571909So.canty@f5.com</change> 5581909So.canty@f5.com 5591916Smax.romanov@nginx.com<change type="bugfix"> 5601916Smax.romanov@nginx.com<para> 5611929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes" 5621929Sz.hong@f5.comor "upstreams" using a variable "pass" option. 5631929Sz.hong@f5.com</para> 5641929Sz.hong@f5.com</change> 5651929Sz.hong@f5.com 5661930So.canty@f5.com<change type="bugfix"> 5671930So.canty@f5.com<para> 5681944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source 5691944Svbart@nginx.comor destination address patterns. 5701930So.canty@f5.com</para> 5711930So.canty@f5.com</change> 5721930So.canty@f5.com 5731896Svbart@nginx.com</changes> 5741896Svbart@nginx.com 5751896Svbart@nginx.com 5761887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1" 5771891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 5781887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5791887Sdefan@nginx.com 5801887Sdefan@nginx.com<change> 5811887Sdefan@nginx.com<para> 5821887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit. 5831887Sdefan@nginx.com</para> 5841887Sdefan@nginx.com</change> 5851887Sdefan@nginx.com 5861887Sdefan@nginx.com</changes> 5871887Sdefan@nginx.com 5881887Sdefan@nginx.com 5891887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1" 5901891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 5911887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5921887Sdefan@nginx.com 5931887Sdefan@nginx.com<change> 5941887Sdefan@nginx.com<para> 5951887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit. 5961887Sdefan@nginx.com</para> 5971887Sdefan@nginx.com</change> 5981887Sdefan@nginx.com 5991887Sdefan@nginx.com</changes> 6001887Sdefan@nginx.com 6011887Sdefan@nginx.com 6021834Svbart@nginx.com<changes apply="unit-php 6031834Svbart@nginx.com unit-python unit-python2.7 6041834Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 6051834Svbart@nginx.com unit-python3.8 unit-python3.9 6061834Svbart@nginx.com unit-go 6071834Svbart@nginx.com unit-perl 6081834Svbart@nginx.com unit-ruby 6091834Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 6101834Svbart@nginx.com unit-jsc14 unit-jsc15" 6111839Svbart@nginx.com ver="1.24.0" rev="1" 6121891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 6131839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6141839Svbart@nginx.com 6151839Svbart@nginx.com<change> 6161839Svbart@nginx.com<para> 6171839Svbart@nginx.comNGINX Unit updated to 1.24.0. 6181839Svbart@nginx.com</para> 6191839Svbart@nginx.com</change> 6201839Svbart@nginx.com 6211839Svbart@nginx.com</changes> 6221839Svbart@nginx.com 6231839Svbart@nginx.com 6241839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1" 6251891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 6261839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6271839Svbart@nginx.com 6281882So.canty@f5.com<change type="change"> 6291882So.canty@f5.com<para> 6301882So.canty@f5.comPHP added to the default MIME type list. 6311882So.canty@f5.com</para> 6321882So.canty@f5.com</change> 6331882So.canty@f5.com 6341855Sz.hong@f5.com<change type="feature"> 6351855Sz.hong@f5.com<para> 6361885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands. 6371885Sa.suvorov@f5.com</para> 6381885Sa.suvorov@f5.com</change> 6391885Sa.suvorov@f5.com 6401885Sa.suvorov@f5.com<change type="feature"> 6411885Sa.suvorov@f5.com<para> 6421890Svbart@nginx.comthe ability to limit static file serving by MIME types. 6431890Svbart@nginx.com</para> 6441890Svbart@nginx.com</change> 6451890Svbart@nginx.com 6461890Svbart@nginx.com<change type="feature"> 6471890Svbart@nginx.com<para> 6481890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount 6491890Svbart@nginx.compoint traversal on a per-request basis when serving static files. 6501872So.canty@f5.com</para> 6511872So.canty@f5.com</change> 6521872So.canty@f5.com 6531872So.canty@f5.com<change type="feature"> 6541872So.canty@f5.com<para> 6551889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in 6561889Sartem.konev@nginx.comNode.js. 6571865So.canty@f5.com</para> 6581865So.canty@f5.com</change> 6591865So.canty@f5.com 6601865So.canty@f5.com<change type="feature"> 6611865So.canty@f5.com<para> 6621890Svbart@nginx.commultiple "targets" in Python applications. 6631855Sz.hong@f5.com</para> 6641855Sz.hong@f5.com</change> 6651855Sz.hong@f5.com 6661870So.canty@f5.com<change type="feature"> 6671870So.canty@f5.com<para> 6681870So.canty@f5.comcompatibility with Ruby 3.0. 6691870So.canty@f5.com</para> 6701870So.canty@f5.com</change> 6711870So.canty@f5.com 6721861Svbart@nginx.com<change type="bugfix"> 6731861Svbart@nginx.com<para> 6741889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection. 6751884Sa.suvorov@f5.com</para> 6761884Sa.suvorov@f5.com</change> 6771884Sa.suvorov@f5.com 6781884Sa.suvorov@f5.com<change type="bugfix"> 6791884Sa.suvorov@f5.com<para> 6801861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if 6811861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled. 6821861Svbart@nginx.com</para> 6831861Svbart@nginx.com</change> 6841861Svbart@nginx.com 6851839Svbart@nginx.com</changes> 6861839Svbart@nginx.com 6871839Svbart@nginx.com 6881839Svbart@nginx.com<changes apply="unit-php 6891839Svbart@nginx.com unit-python unit-python2.7 6901839Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 6911839Svbart@nginx.com unit-python3.8 unit-python3.9 6921839Svbart@nginx.com unit-go 6931839Svbart@nginx.com unit-perl 6941839Svbart@nginx.com unit-ruby 6951839Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 6961839Svbart@nginx.com unit-jsc14 unit-jsc15" 6971834Svbart@nginx.com ver="1.23.0" rev="1" 6981834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 6991834Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7001834Svbart@nginx.com 7011834Svbart@nginx.com<change> 7021834Svbart@nginx.com<para> 7031834Svbart@nginx.comNGINX Unit updated to 1.23.0. 7041834Svbart@nginx.com</para> 7051834Svbart@nginx.com</change> 7061834Svbart@nginx.com 7071834Svbart@nginx.com</changes> 7081834Svbart@nginx.com 7091834Svbart@nginx.com 7101806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1" 7111834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 7121806Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7131806Svbart@nginx.com 7141825Sthresh@nginx.com<change type="feature"> 7151825Sthresh@nginx.com<para> 7161833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name 7171828Sa.suvorov@f5.comIndication (SNI) TLS extension. 7181828Sa.suvorov@f5.com</para> 7191828Sa.suvorov@f5.com</change> 7201828Sa.suvorov@f5.com 7211828Sa.suvorov@f5.com<change type="feature"> 7221828Sa.suvorov@f5.com<para> 7231833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page 7241833Sartem.konev@nginx.cominstallation. 7251825Sthresh@nginx.com</para> 7261825Sthresh@nginx.com</change> 7271825Sthresh@nginx.com 7281811Smax.romanov@nginx.com<change type="bugfix"> 7291811Smax.romanov@nginx.com<para> 7301812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had 7311812Svbart@nginx.comappeared in 1.17.0. 7321812Svbart@nginx.com</para> 7331812Svbart@nginx.com</change> 7341812Svbart@nginx.com 7351812Svbart@nginx.com<change type="bugfix"> 7361812Svbart@nginx.com<para> 7371833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had 7381812Svbart@nginx.comappeared in 1.6. 7391812Svbart@nginx.com</para> 7401812Svbart@nginx.com</change> 7411812Svbart@nginx.com 7421812Svbart@nginx.com<change type="bugfix"> 7431812Svbart@nginx.com<para> 7441833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing 7451832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0. 7461832Smax.romanov@nginx.com</para> 7471832Smax.romanov@nginx.com</change> 7481832Smax.romanov@nginx.com 7491832Smax.romanov@nginx.com<change type="bugfix"> 7501832Smax.romanov@nginx.com<para> 7511833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or 7521811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0. 7531811Smax.romanov@nginx.com</para> 7541811Smax.romanov@nginx.com</change> 7551806Svbart@nginx.com 7561813Svbart@nginx.com<change type="bugfix"> 7571813Svbart@nginx.com<para> 7581813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in 7591813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart. 7601813Svbart@nginx.com</para> 7611813Svbart@nginx.com</change> 7621813Svbart@nginx.com 7631814Svbart@nginx.com<change type="bugfix"> 7641814Svbart@nginx.com<para> 7651820Svbart@nginx.comthe controller process could crash while requesting information about a 7661820Svbart@nginx.comcertificate with a non-DNS SAN entry. 7671820Svbart@nginx.com</para> 7681820Svbart@nginx.com</change> 7691820Svbart@nginx.com 7701820Svbart@nginx.com<change type="bugfix"> 7711820Svbart@nginx.com<para> 7721822Svbart@nginx.comthe controller process could crash on manipulations with a certificate 7731833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer. 7741822Svbart@nginx.com</para> 7751822Svbart@nginx.com</change> 7761822Svbart@nginx.com 7771822Svbart@nginx.com<change type="bugfix"> 7781822Svbart@nginx.com<para> 7791833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding 7801833Sartem.konev@nginx.comclass. 7811814Svbart@nginx.com</para> 7821814Svbart@nginx.com</change> 7831814Svbart@nginx.com 7841815Svbart@nginx.com<change type="bugfix"> 7851815Svbart@nginx.com<para> 7861815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had 7871815Svbart@nginx.comappeared in 1.22.0. 7881815Svbart@nginx.com</para> 7891815Svbart@nginx.com</change> 7901815Svbart@nginx.com 7911806Svbart@nginx.com</changes> 7921806Svbart@nginx.com 7931806Svbart@nginx.com 7941798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1" 7951798Sdefan@nginx.com date="2021-02-04" time="18:00:00 +0300" 7961798Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7971798Sdefan@nginx.com 7981798Sdefan@nginx.com<change> 7991798Sdefan@nginx.com<para> 8001798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit. 8011798Sdefan@nginx.com</para> 8021798Sdefan@nginx.com</change> 8031798Sdefan@nginx.com 8041798Sdefan@nginx.com</changes> 8051798Sdefan@nginx.com 8061798Sdefan@nginx.com 8071763Sdefan@nginx.com<changes apply="unit-php 8081763Sdefan@nginx.com unit-python unit-python2.7 8091763Sdefan@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 8101763Sdefan@nginx.com unit-python3.8 8111763Sdefan@nginx.com unit-go 8121763Sdefan@nginx.com unit-perl 8131763Sdefan@nginx.com unit-ruby 8141763Sdefan@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 8151763Sdefan@nginx.com unit-jsc14 unit-jsc15" 8161763Sdefan@nginx.com ver="1.22.0" rev="1" 8171793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 8181763Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8191763Sdefan@nginx.com 8201763Sdefan@nginx.com<change> 8211763Sdefan@nginx.com<para> 8221763Sdefan@nginx.comNGINX Unit updated to 1.22.0. 8231763Sdefan@nginx.com</para> 8241763Sdefan@nginx.com</change> 8251763Sdefan@nginx.com 8261763Sdefan@nginx.com</changes> 8271763Sdefan@nginx.com 8281763Sdefan@nginx.com 8291727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1" 8301793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 8311727Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8321727Svbart@nginx.com 8331759Svbart@nginx.com<change type="feature"> 8341759Svbart@nginx.com<para> 8351792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now 8361792Svbart@nginx.comcompliant with Stream API. 8371759Svbart@nginx.com</para> 8381759Svbart@nginx.com</change> 8391759Svbart@nginx.com 8401766Smax.romanov@nginx.com<change type="feature"> 8411766Smax.romanov@nginx.com<para> 8421792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python 8431792Svbart@nginx.comapps. 8441732Svbart@nginx.com</para> 8451732Svbart@nginx.com</change> 8461732Svbart@nginx.com 8471733Svbart@nginx.com<change type="bugfix"> 8481733Svbart@nginx.com<para> 8491792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than 8501792Svbart@nginx.com128K; the bug had appeared in 1.13.0. 8511754Smax.romanov@nginx.com</para> 8521754Smax.romanov@nginx.com</change> 8531754Smax.romanov@nginx.com 8541755Smax.romanov@nginx.com<change type="bugfix"> 8551755Smax.romanov@nginx.com<para> 8561790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had 8571755Smax.romanov@nginx.comappeared in 1.19.0. 8581755Smax.romanov@nginx.com</para> 8591755Smax.romanov@nginx.com</change> 8601755Smax.romanov@nginx.com 8611756Smax.romanov@nginx.com<change type="bugfix"> 8621756Smax.romanov@nginx.com<para> 8631790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had 8641790Sartem.konev@nginx.comappeared in 1.19.0. 8651756Smax.romanov@nginx.com</para> 8661756Smax.romanov@nginx.com</change> 8671756Smax.romanov@nginx.com 8681760Smax.romanov@nginx.com<change type="bugfix"> 8691760Smax.romanov@nginx.com<para> 8701792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes. 8711792Svbart@nginx.com</para> 8721792Svbart@nginx.com</change> 8731792Svbart@nginx.com 8741792Svbart@nginx.com<change type="bugfix"> 8751792Svbart@nginx.com<para> 8761792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were 8771792Svbart@nginx.commissing in the PHP module. 8781792Svbart@nginx.com</para> 8791792Svbart@nginx.com</change> 8801792Svbart@nginx.com 8811792