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" 172012Svbart@nginx.com ver="1.27.0" rev="1" 182012Svbart@nginx.com date="" time="" 192012Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 202012Svbart@nginx.com 212012Svbart@nginx.com<change> 222012Svbart@nginx.com<para> 232012Svbart@nginx.comNGINX Unit updated to 1.27.0. 242012Svbart@nginx.com</para> 252012Svbart@nginx.com</change> 262012Svbart@nginx.com 272012Svbart@nginx.com</changes> 282012Svbart@nginx.com 292012Svbart@nginx.com 302012Svbart@nginx.com<changes apply="unit" ver="1.27.0" rev="1" 312012Svbart@nginx.com date="" time="" 322012Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 332012Svbart@nginx.com 342072Sz.hong@f5.com<change type="feature"> 352072Sz.hong@f5.com<para> 362108Salx.manpages@gmail.comability to specify a custom index file name when serving static files. 372108Salx.manpages@gmail.com</para> 382108Salx.manpages@gmail.com</change> 392108Salx.manpages@gmail.com 402108Salx.manpages@gmail.com<change type="feature"> 412108Salx.manpages@gmail.com<para> 422081Salx.manpages@gmail.comvariables support in the "location" option of the "return" action. 432081Salx.manpages@gmail.com</para> 442081Salx.manpages@gmail.com</change> 452081Salx.manpages@gmail.com 462081Salx.manpages@gmail.com<change type="feature"> 472081Salx.manpages@gmail.com<para> 48*2113Sartem.konev@nginx.comsupport empty strings in the "location" option of the "return" action. 49*2113Sartem.konev@nginx.com</para> 50*2113Sartem.konev@nginx.com</change> 51*2113Sartem.konev@nginx.com 52*2113Sartem.konev@nginx.com<change type="feature"> 53*2113Sartem.konev@nginx.com<para> 54*2113Sartem.konev@nginx.comadded a new variable, $request_uri, that includes both the path and the query 55*2113Sartem.konev@nginx.comparts as per RFC 3986, sections 3-4. 56*2113Sartem.konev@nginx.com</para> 57*2113Sartem.konev@nginx.com</change> 58*2113Sartem.konev@nginx.com 59*2113Sartem.konev@nginx.com<change type="feature"> 60*2113Sartem.konev@nginx.com<para> 61*2113Sartem.konev@nginx.comRuby Rack environment parameter "SCRIPT_NAME" support. 622110Salx.manpages@gmail.com</para> 632110Salx.manpages@gmail.com</change> 642110Salx.manpages@gmail.com 652110Salx.manpages@gmail.com<change type="feature"> 662110Salx.manpages@gmail.com<para> 672072Sz.hong@f5.comcompatibility with GCC 12. 682072Sz.hong@f5.com</para> 692072Sz.hong@f5.com</change> 702072Sz.hong@f5.com 712060Smax.romanov@nginx.com<change type="bugfix"> 722060Smax.romanov@nginx.com<para> 732093Sz.hong@f5.comRuby Sinatra applications don't work without custom logging. 742093Sz.hong@f5.com</para> 752093Sz.hong@f5.com</change> 762093Sz.hong@f5.com 772093Sz.hong@f5.com<change type="bugfix"> 782093Sz.hong@f5.com<para> 79*2113Sartem.konev@nginx.comthe controller process could crash when a chain of more than four 802069Sz.hong@f5.comcertificates was uploaded. 812069Sz.hong@f5.com</para> 822069Sz.hong@f5.com</change> 832069Sz.hong@f5.com 842069Sz.hong@f5.com<change type="bugfix"> 852069Sz.hong@f5.com<para> 862060Smax.romanov@nginx.comsome Perl applications failed to process the request body, notably with Plack. 872060Smax.romanov@nginx.com</para> 882060Smax.romanov@nginx.com</change> 892060Smax.romanov@nginx.com 902061Smax.romanov@nginx.com<change type="bugfix"> 912061Smax.romanov@nginx.com<para> 922061Smax.romanov@nginx.comsome Spring Boot applications failed to start, notably with Grails. 932061Smax.romanov@nginx.com</para> 942061Smax.romanov@nginx.com</change> 952061Smax.romanov@nginx.com 962067Smax.romanov@nginx.com<change type="bugfix"> 972067Smax.romanov@nginx.com<para> 982067Smax.romanov@nginx.comincorrect Python protocol auto detection (ASGI or WSGI) for native callable 992067Smax.romanov@nginx.comobject, notably with Falcon. 1002067Smax.romanov@nginx.com</para> 1012067Smax.romanov@nginx.com</change> 1022067Smax.romanov@nginx.com 1032050Svbart@nginx.com</changes> 1042050Svbart@nginx.com 1052050Svbart@nginx.com 1062050Svbart@nginx.com<changes apply="unit-php 1072050Svbart@nginx.com unit-python unit-python2.7 1082050Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 1092050Svbart@nginx.com unit-python3.8 unit-python3.9 unit-python3.10 1102050Svbart@nginx.com unit-go 1112050Svbart@nginx.com unit-perl 1122050Svbart@nginx.com unit-ruby 1132050Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 1142050Svbart@nginx.com unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18" 1152029SN/A ver="1.26.1" rev="1" 1162045SN/A date="2021-12-02" time="18:00:00 +0300" 1172029SN/A packager="Andrei Belov <defan@nginx.com>"> 1182029SN/A 1192029SN/A<change> 1202029SN/A<para> 1212029SN/ANGINX Unit updated to 1.26.1. 1222029SN/A</para> 1232029SN/A</change> 1242029SN/A 1252029SN/A</changes> 1262029SN/A 1272029SN/A 1282029SN/A<changes apply="unit" ver="1.26.1" rev="1" 1292045SN/A date="2021-12-02" time="18:00:00 +0300" 1302029SN/A packager="Andrei Belov <defan@nginx.com>"> 1312029SN/A 1322033SN/A<change type="bugfix"> 1332033SN/A<para> 1342044SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had 1352044SN/Aappeared in 1.26.0. 1362033SN/A</para> 1372033SN/A</change> 1382033SN/A 1392034SN/A<change type="bugfix"> 1402034SN/A<para> 1412044SN/Aa prototype process could crash on an application process exit; the bug had 1422034SN/Aappeared in 1.26.0. 1432034SN/A</para> 1442034SN/A</change> 1452034SN/A 1462035SN/A<change type="bugfix"> 1472035SN/A<para> 1482044SN/Athe router process crashed on reconfiguration if "access_log" was configured 1492044SN/Awithout listeners. 1502044SN/A</para> 1512044SN/A</change> 1522044SN/A 1532044SN/A<change type="bugfix"> 1542044SN/A<para> 1552035SN/Aa segmentation fault occurred in the PHP module if chdir() or 1562035SN/Afastcgi_finish_request() was called in the OPcache preloading script. 1572035SN/A</para> 1582035SN/A</change> 1592035SN/A 1602040SN/A<change type="bugfix"> 1612040SN/A<para> 1622041SN/Afatal errors on DragonFly BSD; the bug had appeared in 1.26.0. 1632041SN/A</para> 1642041SN/A</change> 1652041SN/A 1662029SN/A</changes> 1672029SN/A 1682029SN/A 1691973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1" 1702007Svbart@nginx.com date="2021-11-18" time="18:00:00 +0300" 1711973Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1721973Sdefan@nginx.com 1731973Sdefan@nginx.com<change> 1741973Sdefan@nginx.com<para> 1751973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit. 1761973Sdefan@nginx.com</para> 1771973Sdefan@nginx.com</change> 1781973Sdefan@nginx.com 1791973Sdefan@nginx.com</changes> 1801973Sdefan@nginx.com 1811973Sdefan@nginx.com 1821973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1" 1832007Svbart@nginx.com date="2021-11-18" time="18:00:00 +0300" 1841973Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1851973Sdefan@nginx.com 1861973Sdefan@nginx.com<change> 1871973Sdefan@nginx.com<para> 1881973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit. 1891973Sdefan@nginx.com</para> 1901973Sdefan@nginx.com</change> 1911973Sdefan@nginx.com 1921973Sdefan@nginx.com</changes> 1931973Sdefan@nginx.com 1941973Sdefan@nginx.com 1951896Svbart@nginx.com<changes apply="unit-php 1961896Svbart@nginx.com unit-python unit-python2.7 1971896Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 1981896Svbart@nginx.com unit-python3.8 unit-python3.9 1991896Svbart@nginx.com unit-go 2001896Svbart@nginx.com unit-perl 2011896Svbart@nginx.com unit-ruby 2021896Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 2031896Svbart@nginx.com unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17" 2041951Svbart@nginx.com ver="1.26.0" rev="1" 2052007Svbart@nginx.com date="2021-11-18" time="18:00:00 +0300" 2061951Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2071951Svbart@nginx.com 2081951Svbart@nginx.com<change> 2091951Svbart@nginx.com<para> 2101951Svbart@nginx.comNGINX Unit updated to 1.26.0. 2111951Svbart@nginx.com</para> 2121951Svbart@nginx.com</change> 2131951Svbart@nginx.com 2141951Svbart@nginx.com</changes> 2151951Svbart@nginx.com 2161951Svbart@nginx.com 2171951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1" 2182007Svbart@nginx.com date="2021-11-18" time="18:00:00 +0300" 2191951Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2201951Svbart@nginx.com 2211960Sz.hong@f5.com<change type="change"> 2221960Sz.hong@f5.com<para> 2231960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves, 2241960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI. 2251960Sz.hong@f5.com</para> 2261960Sz.hong@f5.com</change> 2271960Sz.hong@f5.com 2281960Sz.hong@f5.com<change type="feature"> 2291960Sz.hong@f5.com<para> 2302006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior 2312006Svbart@nginx.comwhen updating from previous versions. 2322006Svbart@nginx.com</para> 2332006Svbart@nginx.com</change> 2342006Svbart@nginx.com 2352006Svbart@nginx.com<change type="feature"> 2362006Svbart@nginx.com<para> 2371960Sz.hong@f5.comvariables support in the "share" option. 2381960Sz.hong@f5.com</para> 2391960Sz.hong@f5.com</change> 2401960Sz.hong@f5.com 2411959Sz.hong@f5.com<change type="feature"> 2421959Sz.hong@f5.com<para> 2431961Sz.hong@f5.commultiple paths in the "share" option. 2441961Sz.hong@f5.com</para> 2451961Sz.hong@f5.com</change> 2461961Sz.hong@f5.com 2471961Sz.hong@f5.com<change type="feature"> 2481961Sz.hong@f5.com<para> 2491959Sz.hong@f5.comvariables support in the "chroot" option. 2501959Sz.hong@f5.com</para> 2511959Sz.hong@f5.com</change> 2521959Sz.hong@f5.com 2531969Sz.hong@f5.com<change type="feature"> 2541969Sz.hong@f5.com<para> 2552006Svbart@nginx.comPHP opcache is shared between application processes. 2561969Sz.hong@f5.com</para> 2571969Sz.hong@f5.com</change> 2581969Sz.hong@f5.com 2591991Sz.hong@f5.com<change type="feature"> 2601991Sz.hong@f5.com<para> 2611991Sz.hong@f5.comrequest routing by the query string. 2621991Sz.hong@f5.com</para> 2631991Sz.hong@f5.com</change> 2641991Sz.hong@f5.com 2651955Smax.romanov@nginx.com<change type="bugfix"> 2661955Smax.romanov@nginx.com<para> 2672006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached 2682006Svbart@nginx.comby asynchronous or multithreaded apps. 2691955Smax.romanov@nginx.com</para> 2701955Smax.romanov@nginx.com</change> 2711955Smax.romanov@nginx.com 2721956Smax.romanov@nginx.com<change type="bugfix"> 2731956Smax.romanov@nginx.com<para> 2741956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client 2751956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured. 2761956Smax.romanov@nginx.com</para> 2771956Smax.romanov@nginx.com</change> 2781956Smax.romanov@nginx.com 2791992Smax.romanov@nginx.com<change type="bugfix"> 2801992Smax.romanov@nginx.com<para> 2812006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35. 2821992Smax.romanov@nginx.com</para> 2831992Smax.romanov@nginx.com</change> 2841992Smax.romanov@nginx.com 2851951Svbart@nginx.com</changes> 2861951Svbart@nginx.com 2871951Svbart@nginx.com 2881951Svbart@nginx.com<changes apply="unit-php 2891951Svbart@nginx.com unit-python unit-python2.7 2901951Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 2911951Svbart@nginx.com unit-python3.8 unit-python3.9 2921951Svbart@nginx.com unit-go 2931951Svbart@nginx.com unit-perl 2941951Svbart@nginx.com unit-ruby 2951951Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 2961951Svbart@nginx.com unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17" 2971896Svbart@nginx.com ver="1.25.0" rev="1" 2981945Svbart@nginx.com date="2021-08-19" time="18:00:00 +0300" 2991896Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3001896Svbart@nginx.com 3011896Svbart@nginx.com<change> 3021896Svbart@nginx.com<para> 3031896Svbart@nginx.comNGINX Unit updated to 1.25.0. 3041896Svbart@nginx.com</para> 3051896Svbart@nginx.com</change> 3061896Svbart@nginx.com 3071896Svbart@nginx.com</changes> 3081896Svbart@nginx.com 3091896Svbart@nginx.com 3101896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1" 3111945Svbart@nginx.com date="2021-08-19" time="18:00:00 +0300" 3121896Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3131896Svbart@nginx.com 3141910So.canty@f5.com<change type="feature"> 3151910So.canty@f5.com<para> 3161944Svbart@nginx.comclient IP address replacement from a specified HTTP header field. 3171942Sa.suvorov@f5.com</para> 3181942Sa.suvorov@f5.com</change> 3191942Sa.suvorov@f5.com 3201942Sa.suvorov@f5.com<change type="feature"> 3211942Sa.suvorov@f5.com<para> 3221920Sa.suvorov@f5.comTLS sessions cache. 3231920Sa.suvorov@f5.com</para> 3241920Sa.suvorov@f5.com</change> 3251920Sa.suvorov@f5.com 3261920Sa.suvorov@f5.com<change type="feature"> 3271920Sa.suvorov@f5.com<para> 3281944Svbart@nginx.comTLS session tickets. 3291910So.canty@f5.com</para> 3301910So.canty@f5.com</change> 3311910So.canty@f5.com 3321926Smax.romanov@nginx.com<change type="feature"> 3331926Smax.romanov@nginx.com<para> 3341926Smax.romanov@nginx.comapplication restart control. 3351926Smax.romanov@nginx.com</para> 3361926Smax.romanov@nginx.com</change> 3371926Smax.romanov@nginx.com 3381936So.canty@f5.com<change type="feature"> 3391936So.canty@f5.com<para> 3401944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby. 3411936So.canty@f5.com</para> 3421936So.canty@f5.com</change> 3431936So.canty@f5.com 3441907Smax.romanov@nginx.com<change type="bugfix"> 3451907Smax.romanov@nginx.com<para> 3461944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners 3471944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0. 3481921Sa.suvorov@f5.com</para> 3491921Sa.suvorov@f5.com</change> 3501921Sa.suvorov@f5.com 3511921Sa.suvorov@f5.com<change type="bugfix"> 3521921Sa.suvorov@f5.com<para> 3531944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate 3541944Svbart@nginx.combundles in a listener if the client did not use SNI. 3551907Smax.romanov@nginx.com</para> 3561907Smax.romanov@nginx.com</change> 3571907Smax.romanov@nginx.com 3581907Smax.romanov@nginx.com<change type="bugfix"> 3591907Smax.romanov@nginx.com<para> 3601950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application 3611915Smax.romanov@nginx.comreconfiguration. 3621915Smax.romanov@nginx.com</para> 3631915Smax.romanov@nginx.com</change> 3641915Smax.romanov@nginx.com 3651915Smax.romanov@nginx.com<change type="bugfix"> 3661915Smax.romanov@nginx.com<para> 3671944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette 3681944Svbart@nginx.comframework. 3691944Svbart@nginx.com</para> 3701944Svbart@nginx.com</change> 3711944Svbart@nginx.com 3721944Svbart@nginx.com<change type="bugfix"> 3731944Svbart@nginx.com<para> 3741944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process 3751944Svbart@nginx.comstopped or crashed. 3761907Smax.romanov@nginx.com</para> 3771907Smax.romanov@nginx.com</change> 3781907Smax.romanov@nginx.com 3791909So.canty@f5.com<change type="bugfix"> 3801909So.canty@f5.com<para> 3811909So.canty@f5.comthe controller or router process could crash if the configuration contained 3821909So.canty@f5.coma full-form IPv6 in a listener address. 3831909So.canty@f5.com</para> 3841909So.canty@f5.com</change> 3851909So.canty@f5.com 3861916Smax.romanov@nginx.com<change type="bugfix"> 3871916Smax.romanov@nginx.com<para> 3881929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes" 3891929Sz.hong@f5.comor "upstreams" using a variable "pass" option. 3901929Sz.hong@f5.com</para> 3911929Sz.hong@f5.com</change> 3921929Sz.hong@f5.com 3931930So.canty@f5.com<change type="bugfix"> 3941930So.canty@f5.com<para> 3951944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source 3961944Svbart@nginx.comor destination address patterns. 3971930So.canty@f5.com</para> 3981930So.canty@f5.com</change> 3991930So.canty@f5.com 4001896Svbart@nginx.com</changes> 4011896Svbart@nginx.com 4021896Svbart@nginx.com 4031887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1" 4041891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 4051887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4061887Sdefan@nginx.com 4071887Sdefan@nginx.com<change> 4081887Sdefan@nginx.com<para> 4091887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit. 4101887Sdefan@nginx.com</para> 4111887Sdefan@nginx.com</change> 4121887Sdefan@nginx.com 4131887Sdefan@nginx.com</changes> 4141887Sdefan@nginx.com 4151887Sdefan@nginx.com 4161887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1" 4171891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 4181887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4191887Sdefan@nginx.com 4201887Sdefan@nginx.com<change> 4211887Sdefan@nginx.com<para> 4221887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit. 4231887Sdefan@nginx.com</para> 4241887Sdefan@nginx.com</change> 4251887Sdefan@nginx.com 4261887Sdefan@nginx.com</changes> 4271887Sdefan@nginx.com 4281887Sdefan@nginx.com 4291834Svbart@nginx.com<changes apply="unit-php 4301834Svbart@nginx.com unit-python unit-python2.7 4311834Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 4321834Svbart@nginx.com unit-python3.8 unit-python3.9 4331834Svbart@nginx.com unit-go 4341834Svbart@nginx.com unit-perl 4351834Svbart@nginx.com unit-ruby 4361834Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 4371834Svbart@nginx.com unit-jsc14 unit-jsc15" 4381839Svbart@nginx.com ver="1.24.0" rev="1" 4391891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 4401839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4411839Svbart@nginx.com 4421839Svbart@nginx.com<change> 4431839Svbart@nginx.com<para> 4441839Svbart@nginx.comNGINX Unit updated to 1.24.0. 4451839Svbart@nginx.com</para> 4461839Svbart@nginx.com</change> 4471839Svbart@nginx.com 4481839Svbart@nginx.com</changes> 4491839Svbart@nginx.com 4501839Svbart@nginx.com 4511839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1" 4521891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 4531839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4541839Svbart@nginx.com 4551882So.canty@f5.com<change type="change"> 4561882So.canty@f5.com<para> 4571882So.canty@f5.comPHP added to the default MIME type list. 4581882So.canty@f5.com</para> 4591882So.canty@f5.com</change> 4601882So.canty@f5.com 4611855Sz.hong@f5.com<change type="feature"> 4621855Sz.hong@f5.com<para> 4631885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands. 4641885Sa.suvorov@f5.com</para> 4651885Sa.suvorov@f5.com</change> 4661885Sa.suvorov@f5.com 4671885Sa.suvorov@f5.com<change type="feature"> 4681885Sa.suvorov@f5.com<para> 4691890Svbart@nginx.comthe ability to limit static file serving by MIME types. 4701890Svbart@nginx.com</para> 4711890Svbart@nginx.com</change> 4721890Svbart@nginx.com 4731890Svbart@nginx.com<change type="feature"> 4741890Svbart@nginx.com<para> 4751890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount 4761890Svbart@nginx.compoint traversal on a per-request basis when serving static files. 4771872So.canty@f5.com</para> 4781872So.canty@f5.com</change> 4791872So.canty@f5.com 4801872So.canty@f5.com<change type="feature"> 4811872So.canty@f5.com<para> 4821889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in 4831889Sartem.konev@nginx.comNode.js. 4841865So.canty@f5.com</para> 4851865So.canty@f5.com</change> 4861865So.canty@f5.com 4871865So.canty@f5.com<change type="feature"> 4881865So.canty@f5.com<para> 4891890Svbart@nginx.commultiple "targets" in Python applications. 4901855Sz.hong@f5.com</para> 4911855Sz.hong@f5.com</change> 4921855Sz.hong@f5.com 4931870So.canty@f5.com<change type="feature"> 4941870So.canty@f5.com<para> 4951870So.canty@f5.comcompatibility with Ruby 3.0. 4961870So.canty@f5.com</para> 4971870So.canty@f5.com</change> 4981870So.canty@f5.com 4991861Svbart@nginx.com<change type="bugfix"> 5001861Svbart@nginx.com<para> 5011889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection. 5021884Sa.suvorov@f5.com</para> 5031884Sa.suvorov@f5.com</change> 5041884Sa.suvorov@f5.com 5051884Sa.suvorov@f5.com<change type="bugfix"> 5061884Sa.suvorov@f5.com<para> 5071861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if 5081861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled. 5091861Svbart@nginx.com</para> 5101861Svbart@nginx.com</change> 5111861Svbart@nginx.com 5121839Svbart@nginx.com</changes> 5131839Svbart@nginx.com 5141839Svbart@nginx.com 5151839Svbart@nginx.com<changes apply="unit-php 5161839Svbart@nginx.com unit-python unit-python2.7 5171839Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 5181839Svbart@nginx.com unit-python3.8 unit-python3.9 5191839Svbart@nginx.com unit-go 5201839Svbart@nginx.com unit-perl 5211839Svbart@nginx.com unit-ruby 5221839Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 5231839Svbart@nginx.com unit-jsc14 unit-jsc15" 5241834Svbart@nginx.com ver="1.23.0" rev="1" 5251834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 5261834Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5271834Svbart@nginx.com 5281834Svbart@nginx.com<change> 5291834Svbart@nginx.com<para> 5301834Svbart@nginx.comNGINX Unit updated to 1.23.0. 5311834Svbart@nginx.com</para> 5321834Svbart@nginx.com</change> 5331834Svbart@nginx.com 5341834Svbart@nginx.com</changes> 5351834Svbart@nginx.com 5361834Svbart@nginx.com 5371806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1" 5381834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 5391806Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5401806Svbart@nginx.com 5411825Sthresh@nginx.com<change type="feature"> 5421825Sthresh@nginx.com<para> 5431833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name 5441828Sa.suvorov@f5.comIndication (SNI) TLS extension. 5451828Sa.suvorov@f5.com</para> 5461828Sa.suvorov@f5.com</change> 5471828Sa.suvorov@f5.com 5481828Sa.suvorov@f5.com<change type="feature"> 5491828Sa.suvorov@f5.com<para> 5501833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page 5511833Sartem.konev@nginx.cominstallation. 5521825Sthresh@nginx.com</para> 5531825Sthresh@nginx.com</change> 5541825Sthresh@nginx.com 5551811Smax.romanov@nginx.com<change type="bugfix"> 5561811Smax.romanov@nginx.com<para> 5571812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had 5581812Svbart@nginx.comappeared in 1.17.0. 5591812Svbart@nginx.com</para> 5601812Svbart@nginx.com</change> 5611812Svbart@nginx.com 5621812Svbart@nginx.com<change type="bugfix"> 5631812Svbart@nginx.com<para> 5641833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had 5651812Svbart@nginx.comappeared in 1.6. 5661812Svbart@nginx.com</para> 5671812Svbart@nginx.com</change> 5681812Svbart@nginx.com 5691812Svbart@nginx.com<change type="bugfix"> 5701812Svbart@nginx.com<para> 5711833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing 5721832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0. 5731832Smax.romanov@nginx.com</para> 5741832Smax.romanov@nginx.com</change> 5751832Smax.romanov@nginx.com 5761832Smax.romanov@nginx.com<change type="bugfix"> 5771832Smax.romanov@nginx.com<para> 5781833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or 5791811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0. 5801811Smax.romanov@nginx.com</para> 5811811Smax.romanov@nginx.com</change> 5821806Svbart@nginx.com 5831813Svbart@nginx.com<change type="bugfix"> 5841813Svbart@nginx.com<para> 5851813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in 5861813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart. 5871813Svbart@nginx.com</para> 5881813Svbart@nginx.com</change> 5891813Svbart@nginx.com 5901814Svbart@nginx.com<change type="bugfix"> 5911814Svbart@nginx.com<para> 5921820Svbart@nginx.comthe controller process could crash while requesting information about a 5931820Svbart@nginx.comcertificate with a non-DNS SAN entry. 5941820Svbart@nginx.com</para> 5951820Svbart@nginx.com</change> 5961820Svbart@nginx.com 5971820Svbart@nginx.com<change type="bugfix"> 5981820Svbart@nginx.com<para> 5991822Svbart@nginx.comthe controller process could crash on manipulations with a certificate 6001833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer. 6011822Svbart@nginx.com</para> 6021822Svbart@nginx.com</change> 6031822Svbart@nginx.com 6041822Svbart@nginx.com<change type="bugfix"> 6051822Svbart@nginx.com<para> 6061833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding 6071833Sartem.konev@nginx.comclass. 6081814Svbart@nginx.com</para> 6091814Svbart@nginx.com</change> 6101814Svbart@nginx.com 6111815Svbart@nginx.com<change type="bugfix"> 6121815Svbart@nginx.com<para> 6131815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had 6141815Svbart@nginx.comappeared in 1.22.0. 6151815Svbart@nginx.com</para> 6161815Svbart@nginx.com</change> 6171815Svbart@nginx.com 6181806Svbart@nginx.com</changes> 6191806Svbart@nginx.com 6201806Svbart@nginx.com 6211798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1" 6221798Sdefan@nginx.com date="2021-02-04" time="18:00:00 +0300" 6231798Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6241798Sdefan@nginx.com 6251798Sdefan@nginx.com<change> 6261798Sdefan@nginx.com<para> 6271798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit. 6281798Sdefan@nginx.com</para> 6291798Sdefan@nginx.com</change> 6301798Sdefan@nginx.com 6311798Sdefan@nginx.com</changes> 6321798Sdefan@nginx.com 6331798Sdefan@nginx.com 6341763Sdefan@nginx.com<changes apply="unit-php 6351763Sdefan@nginx.com unit-python unit-python2.7 6361763Sdefan@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 6371763Sdefan@nginx.com unit-python3.8 6381763Sdefan@nginx.com unit-go 6391763Sdefan@nginx.com unit-perl 6401763Sdefan@nginx.com unit-ruby 6411763Sdefan@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 6421763Sdefan@nginx.com unit-jsc14 unit-jsc15" 6431763Sdefan@nginx.com ver="1.22.0" rev="1" 6441793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 6451763Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6461763Sdefan@nginx.com 6471763Sdefan@nginx.com<change> 6481763Sdefan@nginx.com<para> 6491763Sdefan@nginx.comNGINX Unit updated to 1.22.0. 6501763Sdefan@nginx.com</para> 6511763Sdefan@nginx.com</change> 6521763Sdefan@nginx.com 6531763Sdefan@nginx.com</changes> 6541763Sdefan@nginx.com 6551763Sdefan@nginx.com 6561727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1" 6571793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 6581727Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6591727Svbart@nginx.com 6601759Svbart@nginx.com<change type="feature"> 6611759Svbart@nginx.com<para> 6621792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now 6631792Svbart@nginx.comcompliant with Stream API. 6641759Svbart@nginx.com</para> 6651759Svbart@nginx.com</change> 6661759Svbart@nginx.com 6671766Smax.romanov@nginx.com<change type="feature"> 6681766Smax.romanov@nginx.com<para> 6691792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python 6701792Svbart@nginx.comapps. 6711732Svbart@nginx.com</para> 6721732Svbart@nginx.com</change> 6731732Svbart@nginx.com 6741733Svbart@nginx.com<change type="bugfix"> 6751733Svbart@nginx.com<para> 6761792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than 6771792Svbart@nginx.com128K; the bug had appeared in 1.13.0. 6781754Smax.romanov@nginx.com</para> 6791754Smax.romanov@nginx.com</change> 6801754Smax.romanov@nginx.com 6811755Smax.romanov@nginx.com<change type="bugfix"> 6821755Smax.romanov@nginx.com<para> 6831790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had 6841755Smax.romanov@nginx.comappeared in 1.19.0. 6851755Smax.romanov@nginx.com</para> 6861755Smax.romanov@nginx.com</change> 6871755Smax.romanov@nginx.com 6881756Smax.romanov@nginx.com<change type="bugfix"> 6891756Smax.romanov@nginx.com<para> 6901790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had 6911790Sartem.konev@nginx.comappeared in 1.19.0. 6921756Smax.romanov@nginx.com</para> 6931756Smax.romanov@nginx.com</change> 6941756Smax.romanov@nginx.com 6951760Smax.romanov@nginx.com<change type="bugfix"> 6961760Smax.romanov@nginx.com<para> 6971792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes. 6981792Svbart@nginx.com</para> 6991792Svbart@nginx.com</change> 7001792Svbart@nginx.com 7011792Svbart@nginx.com<change type="bugfix"> 7021792Svbart@nginx.com<para> 7031792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were 7041792Svbart@nginx.commissing in the PHP module. 7051792Svbart@nginx.com</para> 7061792Svbart@nginx.com</change> 7071792Svbart@nginx.com 7081792Svbart@nginx.com<change type="bugfix"> 7091792Svbart@nginx.com<para> 7101792Svbart@nginx.comthe router process could crash with multithreaded apps under high load. 7111792Svbart@nginx.com</para> 7121792Svbart@nginx.com</change> 7131792Svbart@nginx.com 7141792Svbart@nginx.com<change type="bugfix"> 7151792Svbart@nginx.com<para> 7161792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load. 7171792Svbart@nginx.com</para> 7181792Svbart@nginx.com</change> 7191792Svbart@nginx.com 7201792Svbart@nginx.com<change type="bugfix"> 7211792Svbart@nginx.com<para> 7221792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used; 7231792Svbart@nginx.comthe bug had appeared in 1.21.0. 7241760Smax.romanov@nginx.com</para> 7251760Smax.romanov@nginx.com</change> 7261760Smax.romanov@nginx.com 7271780Smax.romanov@nginx.com<change type="bugfix"> 7281780Smax.romanov@nginx.com<para> 7291790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used 7301790Sartem.konev@nginx.comWebSocket. 7311780Smax.romanov@nginx.com</para> 7321780Smax.romanov@nginx.com</change> 7331780Smax.romanov@nginx.com 7341789Smax.romanov@nginx.com<change type="bugfix"> 7351789Smax.romanov@nginx.com<para> 7361789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring 7371789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0. 7381789Smax.romanov@nginx.com</para> 7391789Smax.romanov@nginx.com</change> 7401789Smax.romanov@nginx.com 7411727Svbart@nginx.com</changes> 7421727Svbart@nginx.com 7431727Svbart@nginx.com 7441722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1" 7451722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 7461722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7471722Svbart@nginx.com 7481722Svbart@nginx.com<change> 7491722Svbart@nginx.com<para> 7501722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit. 7511722Svbart@nginx.com</para> 7521722Svbart@nginx.com</change> 7531722Svbart@nginx.com 7541722Svbart@nginx.com</changes> 7551722Svbart@nginx.com 7561722Svbart@nginx.com 7571722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1" 7581722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 7591722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7601722Svbart@nginx.com 7611722Svbart@nginx.com<change> 7621722Svbart@nginx.com<para> 7631722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit. 7641722Svbart@nginx.com</para> 7651722Svbart@nginx.com</change> 7661722Svbart@nginx.com 7671722Svbart@nginx.com</changes> 7681722Svbart@nginx.com 7691722Svbart@nginx.com 7701722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1" 7711722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 7721722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7731722Svbart@nginx.com 7741722Svbart@nginx.com<change> 7751722Svbart@nginx.com<para> 7761722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit. 7771722Svbart@nginx.com</para> 7781722Svbart@nginx.com</change> 7791722Svbart@nginx.com 7801722Svbart@nginx.com</changes> 7811722Svbart@nginx.com 7821722Svbart@nginx.com 7831722Svbart@nginx.com<changes apply="unit-php 7841722Svbart@nginx.com unit-python unit-python2.7 7851722Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 7861722Svbart@nginx.com unit-python3.8 7871722Svbart@nginx.com unit-go 7881722Svbart@nginx.com unit-perl 7891722Svbart@nginx.com unit-ruby 7901722Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 7911722Svbart@nginx.com ver="1.21.0" rev="1" 7921722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 7931722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7941722Svbart@nginx.com 7951722Svbart@nginx.com<change> 7961722Svbart@nginx.com<para> 7971722Svbart@nginx.comNGINX Unit updated to 1.21.0. 7981722Svbart@nginx.com</para> 7991722Svbart@nginx.com</change> 8001722Svbart@nginx.com 8011722Svbart@nginx.com</changes> 8021722Svbart@nginx.com 8031722Svbart@nginx.com 8041722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1" 8051722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 8061722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8071722Svbart@nginx.com 8081722Svbart@nginx.com<change type="change"> 8091722Svbart@nginx.com<para> 8101722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used. 8111722Svbart@nginx.com</para> 8121722Svbart@nginx.com</change> 8131722Svbart@nginx.com 8141722Svbart@nginx.com<change type="change"> 8151722Svbart@nginx.com<para> 8161722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field 8171722Svbart@nginx.comnames. 8181722Svbart@nginx.com</para> 8191722Svbart@nginx.com</change> 8201722Svbart@nginx.com 8211722Svbart@nginx.com<change type="change"> 8221722Svbart@nginx.com<para> 8231722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by 8241722Svbart@nginx.comdefault. 8251722Svbart@nginx.com</para> 8261722Svbart@nginx.com</change> 8271722Svbart@nginx.com 8281722Svbart@nginx.com<change type="feature"> 8291722Svbart@nginx.com<para> 8301722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps. 8311722Svbart@nginx.com</para> 8321722Svbart@nginx.com</change> 8331722Svbart@nginx.com 8341722Svbart@nginx.com<change type="feature"> 8351722Svbart@nginx.com<para> 8361722Svbart@nginx.comregular expressions in route matching patterns. 8371722Svbart@nginx.com</para> 8381722Svbart@nginx.com</change> 8391722Svbart@nginx.com 8401722Svbart@nginx.com<change type="feature"> 8411722Svbart@nginx.com<para> 8421722Svbart@nginx.comcompatibility with Python 3.9. 8431722Svbart@nginx.com</para> 8441722Svbart@nginx.com</change> 8451722Svbart@nginx.com 8461722Svbart@nginx.com<change type="feature"> 8471722Svbart@nginx.com<para> 8481722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications. 8491722Svbart@nginx.com</para> 8501722Svbart@nginx.com</change> 8511722Svbart@nginx.com 8521722Svbart@nginx.com<change type="feature"> 8531722Svbart@nginx.com<para> 8541722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI. 8551722Svbart@nginx.com</para> 8561722Svbart@nginx.com</change> 8571722Svbart@nginx.com 8581722Svbart@nginx.com<change type="feature"> 8591722Svbart@nginx.com<para> 8601722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and 8611722Svbart@nginx.comcontinues code execution without holding onto the client connection. 8621722Svbart@nginx.com</para> 8631722Svbart@nginx.com</change> 8641722Svbart@nginx.com 8651722Svbart@nginx.com<change type="feature"> 8661722Svbart@nginx.com<para> 8671722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header 8681722Svbart@nginx.comfields with irregular (but still valid) characters in the field name. 8691722Svbart@nginx.com</para> 8701722Svbart@nginx.com</change> 8711722Svbart@nginx.com 8721722Svbart@nginx.com<change type="feature"> 8731722Svbart@nginx.com<para> 8741722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic 8751722Svbart@nginx.commounting of eponymous filesystems. 8761722Svbart@nginx.com</para> 8771722Svbart@nginx.com</change> 8781722Svbart@nginx.com 8791722Svbart@nginx.com<change type="bugfix"> 8801722Svbart@nginx.com<para> 8811722Svbart@nginx.comthe router process could crash when running Go applications under high load; 8821722Svbart@nginx.comthe bug had appeared in 1.19.0. 8831722Svbart@nginx.com</para> 8841722Svbart@nginx.com</change> 8851722Svbart@nginx.com 8861722Svbart@nginx.com<change type="bugfix"> 8871722Svbart@nginx.com<para> 8881722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation. 8891722Svbart@nginx.com</para> 8901722Svbart@nginx.com</change> 8911722Svbart@nginx.com 8921722Svbart@nginx.com<change type="bugfix"> 8931722Svbart@nginx.com<para> 8941722Svbart@nginx.comvarious compatibility issues in Java applications. 8951722Svbart@nginx.com</para> 8961722Svbart@nginx.com</change> 8971722Svbart@nginx.com 8981722Svbart@nginx.com<change type="bugfix"> 8991722Svbart@nginx.com<para> 9001722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that 9011722Svbart@nginx.comuse "rootfs" isolation. 9021722Svbart@nginx.com</para> 9031722Svbart@nginx.com</change> 9041722Svbart@nginx.com 9051722Svbart@nginx.com</changes> 9061722Svbart@nginx.com 9071722Svbart@nginx.com 9081330Svbart@nginx.com<changes apply="unit-php 9091330Svbart@nginx.com unit-python unit-python2.7 9101330Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 9111330Svbart@nginx.com unit-python3.8 9121330Svbart@nginx.com unit-go 9131330Svbart@nginx.com unit-perl 9141330Svbart@nginx.com unit-ruby 9151330Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 9161640Svbart@nginx.com ver="1.20.0" rev="1" 9171640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 9181640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9191640Svbart@nginx.com 9201640Svbart@nginx.com<change> 9211640Svbart@nginx.com<para> 9221640Svbart@nginx.comNGINX Unit updated to 1.20.0. 9231640Svbart@nginx.com</para> 9241640Svbart@nginx.com</change> 9251640Svbart@nginx.com 9261640Svbart@nginx.com</changes> 9271640Svbart@nginx.com 9281640Svbart@nginx.com 9291640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1" 9301640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 9311640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9321640Svbart@nginx.com 9331640Svbart@nginx.com<change type="change"> 9341640Svbart@nginx.com<para> 9351640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all 9361640Svbart@nginx.comextensions from the host system. 9371640Svbart@nginx.com</para> 9381640Svbart@nginx.com</change> 9391640Svbart@nginx.com 9401640Svbart@nginx.com<change type="change"> 9411640Svbart@nginx.com<para> 9421640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list. 9431640Svbart@nginx.com</para> 9441640Svbart@nginx.com</change> 9451640Svbart@nginx.com 9461643Svbart@nginx.com<change type="change"> 9471643Svbart@nginx.com<para> 9481643Svbart@nginx.comfunctional tests migrated to the pytest framework. 9491643Svbart@nginx.com</para> 9501643Svbart@nginx.com</change> 9511643Svbart@nginx.com 9521640Svbart@nginx.com<change type="feature"> 9531640Svbart@nginx.com<para> 9541640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server 9551640Svbart@nginx.cominterface. 9561640Svbart@nginx.com</para> 9571640Svbart@nginx.com</change> 9581640Svbart@nginx.com 9591640Svbart@nginx.com<change type="feature"> 9601640Svbart@nginx.com<para> 9611640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for 9621640Svbart@nginx.comapplications, compatible with the HTTP & WebSocket ASGI Message Format 2.1 9631640Svbart@nginx.comspecification. 9641640Svbart@nginx.com</para> 9651640Svbart@nginx.com</change> 9661640Svbart@nginx.com 9671640Svbart@nginx.com<change type="feature"> 9681640Svbart@nginx.com<para> 9691640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application 9701640Svbart@nginx.comenvironments. 9711640Svbart@nginx.com</para> 9721640Svbart@nginx.com</change> 9731640Svbart@nginx.com 9741640Svbart@nginx.com<change type="feature"> 9751640Svbart@nginx.com<para> 9761640Svbart@nginx.comthe $host variable contains a normalized "Host" request value. 9771640Svbart@nginx.com</para> 9781640Svbart@nginx.com</change> 9791640Svbart@nginx.com 9801640Svbart@nginx.com<change type="feature"> 9811640Svbart@nginx.com<para> 9821640Svbart@nginx.comthe "callable" option sets Python application callable names. 9831640Svbart@nginx.com</para> 9841640Svbart@nginx.com</change> 9851640Svbart@nginx.com 9861640Svbart@nginx.com<change type="feature"> 9871640Svbart@nginx.com<para> 9881640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet. 9891640Svbart@nginx.com</para> 9901640Svbart@nginx.com</change> 9911640Svbart@nginx.com 9921640Svbart@nginx.com<change type="feature"> 9931640Svbart@nginx.com<para> 9941640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the 9951640Svbart@nginx.comautomatic mounting of language module dependencies. 9961640Svbart@nginx.com</para> 9971640Svbart@nginx.com</change> 9981640Svbart@nginx.com 9991640Svbart@nginx.com<change type="bugfix"> 10001640Svbart@nginx.com<para> 10011640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared 10021640Svbart@nginx.comin 1.19.0. Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it. 10031640Svbart@nginx.com</para> 10041640Svbart@nginx.com</change> 10051640Svbart@nginx.com 1006