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 342087Sz.hong@f5.com<change type="change"> 352087Sz.hong@f5.com<para> 362087Sz.hong@f5.comRuby Rack environment parameter "SCRIPT_NAME" support. 372087Sz.hong@f5.com</para> 382087Sz.hong@f5.com</change> 392087Sz.hong@f5.com 402072Sz.hong@f5.com<change type="feature"> 412072Sz.hong@f5.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> 482072Sz.hong@f5.comcompatibility with GCC 12. 492072Sz.hong@f5.com</para> 502072Sz.hong@f5.com</change> 512072Sz.hong@f5.com 522060Smax.romanov@nginx.com<change type="bugfix"> 532060Smax.romanov@nginx.com<para> 54*2093Sz.hong@f5.comRuby Sinatra applications don't work without custom logging. 55*2093Sz.hong@f5.com</para> 56*2093Sz.hong@f5.com</change> 57*2093Sz.hong@f5.com 58*2093Sz.hong@f5.com<change type="bugfix"> 59*2093Sz.hong@f5.com<para> 602069Sz.hong@f5.comthe controller process could crash when a chain with more than 4 612069Sz.hong@f5.comcertificates was uploaded. 622069Sz.hong@f5.com</para> 632069Sz.hong@f5.com</change> 642069Sz.hong@f5.com 652069Sz.hong@f5.com<change type="bugfix"> 662069Sz.hong@f5.com<para> 672060Smax.romanov@nginx.comsome Perl applications failed to process the request body, notably with Plack. 682060Smax.romanov@nginx.com</para> 692060Smax.romanov@nginx.com</change> 702060Smax.romanov@nginx.com 712061Smax.romanov@nginx.com<change type="bugfix"> 722061Smax.romanov@nginx.com<para> 732061Smax.romanov@nginx.comsome Spring Boot applications failed to start, notably with Grails. 742061Smax.romanov@nginx.com</para> 752061Smax.romanov@nginx.com</change> 762061Smax.romanov@nginx.com 772067Smax.romanov@nginx.com<change type="bugfix"> 782067Smax.romanov@nginx.com<para> 792067Smax.romanov@nginx.comincorrect Python protocol auto detection (ASGI or WSGI) for native callable 802067Smax.romanov@nginx.comobject, notably with Falcon. 812067Smax.romanov@nginx.com</para> 822067Smax.romanov@nginx.com</change> 832067Smax.romanov@nginx.com 842050Svbart@nginx.com</changes> 852050Svbart@nginx.com 862050Svbart@nginx.com 872050Svbart@nginx.com<changes apply="unit-php 882050Svbart@nginx.com unit-python unit-python2.7 892050Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 902050Svbart@nginx.com unit-python3.8 unit-python3.9 unit-python3.10 912050Svbart@nginx.com unit-go 922050Svbart@nginx.com unit-perl 932050Svbart@nginx.com unit-ruby 942050Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 952050Svbart@nginx.com unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18" 962029SN/A ver="1.26.1" rev="1" 972045SN/A date="2021-12-02" time="18:00:00 +0300" 982029SN/A packager="Andrei Belov <defan@nginx.com>"> 992029SN/A 1002029SN/A<change> 1012029SN/A<para> 1022029SN/ANGINX Unit updated to 1.26.1. 1032029SN/A</para> 1042029SN/A</change> 1052029SN/A 1062029SN/A</changes> 1072029SN/A 1082029SN/A 1092029SN/A<changes apply="unit" ver="1.26.1" rev="1" 1102045SN/A date="2021-12-02" time="18:00:00 +0300" 1112029SN/A packager="Andrei Belov <defan@nginx.com>"> 1122029SN/A 1132033SN/A<change type="bugfix"> 1142033SN/A<para> 1152044SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had 1162044SN/Aappeared in 1.26.0. 1172033SN/A</para> 1182033SN/A</change> 1192033SN/A 1202034SN/A<change type="bugfix"> 1212034SN/A<para> 1222044SN/Aa prototype process could crash on an application process exit; the bug had 1232034SN/Aappeared in 1.26.0. 1242034SN/A</para> 1252034SN/A</change> 1262034SN/A 1272035SN/A<change type="bugfix"> 1282035SN/A<para> 1292044SN/Athe router process crashed on reconfiguration if "access_log" was configured 1302044SN/Awithout listeners. 1312044SN/A</para> 1322044SN/A</change> 1332044SN/A 1342044SN/A<change type="bugfix"> 1352044SN/A<para> 1362035SN/Aa segmentation fault occurred in the PHP module if chdir() or 1372035SN/Afastcgi_finish_request() was called in the OPcache preloading script. 1382035SN/A</para> 1392035SN/A</change> 1402035SN/A 1412040SN/A<change type="bugfix"> 1422040SN/A<para> 1432041SN/Afatal errors on DragonFly BSD; the bug had appeared in 1.26.0. 1442041SN/A</para> 1452041SN/A</change> 1462041SN/A 1472029SN/A</changes> 1482029SN/A 1492029SN/A 1501973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1" 1512007Svbart@nginx.com date="2021-11-18" time="18:00:00 +0300" 1521973Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1531973Sdefan@nginx.com 1541973Sdefan@nginx.com<change> 1551973Sdefan@nginx.com<para> 1561973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit. 1571973Sdefan@nginx.com</para> 1581973Sdefan@nginx.com</change> 1591973Sdefan@nginx.com 1601973Sdefan@nginx.com</changes> 1611973Sdefan@nginx.com 1621973Sdefan@nginx.com 1631973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1" 1642007Svbart@nginx.com date="2021-11-18" time="18:00:00 +0300" 1651973Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1661973Sdefan@nginx.com 1671973Sdefan@nginx.com<change> 1681973Sdefan@nginx.com<para> 1691973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit. 1701973Sdefan@nginx.com</para> 1711973Sdefan@nginx.com</change> 1721973Sdefan@nginx.com 1731973Sdefan@nginx.com</changes> 1741973Sdefan@nginx.com 1751973Sdefan@nginx.com 1761896Svbart@nginx.com<changes apply="unit-php 1771896Svbart@nginx.com unit-python unit-python2.7 1781896Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 1791896Svbart@nginx.com unit-python3.8 unit-python3.9 1801896Svbart@nginx.com unit-go 1811896Svbart@nginx.com unit-perl 1821896Svbart@nginx.com unit-ruby 1831896Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 1841896Svbart@nginx.com unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17" 1851951Svbart@nginx.com ver="1.26.0" rev="1" 1862007Svbart@nginx.com date="2021-11-18" time="18:00:00 +0300" 1871951Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1881951Svbart@nginx.com 1891951Svbart@nginx.com<change> 1901951Svbart@nginx.com<para> 1911951Svbart@nginx.comNGINX Unit updated to 1.26.0. 1921951Svbart@nginx.com</para> 1931951Svbart@nginx.com</change> 1941951Svbart@nginx.com 1951951Svbart@nginx.com</changes> 1961951Svbart@nginx.com 1971951Svbart@nginx.com 1981951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1" 1992007Svbart@nginx.com date="2021-11-18" time="18:00:00 +0300" 2001951Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2011951Svbart@nginx.com 2021960Sz.hong@f5.com<change type="change"> 2031960Sz.hong@f5.com<para> 2041960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves, 2051960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI. 2061960Sz.hong@f5.com</para> 2071960Sz.hong@f5.com</change> 2081960Sz.hong@f5.com 2091960Sz.hong@f5.com<change type="feature"> 2101960Sz.hong@f5.com<para> 2112006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior 2122006Svbart@nginx.comwhen updating from previous versions. 2132006Svbart@nginx.com</para> 2142006Svbart@nginx.com</change> 2152006Svbart@nginx.com 2162006Svbart@nginx.com<change type="feature"> 2172006Svbart@nginx.com<para> 2181960Sz.hong@f5.comvariables support in the "share" option. 2191960Sz.hong@f5.com</para> 2201960Sz.hong@f5.com</change> 2211960Sz.hong@f5.com 2221959Sz.hong@f5.com<change type="feature"> 2231959Sz.hong@f5.com<para> 2241961Sz.hong@f5.commultiple paths in the "share" option. 2251961Sz.hong@f5.com</para> 2261961Sz.hong@f5.com</change> 2271961Sz.hong@f5.com 2281961Sz.hong@f5.com<change type="feature"> 2291961Sz.hong@f5.com<para> 2301959Sz.hong@f5.comvariables support in the "chroot" option. 2311959Sz.hong@f5.com</para> 2321959Sz.hong@f5.com</change> 2331959Sz.hong@f5.com 2341969Sz.hong@f5.com<change type="feature"> 2351969Sz.hong@f5.com<para> 2362006Svbart@nginx.comPHP opcache is shared between application processes. 2371969Sz.hong@f5.com</para> 2381969Sz.hong@f5.com</change> 2391969Sz.hong@f5.com 2401991Sz.hong@f5.com<change type="feature"> 2411991Sz.hong@f5.com<para> 2421991Sz.hong@f5.comrequest routing by the query string. 2431991Sz.hong@f5.com</para> 2441991Sz.hong@f5.com</change> 2451991Sz.hong@f5.com 2461955Smax.romanov@nginx.com<change type="bugfix"> 2471955Smax.romanov@nginx.com<para> 2482006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached 2492006Svbart@nginx.comby asynchronous or multithreaded apps. 2501955Smax.romanov@nginx.com</para> 2511955Smax.romanov@nginx.com</change> 2521955Smax.romanov@nginx.com 2531956Smax.romanov@nginx.com<change type="bugfix"> 2541956Smax.romanov@nginx.com<para> 2551956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client 2561956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured. 2571956Smax.romanov@nginx.com</para> 2581956Smax.romanov@nginx.com</change> 2591956Smax.romanov@nginx.com 2601992Smax.romanov@nginx.com<change type="bugfix"> 2611992Smax.romanov@nginx.com<para> 2622006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35. 2631992Smax.romanov@nginx.com</para> 2641992Smax.romanov@nginx.com</change> 2651992Smax.romanov@nginx.com 2661951Svbart@nginx.com</changes> 2671951Svbart@nginx.com 2681951Svbart@nginx.com 2691951Svbart@nginx.com<changes apply="unit-php 2701951Svbart@nginx.com unit-python unit-python2.7 2711951Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 2721951Svbart@nginx.com unit-python3.8 unit-python3.9 2731951Svbart@nginx.com unit-go 2741951Svbart@nginx.com unit-perl 2751951Svbart@nginx.com unit-ruby 2761951Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 2771951Svbart@nginx.com unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17" 2781896Svbart@nginx.com ver="1.25.0" rev="1" 2791945Svbart@nginx.com date="2021-08-19" time="18:00:00 +0300" 2801896Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2811896Svbart@nginx.com 2821896Svbart@nginx.com<change> 2831896Svbart@nginx.com<para> 2841896Svbart@nginx.comNGINX Unit updated to 1.25.0. 2851896Svbart@nginx.com</para> 2861896Svbart@nginx.com</change> 2871896Svbart@nginx.com 2881896Svbart@nginx.com</changes> 2891896Svbart@nginx.com 2901896Svbart@nginx.com 2911896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1" 2921945Svbart@nginx.com date="2021-08-19" time="18:00:00 +0300" 2931896Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2941896Svbart@nginx.com 2951910So.canty@f5.com<change type="feature"> 2961910So.canty@f5.com<para> 2971944Svbart@nginx.comclient IP address replacement from a specified HTTP header field. 2981942Sa.suvorov@f5.com</para> 2991942Sa.suvorov@f5.com</change> 3001942Sa.suvorov@f5.com 3011942Sa.suvorov@f5.com<change type="feature"> 3021942Sa.suvorov@f5.com<para> 3031920Sa.suvorov@f5.comTLS sessions cache. 3041920Sa.suvorov@f5.com</para> 3051920Sa.suvorov@f5.com</change> 3061920Sa.suvorov@f5.com 3071920Sa.suvorov@f5.com<change type="feature"> 3081920Sa.suvorov@f5.com<para> 3091944Svbart@nginx.comTLS session tickets. 3101910So.canty@f5.com</para> 3111910So.canty@f5.com</change> 3121910So.canty@f5.com 3131926Smax.romanov@nginx.com<change type="feature"> 3141926Smax.romanov@nginx.com<para> 3151926Smax.romanov@nginx.comapplication restart control. 3161926Smax.romanov@nginx.com</para> 3171926Smax.romanov@nginx.com</change> 3181926Smax.romanov@nginx.com 3191936So.canty@f5.com<change type="feature"> 3201936So.canty@f5.com<para> 3211944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby. 3221936So.canty@f5.com</para> 3231936So.canty@f5.com</change> 3241936So.canty@f5.com 3251907Smax.romanov@nginx.com<change type="bugfix"> 3261907Smax.romanov@nginx.com<para> 3271944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners 3281944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0. 3291921Sa.suvorov@f5.com</para> 3301921Sa.suvorov@f5.com</change> 3311921Sa.suvorov@f5.com 3321921Sa.suvorov@f5.com<change type="bugfix"> 3331921Sa.suvorov@f5.com<para> 3341944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate 3351944Svbart@nginx.combundles in a listener if the client did not use SNI. 3361907Smax.romanov@nginx.com</para> 3371907Smax.romanov@nginx.com</change> 3381907Smax.romanov@nginx.com 3391907Smax.romanov@nginx.com<change type="bugfix"> 3401907Smax.romanov@nginx.com<para> 3411950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application 3421915Smax.romanov@nginx.comreconfiguration. 3431915Smax.romanov@nginx.com</para> 3441915Smax.romanov@nginx.com</change> 3451915Smax.romanov@nginx.com 3461915Smax.romanov@nginx.com<change type="bugfix"> 3471915Smax.romanov@nginx.com<para> 3481944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette 3491944Svbart@nginx.comframework. 3501944Svbart@nginx.com</para> 3511944Svbart@nginx.com</change> 3521944Svbart@nginx.com 3531944Svbart@nginx.com<change type="bugfix"> 3541944Svbart@nginx.com<para> 3551944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process 3561944Svbart@nginx.comstopped or crashed. 3571907Smax.romanov@nginx.com</para> 3581907Smax.romanov@nginx.com</change> 3591907Smax.romanov@nginx.com 3601909So.canty@f5.com<change type="bugfix"> 3611909So.canty@f5.com<para> 3621909So.canty@f5.comthe controller or router process could crash if the configuration contained 3631909So.canty@f5.coma full-form IPv6 in a listener address. 3641909So.canty@f5.com</para> 3651909So.canty@f5.com</change> 3661909So.canty@f5.com 3671916Smax.romanov@nginx.com<change type="bugfix"> 3681916Smax.romanov@nginx.com<para> 3691929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes" 3701929Sz.hong@f5.comor "upstreams" using a variable "pass" option. 3711929Sz.hong@f5.com</para> 3721929Sz.hong@f5.com</change> 3731929Sz.hong@f5.com 3741930So.canty@f5.com<change type="bugfix"> 3751930So.canty@f5.com<para> 3761944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source 3771944Svbart@nginx.comor destination address patterns. 3781930So.canty@f5.com</para> 3791930So.canty@f5.com</change> 3801930So.canty@f5.com 3811896Svbart@nginx.com</changes> 3821896Svbart@nginx.com 3831896Svbart@nginx.com 3841887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1" 3851891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 3861887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3871887Sdefan@nginx.com 3881887Sdefan@nginx.com<change> 3891887Sdefan@nginx.com<para> 3901887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit. 3911887Sdefan@nginx.com</para> 3921887Sdefan@nginx.com</change> 3931887Sdefan@nginx.com 3941887Sdefan@nginx.com</changes> 3951887Sdefan@nginx.com 3961887Sdefan@nginx.com 3971887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1" 3981891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 3991887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4001887Sdefan@nginx.com 4011887Sdefan@nginx.com<change> 4021887Sdefan@nginx.com<para> 4031887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit. 4041887Sdefan@nginx.com</para> 4051887Sdefan@nginx.com</change> 4061887Sdefan@nginx.com 4071887Sdefan@nginx.com</changes> 4081887Sdefan@nginx.com 4091887Sdefan@nginx.com 4101834Svbart@nginx.com<changes apply="unit-php 4111834Svbart@nginx.com unit-python unit-python2.7 4121834Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 4131834Svbart@nginx.com unit-python3.8 unit-python3.9 4141834Svbart@nginx.com unit-go 4151834Svbart@nginx.com unit-perl 4161834Svbart@nginx.com unit-ruby 4171834Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 4181834Svbart@nginx.com unit-jsc14 unit-jsc15" 4191839Svbart@nginx.com ver="1.24.0" rev="1" 4201891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 4211839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4221839Svbart@nginx.com 4231839Svbart@nginx.com<change> 4241839Svbart@nginx.com<para> 4251839Svbart@nginx.comNGINX Unit updated to 1.24.0. 4261839Svbart@nginx.com</para> 4271839Svbart@nginx.com</change> 4281839Svbart@nginx.com 4291839Svbart@nginx.com</changes> 4301839Svbart@nginx.com 4311839Svbart@nginx.com 4321839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1" 4331891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 4341839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4351839Svbart@nginx.com 4361882So.canty@f5.com<change type="change"> 4371882So.canty@f5.com<para> 4381882So.canty@f5.comPHP added to the default MIME type list. 4391882So.canty@f5.com</para> 4401882So.canty@f5.com</change> 4411882So.canty@f5.com 4421855Sz.hong@f5.com<change type="feature"> 4431855Sz.hong@f5.com<para> 4441885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands. 4451885Sa.suvorov@f5.com</para> 4461885Sa.suvorov@f5.com</change> 4471885Sa.suvorov@f5.com 4481885Sa.suvorov@f5.com<change type="feature"> 4491885Sa.suvorov@f5.com<para> 4501890Svbart@nginx.comthe ability to limit static file serving by MIME types. 4511890Svbart@nginx.com</para> 4521890Svbart@nginx.com</change> 4531890Svbart@nginx.com 4541890Svbart@nginx.com<change type="feature"> 4551890Svbart@nginx.com<para> 4561890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount 4571890Svbart@nginx.compoint traversal on a per-request basis when serving static files. 4581872So.canty@f5.com</para> 4591872So.canty@f5.com</change> 4601872So.canty@f5.com 4611872So.canty@f5.com<change type="feature"> 4621872So.canty@f5.com<para> 4631889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in 4641889Sartem.konev@nginx.comNode.js. 4651865So.canty@f5.com</para> 4661865So.canty@f5.com</change> 4671865So.canty@f5.com 4681865So.canty@f5.com<change type="feature"> 4691865So.canty@f5.com<para> 4701890Svbart@nginx.commultiple "targets" in Python applications. 4711855Sz.hong@f5.com</para> 4721855Sz.hong@f5.com</change> 4731855Sz.hong@f5.com 4741870So.canty@f5.com<change type="feature"> 4751870So.canty@f5.com<para> 4761870So.canty@f5.comcompatibility with Ruby 3.0. 4771870So.canty@f5.com</para> 4781870So.canty@f5.com</change> 4791870So.canty@f5.com 4801861Svbart@nginx.com<change type="bugfix"> 4811861Svbart@nginx.com<para> 4821889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection. 4831884Sa.suvorov@f5.com</para> 4841884Sa.suvorov@f5.com</change> 4851884Sa.suvorov@f5.com 4861884Sa.suvorov@f5.com<change type="bugfix"> 4871884Sa.suvorov@f5.com<para> 4881861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if 4891861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled. 4901861Svbart@nginx.com</para> 4911861Svbart@nginx.com</change> 4921861Svbart@nginx.com 4931839Svbart@nginx.com</changes> 4941839Svbart@nginx.com 4951839Svbart@nginx.com 4961839Svbart@nginx.com<changes apply="unit-php 4971839Svbart@nginx.com unit-python unit-python2.7 4981839Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 4991839Svbart@nginx.com unit-python3.8 unit-python3.9 5001839Svbart@nginx.com unit-go 5011839Svbart@nginx.com unit-perl 5021839Svbart@nginx.com unit-ruby 5031839Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 5041839Svbart@nginx.com unit-jsc14 unit-jsc15" 5051834Svbart@nginx.com ver="1.23.0" rev="1" 5061834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 5071834Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5081834Svbart@nginx.com 5091834Svbart@nginx.com<change> 5101834Svbart@nginx.com<para> 5111834Svbart@nginx.comNGINX Unit updated to 1.23.0. 5121834Svbart@nginx.com</para> 5131834Svbart@nginx.com</change> 5141834Svbart@nginx.com 5151834Svbart@nginx.com</changes> 5161834Svbart@nginx.com 5171834Svbart@nginx.com 5181806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1" 5191834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 5201806Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5211806Svbart@nginx.com 5221825Sthresh@nginx.com<change type="feature"> 5231825Sthresh@nginx.com<para> 5241833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name 5251828Sa.suvorov@f5.comIndication (SNI) TLS extension. 5261828Sa.suvorov@f5.com</para> 5271828Sa.suvorov@f5.com</change> 5281828Sa.suvorov@f5.com 5291828Sa.suvorov@f5.com<change type="feature"> 5301828Sa.suvorov@f5.com<para> 5311833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page 5321833Sartem.konev@nginx.cominstallation. 5331825Sthresh@nginx.com</para> 5341825Sthresh@nginx.com</change> 5351825Sthresh@nginx.com 5361811Smax.romanov@nginx.com<change type="bugfix"> 5371811Smax.romanov@nginx.com<para> 5381812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had 5391812Svbart@nginx.comappeared in 1.17.0. 5401812Svbart@nginx.com</para> 5411812Svbart@nginx.com</change> 5421812Svbart@nginx.com 5431812Svbart@nginx.com<change type="bugfix"> 5441812Svbart@nginx.com<para> 5451833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had 5461812Svbart@nginx.comappeared in 1.6. 5471812Svbart@nginx.com</para> 5481812Svbart@nginx.com</change> 5491812Svbart@nginx.com 5501812Svbart@nginx.com<change type="bugfix"> 5511812Svbart@nginx.com<para> 5521833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing 5531832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0. 5541832Smax.romanov@nginx.com</para> 5551832Smax.romanov@nginx.com</change> 5561832Smax.romanov@nginx.com 5571832Smax.romanov@nginx.com<change type="bugfix"> 5581832Smax.romanov@nginx.com<para> 5591833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or 5601811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0. 5611811Smax.romanov@nginx.com</para> 5621811Smax.romanov@nginx.com</change> 5631806Svbart@nginx.com 5641813Svbart@nginx.com<change type="bugfix"> 5651813Svbart@nginx.com<para> 5661813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in 5671813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart. 5681813Svbart@nginx.com</para> 5691813Svbart@nginx.com</change> 5701813Svbart@nginx.com 5711814Svbart@nginx.com<change type="bugfix"> 5721814Svbart@nginx.com<para> 5731820Svbart@nginx.comthe controller process could crash while requesting information about a 5741820Svbart@nginx.comcertificate with a non-DNS SAN entry. 5751820Svbart@nginx.com</para> 5761820Svbart@nginx.com</change> 5771820Svbart@nginx.com 5781820Svbart@nginx.com<change type="bugfix"> 5791820Svbart@nginx.com<para> 5801822Svbart@nginx.comthe controller process could crash on manipulations with a certificate 5811833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer. 5821822Svbart@nginx.com</para> 5831822Svbart@nginx.com</change> 5841822Svbart@nginx.com 5851822Svbart@nginx.com<change type="bugfix"> 5861822Svbart@nginx.com<para> 5871833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding 5881833Sartem.konev@nginx.comclass. 5891814Svbart@nginx.com</para> 5901814Svbart@nginx.com</change> 5911814Svbart@nginx.com 5921815Svbart@nginx.com<change type="bugfix"> 5931815Svbart@nginx.com<para> 5941815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had 5951815Svbart@nginx.comappeared in 1.22.0. 5961815Svbart@nginx.com</para> 5971815Svbart@nginx.com</change> 5981815Svbart@nginx.com 5991806Svbart@nginx.com</changes> 6001806Svbart@nginx.com 6011806Svbart@nginx.com 6021798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1" 6031798Sdefan@nginx.com date="2021-02-04" time="18:00:00 +0300" 6041798Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6051798Sdefan@nginx.com 6061798Sdefan@nginx.com<change> 6071798Sdefan@nginx.com<para> 6081798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit. 6091798Sdefan@nginx.com</para> 6101798Sdefan@nginx.com</change> 6111798Sdefan@nginx.com 6121798Sdefan@nginx.com</changes> 6131798Sdefan@nginx.com 6141798Sdefan@nginx.com 6151763Sdefan@nginx.com<changes apply="unit-php 6161763Sdefan@nginx.com unit-python unit-python2.7 6171763Sdefan@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 6181763Sdefan@nginx.com unit-python3.8 6191763Sdefan@nginx.com unit-go 6201763Sdefan@nginx.com unit-perl 6211763Sdefan@nginx.com unit-ruby 6221763Sdefan@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 6231763Sdefan@nginx.com unit-jsc14 unit-jsc15" 6241763Sdefan@nginx.com ver="1.22.0" rev="1" 6251793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 6261763Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6271763Sdefan@nginx.com 6281763Sdefan@nginx.com<change> 6291763Sdefan@nginx.com<para> 6301763Sdefan@nginx.comNGINX Unit updated to 1.22.0. 6311763Sdefan@nginx.com</para> 6321763Sdefan@nginx.com</change> 6331763Sdefan@nginx.com 6341763Sdefan@nginx.com</changes> 6351763Sdefan@nginx.com 6361763Sdefan@nginx.com 6371727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1" 6381793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 6391727Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6401727Svbart@nginx.com 6411759Svbart@nginx.com<change type="feature"> 6421759Svbart@nginx.com<para> 6431792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now 6441792Svbart@nginx.comcompliant with Stream API. 6451759Svbart@nginx.com</para> 6461759Svbart@nginx.com</change> 6471759Svbart@nginx.com 6481766Smax.romanov@nginx.com<change type="feature"> 6491766Smax.romanov@nginx.com<para> 6501792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python 6511792Svbart@nginx.comapps. 6521732Svbart@nginx.com</para> 6531732Svbart@nginx.com</change> 6541732Svbart@nginx.com 6551733Svbart@nginx.com<change type="bugfix"> 6561733Svbart@nginx.com<para> 6571792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than 6581792Svbart@nginx.com128K; the bug had appeared in 1.13.0. 6591754Smax.romanov@nginx.com</para> 6601754Smax.romanov@nginx.com</change> 6611754Smax.romanov@nginx.com 6621755Smax.romanov@nginx.com<change type="bugfix"> 6631755Smax.romanov@nginx.com<para> 6641790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had 6651755Smax.romanov@nginx.comappeared in 1.19.0. 6661755Smax.romanov@nginx.com</para> 6671755Smax.romanov@nginx.com</change> 6681755Smax.romanov@nginx.com 6691756Smax.romanov@nginx.com<change type="bugfix"> 6701756Smax.romanov@nginx.com<para> 6711790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had 6721790Sartem.konev@nginx.comappeared in 1.19.0. 6731756Smax.romanov@nginx.com</para> 6741756Smax.romanov@nginx.com</change> 6751756Smax.romanov@nginx.com 6761760Smax.romanov@nginx.com<change type="bugfix"> 6771760Smax.romanov@nginx.com<para> 6781792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes. 6791792Svbart@nginx.com</para> 6801792Svbart@nginx.com</change> 6811792Svbart@nginx.com 6821792Svbart@nginx.com<change type="bugfix"> 6831792Svbart@nginx.com<para> 6841792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were 6851792Svbart@nginx.commissing in the PHP module. 6861792Svbart@nginx.com</para> 6871792Svbart@nginx.com</change> 6881792Svbart@nginx.com 6891792Svbart@nginx.com<change type="bugfix"> 6901792Svbart@nginx.com<para> 6911792Svbart@nginx.comthe router process could crash with multithreaded apps under high load. 6921792Svbart@nginx.com</para> 6931792Svbart@nginx.com</change> 6941792Svbart@nginx.com 6951792Svbart@nginx.com<change type="bugfix"> 6961792Svbart@nginx.com<para> 6971792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load. 6981792Svbart@nginx.com</para> 6991792Svbart@nginx.com</change> 7001792Svbart@nginx.com 7011792Svbart@nginx.com<change type="bugfix"> 7021792Svbart@nginx.com<para> 7031792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used; 7041792Svbart@nginx.comthe bug had appeared in 1.21.0. 7051760Smax.romanov@nginx.com</para> 7061760Smax.romanov@nginx.com</change> 7071760Smax.romanov@nginx.com 7081780Smax.romanov@nginx.com<change type="bugfix"> 7091780Smax.romanov@nginx.com<para> 7101790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used 7111790Sartem.konev@nginx.comWebSocket. 7121780Smax.romanov@nginx.com</para> 7131780Smax.romanov@nginx.com</change> 7141780Smax.romanov@nginx.com 7151789Smax.romanov@nginx.com<change type="bugfix"> 7161789Smax.romanov@nginx.com<para> 7171789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring 7181789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0. 7191789Smax.romanov@nginx.com</para> 7201789Smax.romanov@nginx.com</change> 7211789Smax.romanov@nginx.com 7221727Svbart@nginx.com</changes> 7231727Svbart@nginx.com 7241727Svbart@nginx.com 7251722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1" 7261722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 7271722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7281722Svbart@nginx.com 7291722Svbart@nginx.com<change> 7301722Svbart@nginx.com<para> 7311722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit. 7321722Svbart@nginx.com</para> 7331722Svbart@nginx.com</change> 7341722Svbart@nginx.com 7351722Svbart@nginx.com</changes> 7361722Svbart@nginx.com 7371722Svbart@nginx.com 7381722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1" 7391722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 7401722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7411722Svbart@nginx.com 7421722Svbart@nginx.com<change> 7431722Svbart@nginx.com<para> 7441722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit. 7451722Svbart@nginx.com</para> 7461722Svbart@nginx.com</change> 7471722Svbart@nginx.com 7481722Svbart@nginx.com</changes> 7491722Svbart@nginx.com 7501722Svbart@nginx.com 7511722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1" 7521722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 7531722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7541722Svbart@nginx.com 7551722Svbart@nginx.com<change> 7561722Svbart@nginx.com<para> 7571722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit. 7581722Svbart@nginx.com</para> 7591722Svbart@nginx.com</change> 7601722Svbart@nginx.com 7611722Svbart@nginx.com</changes> 7621722Svbart@nginx.com 7631722Svbart@nginx.com 7641722Svbart@nginx.com<changes apply="unit-php 7651722Svbart@nginx.com unit-python unit-python2.7 7661722Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 7671722Svbart@nginx.com unit-python3.8 7681722Svbart@nginx.com unit-go 7691722Svbart@nginx.com unit-perl 7701722Svbart@nginx.com unit-ruby 7711722Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 7721722Svbart@nginx.com ver="1.21.0" rev="1" 7731722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 7741722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7751722Svbart@nginx.com 7761722Svbart@nginx.com<change> 7771722Svbart@nginx.com<para> 7781722Svbart@nginx.comNGINX Unit updated to 1.21.0. 7791722Svbart@nginx.com</para> 7801722Svbart@nginx.com</change> 7811722Svbart@nginx.com 7821722Svbart@nginx.com</changes> 7831722Svbart@nginx.com 7841722Svbart@nginx.com 7851722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1" 7861722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 7871722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7881722Svbart@nginx.com 7891722Svbart@nginx.com<change type="change"> 7901722Svbart@nginx.com<para> 7911722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used. 7921722Svbart@nginx.com</para> 7931722Svbart@nginx.com</change> 7941722Svbart@nginx.com 7951722Svbart@nginx.com<change type="change"> 7961722Svbart@nginx.com<para> 7971722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field 7981722Svbart@nginx.comnames. 7991722Svbart@nginx.com</para> 8001722Svbart@nginx.com</change> 8011722Svbart@nginx.com 8021722Svbart@nginx.com<change type="change"> 8031722Svbart@nginx.com<para> 8041722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by 8051722Svbart@nginx.comdefault. 8061722Svbart@nginx.com</para> 8071722Svbart@nginx.com</change> 8081722Svbart@nginx.com 8091722Svbart@nginx.com<change type="feature"> 8101722Svbart@nginx.com<para> 8111722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps. 8121722Svbart@nginx.com</para> 8131722Svbart@nginx.com</change> 8141722Svbart@nginx.com 8151722Svbart@nginx.com<change type="feature"> 8161722Svbart@nginx.com<para> 8171722Svbart@nginx.comregular expressions in route matching patterns. 8181722Svbart@nginx.com</para> 8191722Svbart@nginx.com</change> 8201722Svbart@nginx.com 8211722Svbart@nginx.com<change type="feature"> 8221722Svbart@nginx.com<para> 8231722Svbart@nginx.comcompatibility with Python 3.9. 8241722Svbart@nginx.com</para> 8251722Svbart@nginx.com</change> 8261722Svbart@nginx.com 8271722Svbart@nginx.com<change type="feature"> 8281722Svbart@nginx.com<para> 8291722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications. 8301722Svbart@nginx.com</para> 8311722Svbart@nginx.com</change> 8321722Svbart@nginx.com 8331722Svbart@nginx.com<change type="feature"> 8341722Svbart@nginx.com<para> 8351722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI. 8361722Svbart@nginx.com</para> 8371722Svbart@nginx.com</change> 8381722Svbart@nginx.com 8391722Svbart@nginx.com<change type="feature"> 8401722Svbart@nginx.com<para> 8411722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and 8421722Svbart@nginx.comcontinues code execution without holding onto the client connection. 8431722Svbart@nginx.com</para> 8441722Svbart@nginx.com</change> 8451722Svbart@nginx.com 8461722Svbart@nginx.com<change type="feature"> 8471722Svbart@nginx.com<para> 8481722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header 8491722Svbart@nginx.comfields with irregular (but still valid) characters in the field name. 8501722Svbart@nginx.com</para> 8511722Svbart@nginx.com</change> 8521722Svbart@nginx.com 8531722Svbart@nginx.com<change type="feature"> 8541722Svbart@nginx.com<para> 8551722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic 8561722Svbart@nginx.commounting of eponymous filesystems. 8571722Svbart@nginx.com</para> 8581722Svbart@nginx.com</change> 8591722Svbart@nginx.com 8601722Svbart@nginx.com<change type="bugfix"> 8611722Svbart@nginx.com<para> 8621722Svbart@nginx.comthe router process could crash when running Go applications under high load; 8631722Svbart@nginx.comthe bug had appeared in 1.19.0. 8641722Svbart@nginx.com</para> 8651722Svbart@nginx.com</change> 8661722Svbart@nginx.com 8671722Svbart@nginx.com<change type="bugfix"> 8681722Svbart@nginx.com<para> 8691722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation. 8701722Svbart@nginx.com</para> 8711722Svbart@nginx.com</change> 8721722Svbart@nginx.com 8731722Svbart@nginx.com<change type="bugfix"> 8741722Svbart@nginx.com<para> 8751722Svbart@nginx.comvarious compatibility issues in Java applications. 8761722Svbart@nginx.com</para> 8771722Svbart@nginx.com</change> 8781722Svbart@nginx.com 8791722Svbart@nginx.com<change type="bugfix"> 8801722Svbart@nginx.com<para> 8811722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that 8821722Svbart@nginx.comuse "rootfs" isolation. 8831722Svbart@nginx.com</para> 8841722Svbart@nginx.com</change> 8851722Svbart@nginx.com 8861722Svbart@nginx.com</changes> 8871722Svbart@nginx.com 8881722Svbart@nginx.com 8891330Svbart@nginx.com<changes apply="unit-php 8901330Svbart@nginx.com unit-python unit-python2.7 8911330Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 8921330Svbart@nginx.com unit-python3.8 8931330Svbart@nginx.com unit-go 8941330Svbart@nginx.com unit-perl 8951330Svbart@nginx.com unit-ruby 8961330Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 8971640Svbart@nginx.com ver="1.20.0" rev="1" 8981640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 8991640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9001640Svbart@nginx.com 9011640Svbart@nginx.com<change> 9021640Svbart@nginx.com<para> 9031640Svbart@nginx.comNGINX Unit updated to 1.20.0. 9041640Svbart@nginx.com</para> 9051640Svbart@nginx.com</change> 9061640Svbart@nginx.com 9071640Svbart@nginx.com</changes> 9081640Svbart@nginx.com 9091640Svbart@nginx.com 9101640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1" 9111640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 9121640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9131640Svbart@nginx.com 9141640Svbart@nginx.com<change type="change"> 9151640Svbart@nginx.com<para> 9161640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all 9171640Svbart@nginx.comextensions from the host system. 9181640Svbart@nginx.com</para> 9191640Svbart@nginx.com</change> 9201640Svbart@nginx.com 9211640Svbart@nginx.com<change type="change"> 9221640Svbart@nginx.com<para> 9231640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list. 9241640Svbart@nginx.com</para> 9251640Svbart@nginx.com</change> 9261640Svbart@nginx.com 9271643Svbart@nginx.com<change type="change"> 9281643Svbart@nginx.com<para> 9291643Svbart@nginx.comfunctional tests migrated to the pytest framework. 9301643Svbart@nginx.com</para> 9311643Svbart@nginx.com</change> 9321643Svbart@nginx.com 9331640Svbart@nginx.com<change type="feature"> 9341640Svbart@nginx.com<para> 9351640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server 9361640Svbart@nginx.cominterface. 9371640Svbart@nginx.com</para> 9381640Svbart@nginx.com</change> 9391640Svbart@nginx.com 9401640Svbart@nginx.com<change type="feature"> 9411640Svbart@nginx.com<para> 9421640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for 9431640Svbart@nginx.comapplications, compatible with the HTTP & WebSocket ASGI Message Format 2.1 9441640Svbart@nginx.comspecification. 9451640Svbart@nginx.com</para> 9461640Svbart@nginx.com</change> 9471640Svbart@nginx.com 9481640Svbart@nginx.com<change type="feature"> 9491640Svbart@nginx.com<para> 9501640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application 9511640Svbart@nginx.comenvironments. 9521640Svbart@nginx.com</para> 9531640Svbart@nginx.com</change> 9541640Svbart@nginx.com 9551640Svbart@nginx.com<change type="feature"> 9561640Svbart@nginx.com<para> 9571640Svbart@nginx.comthe $host variable contains a normalized "Host" request value. 9581640Svbart@nginx.com</para> 9591640Svbart@nginx.com</change> 9601640Svbart@nginx.com 9611640Svbart@nginx.com<change type="feature"> 9621640Svbart@nginx.com<para> 9631640Svbart@nginx.comthe "callable" option sets Python application callable names. 9641640Svbart@nginx.com</para> 9651640Svbart@nginx.com</change> 9661640Svbart@nginx.com 9671640Svbart@nginx.com<change type="feature"> 9681640Svbart@nginx.com<para> 9691640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet. 9701640Svbart@nginx.com</para> 9711640Svbart@nginx.com</change> 9721640Svbart@nginx.com 9731640Svbart@nginx.com<change type="feature"> 9741640Svbart@nginx.com<para> 9751640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the 9761640Svbart@nginx.comautomatic mounting of language module dependencies. 9771640Svbart@nginx.com</para> 9781640Svbart@nginx.com</change> 9791640Svbart@nginx.com 9801640Svbart@nginx.com<change type="bugfix"> 9811640Svbart@nginx.com<para> 9821640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared 9831640Svbart@nginx.comin 1.19.0. Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it. 9841640Svbart@nginx.com</para> 9851640Svbart@nginx.com</change> 9861640Svbart@nginx.com 9871640Svbart@nginx.com<change type="bugfix"> 9881640Svbart@nginx.com<para> 9891640Svbart@nginx.comthe router process could crash during reconfiguration. 9901640Svbart@nginx.com</para> 9911640Svbart@nginx.com</change> 9921640Svbart@nginx.com 9931640Svbart@nginx.com<change type="bugfix"> 9941640Svbart@nginx.com<para> 9951640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0. 9961640Svbart@nginx.com</para> 9971640Svbart@nginx.com</change> 9981640Svbart@nginx.com 9991640Svbart@nginx.com<change type="bugfix"> 10001640Svbart@nginx.com<para> 10011640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly; 10021640Svbart@nginx.comthe bug had appeared in 1.19.0. 10031640Svbart@nginx.com</para> 10041640Svbart@nginx.com</change> 10051640Svbart@nginx.com 10061640Svbart@nginx.com<change type="bugfix"> 10071640Svbart@nginx.com<para> 10081640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD; 10091640Svbart@nginx.comthe bug had appeared in 1.16.0. 10101640Svbart@nginx.com</para> 10111640Svbart@nginx.com</change> 10121640Svbart@nginx.com 10131640Svbart@nginx.com</changes> 10141640Svbart@nginx.com 10151640Svbart@nginx.com 10161640Svbart@nginx.com<changes apply="unit-php 10171640Svbart@nginx.com unit-python unit-python2.7 10181640Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 10191640Svbart@nginx.com unit-python3.8 10201640Svbart@nginx.com unit-go 10211640Svbart@nginx.com unit-perl 10221640Svbart@nginx.com unit-ruby 10231640Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 10241570Svbart@nginx.com ver="1.19.0" rev="1" 10251570Svbart@nginx.com date="2020-08-13" time="18:00:00 +0300" 10261570Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10271570Svbart@nginx.com 10281570Svbart@nginx.com<change> 10291570Svbart@nginx.com<para> 10301570Svbart@nginx.comNGINX Unit updated to 1.19.0. 10311570Svbart@nginx.com</para> 10321570Svbart@nginx.com</change> 10331570Svbart@nginx.com 10341570Svbart@nginx.com</changes> 10351570Svbart@nginx.com 10361570Svbart@nginx.com 10371570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1" 10381570Svbart@nginx.com date="2020-08-13" time="18:00:00 +0300" 10391570Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10401570Svbart@nginx.com 10411570Svbart@nginx.com<change type="feature"> 10421570Svbart@nginx.com<para> 10431570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies, 10441570Svbart@nginx.comincrease performance, and improve scalability. 10451570Svbart@nginx.com</para> 10461570Svbart@nginx.com</change> 10471570Svbart@nginx.com 10481570Svbart@nginx.com<change type="feature"> 10491570Svbart@nginx.com<para> 10501570