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 81896Svbart@nginx.com<changes apply="unit-php 91896Svbart@nginx.com unit-python unit-python2.7 101896Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 111896Svbart@nginx.com unit-python3.8 unit-python3.9 121896Svbart@nginx.com unit-go 131896Svbart@nginx.com unit-perl 141896Svbart@nginx.com unit-ruby 151896Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 161896Svbart@nginx.com unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17" 171896Svbart@nginx.com ver="1.25.0" rev="1" 181896Svbart@nginx.com date="" time="" 191896Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 201896Svbart@nginx.com 211896Svbart@nginx.com<change> 221896Svbart@nginx.com<para> 231896Svbart@nginx.comNGINX Unit updated to 1.25.0. 241896Svbart@nginx.com</para> 251896Svbart@nginx.com</change> 261896Svbart@nginx.com 271896Svbart@nginx.com</changes> 281896Svbart@nginx.com 291896Svbart@nginx.com 301896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1" 311896Svbart@nginx.com date="" time="" 321896Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 331896Svbart@nginx.com 34*1907Smax.romanov@nginx.com<change type="bugfix"> 35*1907Smax.romanov@nginx.com<para> 36*1907Smax.romanov@nginx.comthe router process could crash on TLS connection open when multiple listeners 37*1907Smax.romanov@nginx.comwith TLS certificate configured; the bug had appeared in 1.23.0. 38*1907Smax.romanov@nginx.com</para> 39*1907Smax.romanov@nginx.com</change> 40*1907Smax.romanov@nginx.com 41*1907Smax.romanov@nginx.com<change type="bugfix"> 42*1907Smax.romanov@nginx.com<para> 43*1907Smax.romanov@nginx.coma descriptor and memory leak occurred in the router process when an app 44*1907Smax.romanov@nginx.comprocess stopped or crashed. 45*1907Smax.romanov@nginx.com</para> 46*1907Smax.romanov@nginx.com</change> 47*1907Smax.romanov@nginx.com 481896Svbart@nginx.com</changes> 491896Svbart@nginx.com 501896Svbart@nginx.com 511887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1" 521891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 531887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 541887Sdefan@nginx.com 551887Sdefan@nginx.com<change> 561887Sdefan@nginx.com<para> 571887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit. 581887Sdefan@nginx.com</para> 591887Sdefan@nginx.com</change> 601887Sdefan@nginx.com 611887Sdefan@nginx.com</changes> 621887Sdefan@nginx.com 631887Sdefan@nginx.com 641887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1" 651891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 661887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 671887Sdefan@nginx.com 681887Sdefan@nginx.com<change> 691887Sdefan@nginx.com<para> 701887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit. 711887Sdefan@nginx.com</para> 721887Sdefan@nginx.com</change> 731887Sdefan@nginx.com 741887Sdefan@nginx.com</changes> 751887Sdefan@nginx.com 761887Sdefan@nginx.com 771834Svbart@nginx.com<changes apply="unit-php 781834Svbart@nginx.com unit-python unit-python2.7 791834Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 801834Svbart@nginx.com unit-python3.8 unit-python3.9 811834Svbart@nginx.com unit-go 821834Svbart@nginx.com unit-perl 831834Svbart@nginx.com unit-ruby 841834Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 851834Svbart@nginx.com unit-jsc14 unit-jsc15" 861839Svbart@nginx.com ver="1.24.0" rev="1" 871891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 881839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 891839Svbart@nginx.com 901839Svbart@nginx.com<change> 911839Svbart@nginx.com<para> 921839Svbart@nginx.comNGINX Unit updated to 1.24.0. 931839Svbart@nginx.com</para> 941839Svbart@nginx.com</change> 951839Svbart@nginx.com 961839Svbart@nginx.com</changes> 971839Svbart@nginx.com 981839Svbart@nginx.com 991839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1" 1001891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 1011839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1021839Svbart@nginx.com 1031882So.canty@f5.com<change type="change"> 1041882So.canty@f5.com<para> 1051882So.canty@f5.comPHP added to the default MIME type list. 1061882So.canty@f5.com</para> 1071882So.canty@f5.com</change> 1081882So.canty@f5.com 1091855Sz.hong@f5.com<change type="feature"> 1101855Sz.hong@f5.com<para> 1111885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands. 1121885Sa.suvorov@f5.com</para> 1131885Sa.suvorov@f5.com</change> 1141885Sa.suvorov@f5.com 1151885Sa.suvorov@f5.com<change type="feature"> 1161885Sa.suvorov@f5.com<para> 1171890Svbart@nginx.comthe ability to limit static file serving by MIME types. 1181890Svbart@nginx.com</para> 1191890Svbart@nginx.com</change> 1201890Svbart@nginx.com 1211890Svbart@nginx.com<change type="feature"> 1221890Svbart@nginx.com<para> 1231890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount 1241890Svbart@nginx.compoint traversal on a per-request basis when serving static files. 1251872So.canty@f5.com</para> 1261872So.canty@f5.com</change> 1271872So.canty@f5.com 1281872So.canty@f5.com<change type="feature"> 1291872So.canty@f5.com<para> 1301889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in 1311889Sartem.konev@nginx.comNode.js. 1321865So.canty@f5.com</para> 1331865So.canty@f5.com</change> 1341865So.canty@f5.com 1351865So.canty@f5.com<change type="feature"> 1361865So.canty@f5.com<para> 1371890Svbart@nginx.commultiple "targets" in Python applications. 1381855Sz.hong@f5.com</para> 1391855Sz.hong@f5.com</change> 1401855Sz.hong@f5.com 1411870So.canty@f5.com<change type="feature"> 1421870So.canty@f5.com<para> 1431870So.canty@f5.comcompatibility with Ruby 3.0. 1441870So.canty@f5.com</para> 1451870So.canty@f5.com</change> 1461870So.canty@f5.com 1471861Svbart@nginx.com<change type="bugfix"> 1481861Svbart@nginx.com<para> 1491889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection. 1501884Sa.suvorov@f5.com</para> 1511884Sa.suvorov@f5.com</change> 1521884Sa.suvorov@f5.com 1531884Sa.suvorov@f5.com<change type="bugfix"> 1541884Sa.suvorov@f5.com<para> 1551861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if 1561861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled. 1571861Svbart@nginx.com</para> 1581861Svbart@nginx.com</change> 1591861Svbart@nginx.com 1601839Svbart@nginx.com</changes> 1611839Svbart@nginx.com 1621839Svbart@nginx.com 1631839Svbart@nginx.com<changes apply="unit-php 1641839Svbart@nginx.com unit-python unit-python2.7 1651839Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 1661839Svbart@nginx.com unit-python3.8 unit-python3.9 1671839Svbart@nginx.com unit-go 1681839Svbart@nginx.com unit-perl 1691839Svbart@nginx.com unit-ruby 1701839Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 1711839Svbart@nginx.com unit-jsc14 unit-jsc15" 1721834Svbart@nginx.com ver="1.23.0" rev="1" 1731834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 1741834Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1751834Svbart@nginx.com 1761834Svbart@nginx.com<change> 1771834Svbart@nginx.com<para> 1781834Svbart@nginx.comNGINX Unit updated to 1.23.0. 1791834Svbart@nginx.com</para> 1801834Svbart@nginx.com</change> 1811834Svbart@nginx.com 1821834Svbart@nginx.com</changes> 1831834Svbart@nginx.com 1841834Svbart@nginx.com 1851806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1" 1861834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 1871806Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1881806Svbart@nginx.com 1891825Sthresh@nginx.com<change type="feature"> 1901825Sthresh@nginx.com<para> 1911833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name 1921828Sa.suvorov@f5.comIndication (SNI) TLS extension. 1931828Sa.suvorov@f5.com</para> 1941828Sa.suvorov@f5.com</change> 1951828Sa.suvorov@f5.com 1961828Sa.suvorov@f5.com<change type="feature"> 1971828Sa.suvorov@f5.com<para> 1981833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page 1991833Sartem.konev@nginx.cominstallation. 2001825Sthresh@nginx.com</para> 2011825Sthresh@nginx.com</change> 2021825Sthresh@nginx.com 2031811Smax.romanov@nginx.com<change type="bugfix"> 2041811Smax.romanov@nginx.com<para> 2051812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had 2061812Svbart@nginx.comappeared in 1.17.0. 2071812Svbart@nginx.com</para> 2081812Svbart@nginx.com</change> 2091812Svbart@nginx.com 2101812Svbart@nginx.com<change type="bugfix"> 2111812Svbart@nginx.com<para> 2121833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had 2131812Svbart@nginx.comappeared in 1.6. 2141812Svbart@nginx.com</para> 2151812Svbart@nginx.com</change> 2161812Svbart@nginx.com 2171812Svbart@nginx.com<change type="bugfix"> 2181812Svbart@nginx.com<para> 2191833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing 2201832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0. 2211832Smax.romanov@nginx.com</para> 2221832Smax.romanov@nginx.com</change> 2231832Smax.romanov@nginx.com 2241832Smax.romanov@nginx.com<change type="bugfix"> 2251832Smax.romanov@nginx.com<para> 2261833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or 2271811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0. 2281811Smax.romanov@nginx.com</para> 2291811Smax.romanov@nginx.com</change> 2301806Svbart@nginx.com 2311813Svbart@nginx.com<change type="bugfix"> 2321813Svbart@nginx.com<para> 2331813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in 2341813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart. 2351813Svbart@nginx.com</para> 2361813Svbart@nginx.com</change> 2371813Svbart@nginx.com 2381814Svbart@nginx.com<change type="bugfix"> 2391814Svbart@nginx.com<para> 2401820Svbart@nginx.comthe controller process could crash while requesting information about a 2411820Svbart@nginx.comcertificate with a non-DNS SAN entry. 2421820Svbart@nginx.com</para> 2431820Svbart@nginx.com</change> 2441820Svbart@nginx.com 2451820Svbart@nginx.com<change type="bugfix"> 2461820Svbart@nginx.com<para> 2471822Svbart@nginx.comthe controller process could crash on manipulations with a certificate 2481833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer. 2491822Svbart@nginx.com</para> 2501822Svbart@nginx.com</change> 2511822Svbart@nginx.com 2521822Svbart@nginx.com<change type="bugfix"> 2531822Svbart@nginx.com<para> 2541833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding 2551833Sartem.konev@nginx.comclass. 2561814Svbart@nginx.com</para> 2571814Svbart@nginx.com</change> 2581814Svbart@nginx.com 2591815Svbart@nginx.com<change type="bugfix"> 2601815Svbart@nginx.com<para> 2611815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had 2621815Svbart@nginx.comappeared in 1.22.0. 2631815Svbart@nginx.com</para> 2641815Svbart@nginx.com</change> 2651815Svbart@nginx.com 2661806Svbart@nginx.com</changes> 2671806Svbart@nginx.com 2681806Svbart@nginx.com 2691798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1" 2701798Sdefan@nginx.com date="2021-02-04" time="18:00:00 +0300" 2711798Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2721798Sdefan@nginx.com 2731798Sdefan@nginx.com<change> 2741798Sdefan@nginx.com<para> 2751798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit. 2761798Sdefan@nginx.com</para> 2771798Sdefan@nginx.com</change> 2781798Sdefan@nginx.com 2791798Sdefan@nginx.com</changes> 2801798Sdefan@nginx.com 2811798Sdefan@nginx.com 2821763Sdefan@nginx.com<changes apply="unit-php 2831763Sdefan@nginx.com unit-python unit-python2.7 2841763Sdefan@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 2851763Sdefan@nginx.com unit-python3.8 2861763Sdefan@nginx.com unit-go 2871763Sdefan@nginx.com unit-perl 2881763Sdefan@nginx.com unit-ruby 2891763Sdefan@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 2901763Sdefan@nginx.com unit-jsc14 unit-jsc15" 2911763Sdefan@nginx.com ver="1.22.0" rev="1" 2921793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 2931763Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2941763Sdefan@nginx.com 2951763Sdefan@nginx.com<change> 2961763Sdefan@nginx.com<para> 2971763Sdefan@nginx.comNGINX Unit updated to 1.22.0. 2981763Sdefan@nginx.com</para> 2991763Sdefan@nginx.com</change> 3001763Sdefan@nginx.com 3011763Sdefan@nginx.com</changes> 3021763Sdefan@nginx.com 3031763Sdefan@nginx.com 3041727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1" 3051793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 3061727Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3071727Svbart@nginx.com 3081759Svbart@nginx.com<change type="feature"> 3091759Svbart@nginx.com<para> 3101792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now 3111792Svbart@nginx.comcompliant with Stream API. 3121759Svbart@nginx.com</para> 3131759Svbart@nginx.com</change> 3141759Svbart@nginx.com 3151766Smax.romanov@nginx.com<change type="feature"> 3161766Smax.romanov@nginx.com<para> 3171792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python 3181792Svbart@nginx.comapps. 3191732Svbart@nginx.com</para> 3201732Svbart@nginx.com</change> 3211732Svbart@nginx.com 3221733Svbart@nginx.com<change type="bugfix"> 3231733Svbart@nginx.com<para> 3241792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than 3251792Svbart@nginx.com128K; the bug had appeared in 1.13.0. 3261754Smax.romanov@nginx.com</para> 3271754Smax.romanov@nginx.com</change> 3281754Smax.romanov@nginx.com 3291755Smax.romanov@nginx.com<change type="bugfix"> 3301755Smax.romanov@nginx.com<para> 3311790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had 3321755Smax.romanov@nginx.comappeared in 1.19.0. 3331755Smax.romanov@nginx.com</para> 3341755Smax.romanov@nginx.com</change> 3351755Smax.romanov@nginx.com 3361756Smax.romanov@nginx.com<change type="bugfix"> 3371756Smax.romanov@nginx.com<para> 3381790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had 3391790Sartem.konev@nginx.comappeared in 1.19.0. 3401756Smax.romanov@nginx.com</para> 3411756Smax.romanov@nginx.com</change> 3421756Smax.romanov@nginx.com 3431760Smax.romanov@nginx.com<change type="bugfix"> 3441760Smax.romanov@nginx.com<para> 3451792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes. 3461792Svbart@nginx.com</para> 3471792Svbart@nginx.com</change> 3481792Svbart@nginx.com 3491792Svbart@nginx.com<change type="bugfix"> 3501792Svbart@nginx.com<para> 3511792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were 3521792Svbart@nginx.commissing in the PHP module. 3531792Svbart@nginx.com</para> 3541792Svbart@nginx.com</change> 3551792Svbart@nginx.com 3561792Svbart@nginx.com<change type="bugfix"> 3571792Svbart@nginx.com<para> 3581792Svbart@nginx.comthe router process could crash with multithreaded apps under high load. 3591792Svbart@nginx.com</para> 3601792Svbart@nginx.com</change> 3611792Svbart@nginx.com 3621792Svbart@nginx.com<change type="bugfix"> 3631792Svbart@nginx.com<para> 3641792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load. 3651792Svbart@nginx.com</para> 3661792Svbart@nginx.com</change> 3671792Svbart@nginx.com 3681792Svbart@nginx.com<change type="bugfix"> 3691792Svbart@nginx.com<para> 3701792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used; 3711792Svbart@nginx.comthe bug had appeared in 1.21.0. 3721760Smax.romanov@nginx.com</para> 3731760Smax.romanov@nginx.com</change> 3741760Smax.romanov@nginx.com 3751780Smax.romanov@nginx.com<change type="bugfix"> 3761780Smax.romanov@nginx.com<para> 3771790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used 3781790Sartem.konev@nginx.comWebSocket. 3791780Smax.romanov@nginx.com</para> 3801780Smax.romanov@nginx.com</change> 3811780Smax.romanov@nginx.com 3821789Smax.romanov@nginx.com<change type="bugfix"> 3831789Smax.romanov@nginx.com<para> 3841789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring 3851789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0. 3861789Smax.romanov@nginx.com</para> 3871789Smax.romanov@nginx.com</change> 3881789Smax.romanov@nginx.com 3891727Svbart@nginx.com</changes> 3901727Svbart@nginx.com 3911727Svbart@nginx.com 3921722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1" 3931722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 3941722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3951722Svbart@nginx.com 3961722Svbart@nginx.com<change> 3971722Svbart@nginx.com<para> 3981722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit. 3991722Svbart@nginx.com</para> 4001722Svbart@nginx.com</change> 4011722Svbart@nginx.com 4021722Svbart@nginx.com</changes> 4031722Svbart@nginx.com 4041722Svbart@nginx.com 4051722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1" 4061722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 4071722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4081722Svbart@nginx.com 4091722Svbart@nginx.com<change> 4101722Svbart@nginx.com<para> 4111722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit. 4121722Svbart@nginx.com</para> 4131722Svbart@nginx.com</change> 4141722Svbart@nginx.com 4151722Svbart@nginx.com</changes> 4161722Svbart@nginx.com 4171722Svbart@nginx.com 4181722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1" 4191722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 4201722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4211722Svbart@nginx.com 4221722Svbart@nginx.com<change> 4231722Svbart@nginx.com<para> 4241722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit. 4251722Svbart@nginx.com</para> 4261722Svbart@nginx.com</change> 4271722Svbart@nginx.com 4281722Svbart@nginx.com</changes> 4291722Svbart@nginx.com 4301722Svbart@nginx.com 4311722Svbart@nginx.com<changes apply="unit-php 4321722Svbart@nginx.com unit-python unit-python2.7 4331722Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 4341722Svbart@nginx.com unit-python3.8 4351722Svbart@nginx.com unit-go 4361722Svbart@nginx.com unit-perl 4371722Svbart@nginx.com unit-ruby 4381722Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 4391722Svbart@nginx.com ver="1.21.0" rev="1" 4401722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 4411722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4421722Svbart@nginx.com 4431722Svbart@nginx.com<change> 4441722Svbart@nginx.com<para> 4451722Svbart@nginx.comNGINX Unit updated to 1.21.0. 4461722Svbart@nginx.com</para> 4471722Svbart@nginx.com</change> 4481722Svbart@nginx.com 4491722Svbart@nginx.com</changes> 4501722Svbart@nginx.com 4511722Svbart@nginx.com 4521722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1" 4531722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 4541722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4551722Svbart@nginx.com 4561722Svbart@nginx.com<change type="change"> 4571722Svbart@nginx.com<para> 4581722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used. 4591722Svbart@nginx.com</para> 4601722Svbart@nginx.com</change> 4611722Svbart@nginx.com 4621722Svbart@nginx.com<change type="change"> 4631722Svbart@nginx.com<para> 4641722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field 4651722Svbart@nginx.comnames. 4661722Svbart@nginx.com</para> 4671722Svbart@nginx.com</change> 4681722Svbart@nginx.com 4691722Svbart@nginx.com<change type="change"> 4701722Svbart@nginx.com<para> 4711722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by 4721722Svbart@nginx.comdefault. 4731722Svbart@nginx.com</para> 4741722Svbart@nginx.com</change> 4751722Svbart@nginx.com 4761722Svbart@nginx.com<change type="feature"> 4771722Svbart@nginx.com<para> 4781722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps. 4791722Svbart@nginx.com</para> 4801722Svbart@nginx.com</change> 4811722Svbart@nginx.com 4821722Svbart@nginx.com<change type="feature"> 4831722Svbart@nginx.com<para> 4841722Svbart@nginx.comregular expressions in route matching patterns. 4851722Svbart@nginx.com</para> 4861722Svbart@nginx.com</change> 4871722Svbart@nginx.com 4881722Svbart@nginx.com<change type="feature"> 4891722Svbart@nginx.com<para> 4901722Svbart@nginx.comcompatibility with Python 3.9. 4911722Svbart@nginx.com</para> 4921722Svbart@nginx.com</change> 4931722Svbart@nginx.com 4941722Svbart@nginx.com<change type="feature"> 4951722Svbart@nginx.com<para> 4961722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications. 4971722Svbart@nginx.com</para> 4981722Svbart@nginx.com</change> 4991722Svbart@nginx.com 5001722Svbart@nginx.com<change type="feature"> 5011722Svbart@nginx.com<para> 5021722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI. 5031722Svbart@nginx.com</para> 5041722Svbart@nginx.com</change> 5051722Svbart@nginx.com 5061722Svbart@nginx.com<change type="feature"> 5071722Svbart@nginx.com<para> 5081722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and 5091722Svbart@nginx.comcontinues code execution without holding onto the client connection. 5101722Svbart@nginx.com</para> 5111722Svbart@nginx.com</change> 5121722Svbart@nginx.com 5131722Svbart@nginx.com<change type="feature"> 5141722Svbart@nginx.com<para> 5151722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header 5161722Svbart@nginx.comfields with irregular (but still valid) characters in the field name. 5171722Svbart@nginx.com</para> 5181722Svbart@nginx.com</change> 5191722Svbart@nginx.com 5201722Svbart@nginx.com<change type="feature"> 5211722Svbart@nginx.com<para> 5221722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic 5231722Svbart@nginx.commounting of eponymous filesystems. 5241722Svbart@nginx.com</para> 5251722Svbart@nginx.com</change> 5261722Svbart@nginx.com 5271722Svbart@nginx.com<change type="bugfix"> 5281722Svbart@nginx.com<para> 5291722Svbart@nginx.comthe router process could crash when running Go applications under high load; 5301722Svbart@nginx.comthe bug had appeared in 1.19.0. 5311722Svbart@nginx.com</para> 5321722Svbart@nginx.com</change> 5331722Svbart@nginx.com 5341722Svbart@nginx.com<change type="bugfix"> 5351722Svbart@nginx.com<para> 5361722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation. 5371722Svbart@nginx.com</para> 5381722Svbart@nginx.com</change> 5391722Svbart@nginx.com 5401722Svbart@nginx.com<change type="bugfix"> 5411722Svbart@nginx.com<para> 5421722Svbart@nginx.comvarious compatibility issues in Java applications. 5431722Svbart@nginx.com</para> 5441722Svbart@nginx.com</change> 5451722Svbart@nginx.com 5461722Svbart@nginx.com<change type="bugfix"> 5471722Svbart@nginx.com<para> 5481722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that 5491722Svbart@nginx.comuse "rootfs" isolation. 5501722Svbart@nginx.com</para> 5511722Svbart@nginx.com</change> 5521722Svbart@nginx.com 5531722Svbart@nginx.com</changes> 5541722Svbart@nginx.com 5551722Svbart@nginx.com 5561330Svbart@nginx.com<changes apply="unit-php 5571330Svbart@nginx.com unit-python unit-python2.7 5581330Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 5591330Svbart@nginx.com unit-python3.8 5601330Svbart@nginx.com unit-go 5611330Svbart@nginx.com unit-perl 5621330Svbart@nginx.com unit-ruby 5631330Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 5641640Svbart@nginx.com ver="1.20.0" rev="1" 5651640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 5661640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5671640Svbart@nginx.com 5681640Svbart@nginx.com<change> 5691640Svbart@nginx.com<para> 5701640Svbart@nginx.comNGINX Unit updated to 1.20.0. 5711640Svbart@nginx.com</para> 5721640Svbart@nginx.com</change> 5731640Svbart@nginx.com 5741640Svbart@nginx.com</changes> 5751640Svbart@nginx.com 5761640Svbart@nginx.com 5771640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1" 5781640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 5791640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5801640Svbart@nginx.com 5811640Svbart@nginx.com<change type="change"> 5821640Svbart@nginx.com<para> 5831640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all 5841640Svbart@nginx.comextensions from the host system. 5851640Svbart@nginx.com</para> 5861640Svbart@nginx.com</change> 5871640Svbart@nginx.com 5881640Svbart@nginx.com<change type="change"> 5891640Svbart@nginx.com<para> 5901640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list. 5911640Svbart@nginx.com</para> 5921640Svbart@nginx.com</change> 5931640Svbart@nginx.com 5941643Svbart@nginx.com<change type="change"> 5951643Svbart@nginx.com<para> 5961643Svbart@nginx.comfunctional tests migrated to the pytest framework. 5971643Svbart@nginx.com</para> 5981643Svbart@nginx.com</change> 5991643Svbart@nginx.com 6001640Svbart@nginx.com<change type="feature"> 6011640Svbart@nginx.com<para> 6021640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server 6031640Svbart@nginx.cominterface. 6041640Svbart@nginx.com</para> 6051640Svbart@nginx.com</change> 6061640Svbart@nginx.com 6071640Svbart@nginx.com<change type="feature"> 6081640Svbart@nginx.com<para> 6091640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for 6101640Svbart@nginx.comapplications, compatible with the HTTP & WebSocket ASGI Message Format 2.1 6111640Svbart@nginx.comspecification. 6121640Svbart@nginx.com</para> 6131640Svbart@nginx.com</change> 6141640Svbart@nginx.com 6151640Svbart@nginx.com<change type="feature"> 6161640Svbart@nginx.com<para> 6171640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application 6181640Svbart@nginx.comenvironments. 6191640Svbart@nginx.com</para> 6201640Svbart@nginx.com</change> 6211640Svbart@nginx.com 6221640Svbart@nginx.com<change type="feature"> 6231640Svbart@nginx.com<para> 6241640Svbart@nginx.comthe $host variable contains a normalized "Host" request value. 6251640Svbart@nginx.com</para> 6261640Svbart@nginx.com</change> 6271640Svbart@nginx.com 6281640Svbart@nginx.com<change type="feature"> 6291640Svbart@nginx.com<para> 6301640Svbart@nginx.comthe "callable" option sets Python application callable names. 6311640Svbart@nginx.com</para> 6321640Svbart@nginx.com</change> 6331640Svbart@nginx.com 6341640Svbart@nginx.com<change type="feature"> 6351640Svbart@nginx.com<para> 6361640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet. 6371640Svbart@nginx.com</para> 6381640Svbart@nginx.com</change> 6391640Svbart@nginx.com 6401640Svbart@nginx.com<change type="feature"> 6411640Svbart@nginx.com<para> 6421640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the 6431640Svbart@nginx.comautomatic mounting of language module dependencies. 6441640Svbart@nginx.com</para> 6451640Svbart@nginx.com</change> 6461640Svbart@nginx.com 6471640Svbart@nginx.com<change type="bugfix"> 6481640Svbart@nginx.com<para> 6491640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared 6501640Svbart@nginx.comin 1.19.0. Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it. 6511640Svbart@nginx.com</para> 6521640Svbart@nginx.com</change> 6531640Svbart@nginx.com 6541640Svbart@nginx.com<change type="bugfix"> 6551640Svbart@nginx.com<para> 6561640Svbart@nginx.comthe router process could crash during reconfiguration. 6571640Svbart@nginx.com</para> 6581640Svbart@nginx.com</change> 6591640Svbart@nginx.com 6601640Svbart@nginx.com<change type="bugfix"> 6611640Svbart@nginx.com<para> 6621640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0. 6631640Svbart@nginx.com</para> 6641640Svbart@nginx.com</change> 6651640Svbart@nginx.com 6661640Svbart@nginx.com<change type="bugfix"> 6671640Svbart@nginx.com<para> 6681640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly; 6691640Svbart@nginx.comthe bug had appeared in 1.19.0. 6701640Svbart@nginx.com</para> 6711640Svbart@nginx.com</change> 6721640Svbart@nginx.com 6731640Svbart@nginx.com<change type="bugfix"> 6741640Svbart@nginx.com<para> 6751640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD; 6761640Svbart@nginx.comthe bug had appeared in 1.16.0. 6771640Svbart@nginx.com</para> 6781640Svbart@nginx.com</change> 6791640Svbart@nginx.com 6801640Svbart@nginx.com</changes> 6811640Svbart@nginx.com 6821640Svbart@nginx.com 6831640Svbart@nginx.com<changes apply="unit-php 6841640Svbart@nginx.com unit-python unit-python2.7 6851640Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 6861640Svbart@nginx.com unit-python3.8 6871640Svbart@nginx.com unit-go 6881640Svbart@nginx.com unit-perl 6891640Svbart@nginx.com unit-ruby 6901640Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 6911570Svbart@nginx.com ver="1.19.0" rev="1" 6921570Svbart@nginx.com date="2020-08-13" time="18:00:00 +0300" 6931570Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6941570Svbart@nginx.com 6951570Svbart@nginx.com<change> 6961570Svbart@nginx.com<para> 6971570Svbart@nginx.comNGINX Unit updated to 1.19.0. 6981570Svbart@nginx.com</para> 6991570Svbart@nginx.com</change> 7001570Svbart@nginx.com 7011570Svbart@nginx.com</changes> 7021570Svbart@nginx.com 7031570Svbart@nginx.com 7041570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1" 7051570Svbart@nginx.com date="2020-08-13" time="18:00:00 +0300" 7061570Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7071570Svbart@nginx.com 7081570Svbart@nginx.com<change type="feature"> 7091570Svbart@nginx.com<para> 7101570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies, 7111570Svbart@nginx.comincrease performance, and improve scalability. 7121570Svbart@nginx.com</para> 7131570Svbart@nginx.com</change> 7141570Svbart@nginx.com 7151570Svbart@nginx.com<change type="feature"> 7161570Svbart@nginx.com<para> 7171570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns. 7181570Svbart@nginx.com</para> 7191570Svbart@nginx.com</change> 7201570Svbart@nginx.com 7211570Svbart@nginx.com<change type="feature"> 7221570Svbart@nginx.com<para> 7231570Svbart@nginx.comchunked transfer encoding in proxy responses. 7241570Svbart@nginx.com</para> 7251570Svbart@nginx.com</change> 7261570Svbart@nginx.com 7271570Svbart@nginx.com<change type="feature"> 7281570Svbart@nginx.com<para> 7291570Svbart@nginx.combasic variables support in the "pass" option. 7301570Svbart@nginx.com</para> 7311570Svbart@nginx.com</change> 7321570Svbart@nginx.com 7331570Svbart@nginx.com<change type="feature"> 7341570Svbart@nginx.com<para> 7351570Svbart@nginx.comcompatibility with PHP 8 Beta 1. 7361570Svbart@nginx.comThanks to Remi Collet. 7371570Svbart@nginx.com</para> 7381570Svbart@nginx.com</change> 7391570Svbart@nginx.com 7401570Svbart@nginx.com<change type="bugfix"> 7411570Svbart@nginx.com<para> 7421570Svbart@nginx.comthe router process could crash while passing requests to an application under 7431570Svbart@nginx.comhigh load. 7441570Svbart@nginx.com</para> 7451570Svbart@nginx.com</change> 7461570Svbart@nginx.com 7471570Svbart@nginx.com<change type="bugfix"> 7481570Svbart@nginx.com<para> 7491570Svbart@nginx.coma number of language modules failed to build on some systems; 7501570Svbart@nginx.comthe bug had appeared in 1.18.0. 7511570Svbart@nginx.com</para> 7521570Svbart@nginx.com</change> 7531570Svbart@nginx.com 7541570Svbart@nginx.com<change type="bugfix"> 7551570Svbart@nginx.com<para> 7561570Svbart@nginx.comtime in error log messages from PHP applications could lag. 7571570Svbart@nginx.com</para> 7581570Svbart@nginx.com</change> 7591570Svbart@nginx.com 7601570Svbart@nginx.com<change type="bugfix"> 7611570Svbart@nginx.com<para> 7621570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start; 7631570Svbart@nginx.comthe bug had appeared in 1.18.0. 7641570Svbart@nginx.com</para> 7651570Svbart@nginx.com</change> 7661570Svbart@nginx.com 7671570Svbart@nginx.com<change type="bugfix"> 7681570Svbart@nginx.com<para> 7691570Svbart@nginx.commemory leak during reconfiguration. 7701570Svbart@nginx.com</para> 7711570Svbart@nginx.com</change> 7721570Svbart@nginx.com 7731570Svbart@nginx.com<change type="bugfix"> 7741570Svbart@nginx.com<para> 7751570Svbart@nginx.comthe daemon didn't start without language modules; 7761570Svbart@nginx.comthe bug had appeared in 1.18.0. 7771570Svbart@nginx.com</para> 7781570Svbart@nginx.com</change> 7791570Svbart@nginx.com 7801570Svbart@nginx.com<change type="bugfix"> 7811570Svbart@nginx.com<para> 7821570Svbart@nginx.comthe router process could crash at exit. 7831570Svbart@nginx.com</para> 7841570Svbart@nginx.com</change> 7851570Svbart@nginx.com 7861570Svbart@nginx.com<change type="bugfix"> 7871570Svbart@nginx.com<para> 7881570Svbart@nginx.comNode.js applications could crash at exit. 7891570Svbart@nginx.com</para> 7901570Svbart@nginx.com</change> 7911570Svbart@nginx.com 7921570Svbart@nginx.com<change type="bugfix"> 7931570Svbart@nginx.com<para> 7941570Svbart@nginx.comthe Ruby module could be linked against a wrong library version. 7951570Svbart@nginx.com</para> 7961570Svbart@nginx.com</change> 7971570Svbart@nginx.com 7981570Svbart@nginx.com</changes> 7991570Svbart@nginx.com 8001570Svbart@nginx.com 8011570Svbart@nginx.com<changes apply="unit-php 8021570Svbart@nginx.com unit-python unit-python2.7 8031570Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 8041570Svbart@nginx.com unit-python3.8 8051570Svbart@nginx.com unit-go 8061570Svbart@nginx.com unit-perl 8071570Svbart@nginx.com unit-ruby 8081570Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 8091491Svbart@nginx.com ver="1.18.0" rev="1" 8101491Svbart@nginx.com date="2020-05-28" time="18:00:00 +0300" 8111491Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8121491Svbart@nginx.com 8131491Svbart@nginx.com<change> 8141491Svbart@nginx.com<para> 8151491Svbart@nginx.comNGINX Unit updated to 1.18.0. 8161491Svbart@nginx.com</para> 8171491Svbart@nginx.com</change> 8181491Svbart@nginx.com 8191491Svbart@nginx.com</changes> 8201491Svbart@nginx.com 8211491Svbart@nginx.com 8221491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1" 8231491Svbart@nginx.com date="2020-05-28" time="18:00:00 +0300" 8241491Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8251491Svbart@nginx.com 8261491Svbart@nginx.com<change type="feature"> 8271491Svbart@nginx.com<para> 8281491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application. 8291491Svbart@nginx.com</para> 8301491Svbart@nginx.com</change> 8311491Svbart@nginx.com 8321491Svbart@nginx.com<change type="feature"> 8331491Svbart@nginx.com<para> 8341491Svbart@nginx.commultiple "targets" in PHP applications. 8351491Svbart@nginx.com</para> 8361491Svbart@nginx.com</change> 8371491Svbart@nginx.com 8381491Svbart@nginx.com<change type="feature"> 8391491Svbart@nginx.com<para> 8401491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options 8411491Svbart@nginx.comand in the "pass" option. 8421491Svbart@nginx.com</para> 8431491Svbart@nginx.com</change> 8441491Svbart@nginx.com 8451491Svbart@nginx.com</changes> 8461491Svbart@nginx.com 8471491Svbart@nginx.com 8481491Svbart@nginx.com<changes apply="unit-php 8491491Svbart@nginx.com unit-python unit-python2.7 8501491Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 8511491Svbart@nginx.com unit-python3.8 8521491Svbart@nginx.com unit-go 8531491Svbart@nginx.com unit-perl 8541491Svbart@nginx.com unit-ruby 8551491Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 8561460Svbart@nginx.com ver="1.17.0" rev="1" 8571460Svbart@nginx.com date="2020-04-16" time="18:00:00 +0300" 8581460Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8591460Svbart@nginx.com 8601460Svbart@nginx.com<change> 8611460Svbart@nginx.com<para> 8621460Svbart@nginx.comNGINX Unit updated to 1.17.0. 8631460Svbart@nginx.com</para> 8641460Svbart@nginx.com</change> 8651460Svbart@nginx.com 8661460Svbart@nginx.com</changes> 8671460Svbart@nginx.com 8681460Svbart@nginx.com 8691460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1" 8701460Svbart@nginx.com date="2020-04-16" time="18:00:00 +0300" 8711460Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8721460Svbart@nginx.com 8731460Svbart@nginx.com<change type="feature"> 8741460Svbart@nginx.com<para> 8751460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external 8761460Svbart@nginx.comredirection. 8771460Svbart@nginx.com</para> 8781460Svbart@nginx.com</change> 8791460Svbart@nginx.com 8801460Svbart@nginx.com<change type="feature"> 8811460Svbart@nginx.com<para> 8821460Svbart@nginx.comfractional weights support for upstream servers. 8831460Svbart@nginx.com</para> 8841460Svbart@nginx.com</change> 8851460Svbart@nginx.com 8861460Svbart@nginx.com<change type="bugfix"> 8871460Svbart@nginx.com<para> 8881460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under 8891460Svbart@nginx.comhigh load. 8901460Svbart@nginx.com</para> 8911460Svbart@nginx.com</change> 8921460Svbart@nginx.com 8931460Svbart@nginx.com<change type="bugfix"> 8941460Svbart@nginx.com<para> 8951460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0. 8961460Svbart@nginx.com</para> 8971460Svbart@nginx.com</change> 8981460Svbart@nginx.com 8991460Svbart@nginx.com<change type="bugfix"> 9001460Svbart@nginx.com<para> 9011460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching 9021460Svbart@nginx.comopen connections limit. 9031460Svbart@nginx.com</para> 9041460Svbart@nginx.com</change> 9051460Svbart@nginx.com 9061460Svbart@nginx.com<change type="bugfix"> 9071460Svbart@nginx.com<para> 9081460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log 9091460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0. 9101460Svbart@nginx.com</para> 9111460Svbart@nginx.com</change> 9121460Svbart@nginx.com 9131460Svbart@nginx.com<change type="bugfix"> 9141460Svbart@nginx.com<para> 9151460Svbart@nginx.comexisting application processes didn't reopen the log file. 9161460Svbart@nginx.com</para> 9171460Svbart@nginx.com</change> 9181460Svbart@nginx.com 9191460Svbart@nginx.com<change type="bugfix"> 9201460Svbart@nginx.com<para> 9211460Svbart@nginx.comincompatibility with some Node.js applications. 9221460Svbart@nginx.com</para> 9231460Svbart@nginx.com</change> 9241460Svbart@nginx.com 9251460Svbart@nginx.com<change type="bugfix"> 9261460Svbart@nginx.com<para> 9271460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0. 9281460Svbart@nginx.com</para> 9291460Svbart@nginx.com</change> 9301460Svbart@nginx.com 9311460Svbart@nginx.com</changes> 9321460Svbart@nginx.com 9331460Svbart@nginx.com 9341460Svbart@nginx.com<changes apply="unit-php 9351460Svbart@nginx.com unit-python unit-python2.7 9361460Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 9371460Svbart@nginx.com unit-python3.8 9381460Svbart@nginx.com unit-go 9391460Svbart@nginx.com unit-perl 9401460Svbart@nginx.com unit-ruby 9411460Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 9421404Svbart@nginx.com ver="1.16.0" rev="1" 9431404Svbart@nginx.com date="2020-03-12" time="18:00:00 +0300" 9441404Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9451404Svbart@nginx.com 9461404Svbart@nginx.com<change> 9471404Svbart@nginx.com<para> 9481404Svbart@nginx.comNGINX Unit updated to 1.16.0. 9491404Svbart@nginx.com</para> 9501404Svbart@nginx.com</change> 9511404Svbart@nginx.com 9521404Svbart@nginx.com</changes> 9531404Svbart@nginx.com 9541404Svbart@nginx.com 9551404Svbart@nginx.com<changes apply="unit" ver="1.16.0" rev="1" 9561404Svbart@nginx.com date="2020-03-12" time="18:00:00 +0300" 9571404Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9581404Svbart@nginx.com 9591404Svbart@nginx.com<change type="feature"> 9601404Svbart@nginx.com<para> 9611404Svbart@nginx.combasic load-balancing support with round-robin. 9621404Svbart@nginx.com</para> 9631404Svbart@nginx.com</change> 9641404Svbart@nginx.com 9651404Svbart@nginx.com<change type="feature"> 9661404Svbart@nginx.com<para> 9671404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be 9681404Svbart@nginx.comserved from the "share" directory. 9691404Svbart@nginx.com</para> 9701404Svbart@nginx.com</change> 9711404Svbart@nginx.com 9721404Svbart@nginx.com<change type="feature"> 9731404Svbart@nginx.com<para> 9741404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk. 9751404Svbart@nginx.com</para> 9761404Svbart@nginx.com</change> 9771404Svbart@nginx.com 9781404Svbart@nginx.com<change type="feature"> 9791404Svbart@nginx.com<para> 9801404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON. 9811404Svbart@nginx.com</para> 9821404Svbart@nginx.com</change> 9831404Svbart@nginx.com 9841404Svbart@nginx.com<change type="bugfix"> 9851404Svbart@nginx.com<para> 9861404Svbart@nginx.comnegative address matching in router might work improperly in combination with 9871404Svbart@nginx.comnon-negative patterns. 9881404Svbart@nginx.com</para> 9891404Svbart@nginx.com</change> 9901404Svbart@nginx.com 9911404Svbart@nginx.com<change type="bugfix"> 9921404Svbart@nginx.com<para> 9931404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0. 9941404Svbart@nginx.com</para> 9951404Svbart@nginx.com</change> 9961404Svbart@nginx.com 9971404Svbart@nginx.com<change type="bugfix"> 9981404Svbart@nginx.com<para> 9991404Svbart@nginx.comPHP 7.4 was broken if it was built with thread safety enabled. 10001404Svbart@nginx.com</para> 10011404Svbart@nginx.com</change> 10021404Svbart@nginx.com 10031404Svbart@nginx.com<change type="bugfix"> 10041404Svbart@nginx.com<para> 10051404Svbart@nginx.comcompatibility issues with some Python applications. 10061404Svbart@nginx.com</para> 10071404Svbart@nginx.com</change> 10081404Svbart@nginx.com 10091404Svbart@nginx.com</changes> 10101404Svbart@nginx.com 10111404Svbart@nginx.com 10121404Svbart@nginx.com<changes apply="unit-php 10131404Svbart@nginx.com unit-python unit-python2.7 10141404Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 10151404Svbart@nginx.com unit-python3.8 10161404Svbart@nginx.com unit-go 10171404Svbart@nginx.com unit-perl 10181404Svbart@nginx.com unit-ruby 10191404Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 10201357Svbart@nginx.com ver="1.15.0" rev="1" 10211357Svbart@nginx.com date="2020-02-06" time="18:00:00 +0300" 10221357Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10231357Svbart@nginx.com 10241357Svbart@nginx.com<change> 10251357Svbart@nginx.com<para> 10261357Svbart@nginx.comNGINX Unit updated to 1.15.0. 10271357Svbart@nginx.com</para> 10281357Svbart@nginx.com</change> 10291357Svbart@nginx.com 10301357Svbart@nginx.com</changes> 10311357Svbart@nginx.com 10321357Svbart@nginx.com 10331357Svbart@nginx.com<changes apply="unit" ver="1.15.0" rev="1" 10341357Svbart@nginx.com date="2020-02-06" time="18:00:00 +0300" 10351357Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10361357Svbart@nginx.com 10371357Svbart@nginx.com<change type="change"> 10381357Svbart@nginx.com<para> 10391357Svbart@nginx.comextensions of dynamically requested PHP scripts were restricted to ".php". 10401357Svbart@nginx.com</para> 10411357Svbart@nginx.com</change> 10421357Svbart@nginx.com 10431357Svbart@nginx.com<change type="feature"> 10441357Svbart@nginx.com<para> 10451357Svbart@nginx.comcompatibility with Ruby 2.7. 10461357Svbart@nginx.com</para> 10471357Svbart@nginx.com</change> 10481357Svbart@nginx.com 10491357Svbart@nginx.com<change type="bugfix"> 10501357Svbart@nginx.com<para> 10511357Svbart@nginx.comsegmentation fault might have occurred in the router process with multiple 10521357Svbart@nginx.comapplication processes under load; the bug had appeared in 1.14.0. 10531357Svbart@nginx.com</para> 10541357Svbart@nginx.com</change> 10551357Svbart@nginx.com 10561357Svbart@nginx.com<change type="bugfix"> 10571357Svbart@nginx.com<para> 10581357Svbart@nginx.comreceiving request body over TLS connection might have stalled. 10591357Svbart@nginx.com</para> 10601357Svbart@nginx.com</change> 10611357Svbart@nginx.com 10621357Svbart@nginx.com</changes> 10631357Svbart@nginx.com 10641357Svbart@nginx.com 10651357Svbart@nginx.com<changes apply="unit-php 10661357Svbart@nginx.com unit-python unit-python2.7 10671357Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 10681357Svbart@nginx.com unit-python3.8 10691357Svbart@nginx.com unit-go 10701357Svbart@nginx.com unit-perl 10711357Svbart@nginx.com unit-ruby 10721357Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 10731330Svbart@nginx.com ver="1.14.0" rev="1" 10741330Svbart@nginx.com date="2019-12-26" time="18:00:00 +0300" 10751330Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10761330Svbart@nginx.com 10771330Svbart@nginx.com<change> 10781330Svbart@nginx.com<para> 10791330Svbart@nginx.comNGINX Unit updated to 1.14.0. 10801330Svbart@nginx.com</para> 10811330Svbart@nginx.com</change> 10821330Svbart@nginx.com 10831330Svbart@nginx.com</changes> 10841330Svbart@nginx.com 10851330Svbart@nginx.com 10861330Svbart@nginx.com<changes apply="unit" ver="1.14.0" rev="1" 10871330Svbart@nginx.com date="2019-12-26" time="18:00:00 +0300" 10881330Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10891330Svbart@nginx.com 10901330Svbart@nginx.com<change type="change"> 10911330Svbart@nginx.com<para> 10921330Svbart@nginx.comthe Go package import name changed to "unit.nginx.org/go". 10931330Svbart@nginx.com</para> 10941330Svbart@nginx.com</change> 10951330Svbart@nginx.com 10961330Svbart@nginx.com<change type="change"> 10971330Svbart@nginx.com<para> 10981330Svbart@nginx.comGo package now links to libunit instead of including library sources. 10991330Svbart@nginx.com</para> 11001330Svbart@nginx.com</change> 11011330Svbart@nginx.com 11021330Svbart@nginx.com<change type="feature"> 11031330Svbart@nginx.com<para> 11041330Svbart@nginx.comability to change user and group for isolated applications when Unit daemon 11051330Svbart@nginx.comruns as an unprivileged user. 11061330Svbart@nginx.com</para> 11071330Svbart@nginx.com</change> 11081330Svbart@nginx.com 11091330Svbart@nginx.com<change type="feature"> 11101330Svbart@nginx.com<para> 11111330Svbart@nginx.comrequest routing by source and destination addresses and ports. 11121330Svbart@nginx.com</para> 11131330Svbart@nginx.com</change> 11141330Svbart@nginx.com 11151330Svbart@nginx.com<change type="bugfix"> 11161330Svbart@nginx.com<para> 11171330Svbart@nginx.commemory bloat on large responses. 11181330Svbart@nginx.com</para> 11191330Svbart@nginx.com</change> 11201330Svbart@nginx.com 11211330Svbart@nginx.com</changes> 11221330Svbart@nginx.com 11231330Svbart@nginx.com 11241290Sdefan@nginx.com<changes apply="unit-go1.13" ver="1.13.0" rev="1" 11251290Sdefan@nginx.com date="2019-11-20" time="09:00:00 +0300" 11261290Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11271290Sdefan@nginx.com 11281290Sdefan@nginx.com<change> 11291290Sdefan@nginx.com<para> 11301290Sdefan@nginx.comInitial release of Go 1.13 module for NGINX Unit. 11311290Sdefan@nginx.com</para> 11321290Sdefan@nginx.com</change> 11331290Sdefan@nginx.com 11341290Sdefan@nginx.com</changes> 11351290Sdefan@nginx.com 11361290Sdefan@nginx.com 11371290Sdefan@nginx.com<changes apply="unit-go1.12" ver="1.13.0" rev="1" 11381290Sdefan@nginx.com date="2019-11-20" time="09:00:00 +0300" 11391290Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11401290Sdefan@nginx.com 11411290Sdefan@nginx.com<change> 11421290Sdefan@nginx.com<para> 11431290Sdefan@nginx.comInitial release of Go 1.12 module for NGINX Unit. 11441290Sdefan@nginx.com</para> 11451290Sdefan@nginx.com</change> 11461290Sdefan@nginx.com 11471290Sdefan@nginx.com</changes> 11481290Sdefan@nginx.com 11491290Sdefan@nginx.com 11501289Sdefan@nginx.com<changes apply="unit-python3.8" ver="1.13.0" rev="1" 11511289Sdefan@nginx.com date="2019-11-18" time="14:20:00 +0300" 11521289Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11531289Sdefan@nginx.com 11541289Sdefan@nginx.com<change> 11551289Sdefan@nginx.com<para> 11561289Sdefan@nginx.comInitial release of Python 3.8 module for NGINX Unit. 11571289Sdefan@nginx.com</para> 11581289Sdefan@nginx.com</change> 11591289Sdefan@nginx.com 11601289Sdefan@nginx.com</changes> 11611289Sdefan@nginx.com 11621289Sdefan@nginx.com 11631185Svbart@nginx.com<changes apply="unit-php 11641185Svbart@nginx.com unit-python unit-python2.7 11651185Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 11661185Svbart@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 11671185Svbart@nginx.com unit-perl 11681185Svbart@nginx.com unit-ruby 11691185Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 11701284Svbart@nginx.com ver="1.13.0" rev="1" 11711284Svbart@nginx.com date="2019-11-14" time="18:00:00 +0300" 11721284Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11731284Svbart@nginx.com 11741284Svbart@nginx.com<change> 11751284Svbart@nginx.com<para> 11761284Svbart@nginx.comNGINX Unit updated to 1.13.0. 11771284Svbart@nginx.com</para> 11781284Svbart@nginx.com</change> 11791284Svbart@nginx.com 11801284Svbart@nginx.com</changes> 11811284Svbart@nginx.com 11821284Svbart@nginx.com 11831284Svbart@nginx.com<changes apply="unit" ver="1.13.0" rev="1" 11841284Svbart@nginx.com date="2019-11-14" time="18:00:00 +0300" 11851284Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11861284Svbart@nginx.com 11871284Svbart@nginx.com<change type="feature"> 11881284Svbart@nginx.com<para> 11891284Svbart@nginx.combasic support for HTTP reverse proxying. 11901284Svbart@nginx.com</para> 11911284Svbart@nginx.com</change> 11921284Svbart@nginx.com 11931284Svbart@nginx.com<change type="feature"> 11941284Svbart@nginx.com<para> 11951284Svbart@nginx.comcompatibility with Python 3.8. 11961284Svbart@nginx.com</para> 11971284Svbart@nginx.com</change> 11981284Svbart@nginx.com 11991284Svbart@nginx.com<change type="bugfix"> 12001284Svbart@nginx.com<para> 12011284Svbart@nginx.commemory leak in Python application processes when the close handler was used. 12021284Svbart@nginx.com</para> 12031284Svbart@nginx.com</change> 12041284Svbart@nginx.com 12051284Svbart@nginx.com<change type="bugfix"> 12061284Svbart@nginx.com<para> 12071284Svbart@nginx.comthreads in Python applications might not work correctly. 12081284Svbart@nginx.com</para> 12091284Svbart@nginx.com</change> 12101284Svbart@nginx.com 12111284Svbart@nginx.com<change type="bugfix"> 12121284Svbart@nginx.com<para> 12131284Svbart@nginx.comRuby on Rails applications might not work on Ruby 2.6. 12141284Svbart@nginx.com</para> 12151284Svbart@nginx.com</change> 12161284Svbart@nginx.com 12171284Svbart@nginx.com<change type="bugfix"> 12181284Svbart@nginx.com<para> 12191284Svbart@nginx.combacktraces for uncaught exceptions in Python 3 might be logged with significant 12201284Svbart@nginx.comdelays. 12211284Svbart@nginx.com</para> 12221284Svbart@nginx.com</change> 12231284Svbart@nginx.com 12241284Svbart@nginx.com<change type="bugfix"> 12251284Svbart@nginx.com<para> 12261284Svbart@nginx.comexplicit setting a namespaces isolation option to false might have enabled it. 12271284Svbart@nginx.com</para> 12281284Svbart@nginx.com</change> 12291284Svbart@nginx.com 12301284Svbart@nginx.com</changes> 12311284Svbart@nginx.com 12321284Svbart@nginx.com 12331284Svbart@nginx.com<changes apply="unit-php 12341284Svbart@nginx.com unit-python unit-python2.7 12351284Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 12361284Svbart@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 12371284Svbart@nginx.com unit-perl 12381284Svbart@nginx.com unit-ruby 12391284Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 12401222Svbart@nginx.com ver="1.12.0" rev="1" 12411222Svbart@nginx.com date="2019-10-03" time="18:00:00 +0300" 12421222Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 12431222Svbart@nginx.com 12441222Svbart@nginx.com<change> 12451222Svbart@nginx.com<para> 12461222Svbart@nginx.comNGINX Unit updated to 1.12.0. 12471222Svbart@nginx.com</para> 12481222Svbart@nginx.com</change> 12491222Svbart@nginx.com 12501222Svbart@nginx.com</changes> 12511222Svbart@nginx.com 12521222Svbart@nginx.com 12531222Svbart@nginx.com<changes apply="unit" ver="1.12.0" rev="1" 12541222Svbart@nginx.com date="2019-10-03" time="18:00:00 +0300" 12551222Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 12561222Svbart@nginx.com 12571222Svbart@nginx.com<change type="feature"> 12581222Svbart@nginx.com<para> 12591222Svbart@nginx.comcompatibility with PHP 7.4. 12601222Svbart@nginx.com</para> 12611222Svbart@nginx.com</change> 12621222Svbart@nginx.com 12631222Svbart@nginx.com<change type="bugfix"> 12641222Svbart@nginx.com<para> 12651222Svbart@nginx.comdescriptors leak on process creation; the bug had appeared in 1.11.0. 12661222Svbart@nginx.com</para> 12671222Svbart@nginx.com</change> 12681222Svbart@nginx.com 12691222Svbart@nginx.com<change type="bugfix"> 12701222Svbart@nginx.com<para> 12711222Svbart@nginx.comTLS connection might be closed prematurely while sending response. 12721222Svbart@nginx.com</para> 12731222Svbart@nginx.com</change> 12741222Svbart@nginx.com 12751222Svbart@nginx.com<change type="bugfix"> 12761222Svbart@nginx.com<para> 12771222Svbart@nginx.comsegmentation fault might have occurred if an irregular file was requested. 12781222Svbart@nginx.com</para> 12791222Svbart@nginx.com</change> 12801222Svbart@nginx.com 12811222Svbart@nginx.com</changes> 12821222Svbart@nginx.com 12831222Svbart@nginx.com 12841222Svbart@nginx.com 12851222Svbart@nginx.com<changes apply="unit-php 12861222Svbart@nginx.com unit-python unit-python2.7 12871222Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 12881222Svbart@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 12891222Svbart@nginx.com unit-perl 12901222Svbart@nginx.com unit-ruby 12911222Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 12921185Svbart@nginx.com ver="1.11.0" rev="1" 12931185Svbart@nginx.com date="2019-09-19" time="18:00:00 +0300" 12941185Svbart@nginx.com packager="Konstantin Pavlov <thresh@nginx.com>"> 12951185Svbart@nginx.com 12961185Svbart@nginx.com<change> 12971185Svbart@nginx.com<para> 12981185Svbart@nginx.comNGINX Unit updated to 1.11.0. 12991185Svbart@nginx.com</para> 1300<