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" 171951Svbart@nginx.com ver="1.26.0" rev="1" 181951Svbart@nginx.com date="" time="" 191951Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 201951Svbart@nginx.com 211951Svbart@nginx.com<change> 221951Svbart@nginx.com<para> 231951Svbart@nginx.comNGINX Unit updated to 1.26.0. 241951Svbart@nginx.com</para> 251951Svbart@nginx.com</change> 261951Svbart@nginx.com 271951Svbart@nginx.com</changes> 281951Svbart@nginx.com 291951Svbart@nginx.com 301951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1" 311951Svbart@nginx.com date="" time="" 321951Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 331951Svbart@nginx.com 341955Smax.romanov@nginx.com<change type="bugfix"> 351955Smax.romanov@nginx.com<para> 361955Smax.romanov@nginx.comfixed building with glibc 2.34, notably Fedora 35. 371955Smax.romanov@nginx.com</para> 381955Smax.romanov@nginx.com</change> 391955Smax.romanov@nginx.com 40*1956Smax.romanov@nginx.com<change type="bugfix"> 41*1956Smax.romanov@nginx.com<para> 42*1956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client 43*1956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured. 44*1956Smax.romanov@nginx.com</para> 45*1956Smax.romanov@nginx.com</change> 46*1956Smax.romanov@nginx.com 471951Svbart@nginx.com</changes> 481951Svbart@nginx.com 491951Svbart@nginx.com 501951Svbart@nginx.com<changes apply="unit-php 511951Svbart@nginx.com unit-python unit-python2.7 521951Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 531951Svbart@nginx.com unit-python3.8 unit-python3.9 541951Svbart@nginx.com unit-go 551951Svbart@nginx.com unit-perl 561951Svbart@nginx.com unit-ruby 571951Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 581951Svbart@nginx.com unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17" 591896Svbart@nginx.com ver="1.25.0" rev="1" 601945Svbart@nginx.com date="2021-08-19" time="18:00:00 +0300" 611896Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 621896Svbart@nginx.com 631896Svbart@nginx.com<change> 641896Svbart@nginx.com<para> 651896Svbart@nginx.comNGINX Unit updated to 1.25.0. 661896Svbart@nginx.com</para> 671896Svbart@nginx.com</change> 681896Svbart@nginx.com 691896Svbart@nginx.com</changes> 701896Svbart@nginx.com 711896Svbart@nginx.com 721896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1" 731945Svbart@nginx.com date="2021-08-19" time="18:00:00 +0300" 741896Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 751896Svbart@nginx.com 761910So.canty@f5.com<change type="feature"> 771910So.canty@f5.com<para> 781944Svbart@nginx.comclient IP address replacement from a specified HTTP header field. 791942Sa.suvorov@f5.com</para> 801942Sa.suvorov@f5.com</change> 811942Sa.suvorov@f5.com 821942Sa.suvorov@f5.com<change type="feature"> 831942Sa.suvorov@f5.com<para> 841920Sa.suvorov@f5.comTLS sessions cache. 851920Sa.suvorov@f5.com</para> 861920Sa.suvorov@f5.com</change> 871920Sa.suvorov@f5.com 881920Sa.suvorov@f5.com<change type="feature"> 891920Sa.suvorov@f5.com<para> 901944Svbart@nginx.comTLS session tickets. 911910So.canty@f5.com</para> 921910So.canty@f5.com</change> 931910So.canty@f5.com 941926Smax.romanov@nginx.com<change type="feature"> 951926Smax.romanov@nginx.com<para> 961926Smax.romanov@nginx.comapplication restart control. 971926Smax.romanov@nginx.com</para> 981926Smax.romanov@nginx.com</change> 991926Smax.romanov@nginx.com 1001936So.canty@f5.com<change type="feature"> 1011936So.canty@f5.com<para> 1021944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby. 1031936So.canty@f5.com</para> 1041936So.canty@f5.com</change> 1051936So.canty@f5.com 1061907Smax.romanov@nginx.com<change type="bugfix"> 1071907Smax.romanov@nginx.com<para> 1081944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners 1091944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0. 1101921Sa.suvorov@f5.com</para> 1111921Sa.suvorov@f5.com</change> 1121921Sa.suvorov@f5.com 1131921Sa.suvorov@f5.com<change type="bugfix"> 1141921Sa.suvorov@f5.com<para> 1151944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate 1161944Svbart@nginx.combundles in a listener if the client did not use SNI. 1171907Smax.romanov@nginx.com</para> 1181907Smax.romanov@nginx.com</change> 1191907Smax.romanov@nginx.com 1201907Smax.romanov@nginx.com<change type="bugfix"> 1211907Smax.romanov@nginx.com<para> 1221950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application 1231915Smax.romanov@nginx.comreconfiguration. 1241915Smax.romanov@nginx.com</para> 1251915Smax.romanov@nginx.com</change> 1261915Smax.romanov@nginx.com 1271915Smax.romanov@nginx.com<change type="bugfix"> 1281915Smax.romanov@nginx.com<para> 1291944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette 1301944Svbart@nginx.comframework. 1311944Svbart@nginx.com</para> 1321944Svbart@nginx.com</change> 1331944Svbart@nginx.com 1341944Svbart@nginx.com<change type="bugfix"> 1351944Svbart@nginx.com<para> 1361944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process 1371944Svbart@nginx.comstopped or crashed. 1381907Smax.romanov@nginx.com</para> 1391907Smax.romanov@nginx.com</change> 1401907Smax.romanov@nginx.com 1411909So.canty@f5.com<change type="bugfix"> 1421909So.canty@f5.com<para> 1431909So.canty@f5.comthe controller or router process could crash if the configuration contained 1441909So.canty@f5.coma full-form IPv6 in a listener address. 1451909So.canty@f5.com</para> 1461909So.canty@f5.com</change> 1471909So.canty@f5.com 1481916Smax.romanov@nginx.com<change type="bugfix"> 1491916Smax.romanov@nginx.com<para> 1501929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes" 1511929Sz.hong@f5.comor "upstreams" using a variable "pass" option. 1521929Sz.hong@f5.com</para> 1531929Sz.hong@f5.com</change> 1541929Sz.hong@f5.com 1551930So.canty@f5.com<change type="bugfix"> 1561930So.canty@f5.com<para> 1571944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source 1581944Svbart@nginx.comor destination address patterns. 1591930So.canty@f5.com</para> 1601930So.canty@f5.com</change> 1611930So.canty@f5.com 1621896Svbart@nginx.com</changes> 1631896Svbart@nginx.com 1641896Svbart@nginx.com 1651887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1" 1661891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 1671887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1681887Sdefan@nginx.com 1691887Sdefan@nginx.com<change> 1701887Sdefan@nginx.com<para> 1711887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit. 1721887Sdefan@nginx.com</para> 1731887Sdefan@nginx.com</change> 1741887Sdefan@nginx.com 1751887Sdefan@nginx.com</changes> 1761887Sdefan@nginx.com 1771887Sdefan@nginx.com 1781887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1" 1791891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 1801887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1811887Sdefan@nginx.com 1821887Sdefan@nginx.com<change> 1831887Sdefan@nginx.com<para> 1841887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit. 1851887Sdefan@nginx.com</para> 1861887Sdefan@nginx.com</change> 1871887Sdefan@nginx.com 1881887Sdefan@nginx.com</changes> 1891887Sdefan@nginx.com 1901887Sdefan@nginx.com 1911834Svbart@nginx.com<changes apply="unit-php 1921834Svbart@nginx.com unit-python unit-python2.7 1931834Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 1941834Svbart@nginx.com unit-python3.8 unit-python3.9 1951834Svbart@nginx.com unit-go 1961834Svbart@nginx.com unit-perl 1971834Svbart@nginx.com unit-ruby 1981834Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 1991834Svbart@nginx.com unit-jsc14 unit-jsc15" 2001839Svbart@nginx.com ver="1.24.0" rev="1" 2011891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 2021839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2031839Svbart@nginx.com 2041839Svbart@nginx.com<change> 2051839Svbart@nginx.com<para> 2061839Svbart@nginx.comNGINX Unit updated to 1.24.0. 2071839Svbart@nginx.com</para> 2081839Svbart@nginx.com</change> 2091839Svbart@nginx.com 2101839Svbart@nginx.com</changes> 2111839Svbart@nginx.com 2121839Svbart@nginx.com 2131839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1" 2141891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 2151839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2161839Svbart@nginx.com 2171882So.canty@f5.com<change type="change"> 2181882So.canty@f5.com<para> 2191882So.canty@f5.comPHP added to the default MIME type list. 2201882So.canty@f5.com</para> 2211882So.canty@f5.com</change> 2221882So.canty@f5.com 2231855Sz.hong@f5.com<change type="feature"> 2241855Sz.hong@f5.com<para> 2251885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands. 2261885Sa.suvorov@f5.com</para> 2271885Sa.suvorov@f5.com</change> 2281885Sa.suvorov@f5.com 2291885Sa.suvorov@f5.com<change type="feature"> 2301885Sa.suvorov@f5.com<para> 2311890Svbart@nginx.comthe ability to limit static file serving by MIME types. 2321890Svbart@nginx.com</para> 2331890Svbart@nginx.com</change> 2341890Svbart@nginx.com 2351890Svbart@nginx.com<change type="feature"> 2361890Svbart@nginx.com<para> 2371890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount 2381890Svbart@nginx.compoint traversal on a per-request basis when serving static files. 2391872So.canty@f5.com</para> 2401872So.canty@f5.com</change> 2411872So.canty@f5.com 2421872So.canty@f5.com<change type="feature"> 2431872So.canty@f5.com<para> 2441889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in 2451889Sartem.konev@nginx.comNode.js. 2461865So.canty@f5.com</para> 2471865So.canty@f5.com</change> 2481865So.canty@f5.com 2491865So.canty@f5.com<change type="feature"> 2501865So.canty@f5.com<para> 2511890Svbart@nginx.commultiple "targets" in Python applications. 2521855Sz.hong@f5.com</para> 2531855Sz.hong@f5.com</change> 2541855Sz.hong@f5.com 2551870So.canty@f5.com<change type="feature"> 2561870So.canty@f5.com<para> 2571870So.canty@f5.comcompatibility with Ruby 3.0. 2581870So.canty@f5.com</para> 2591870So.canty@f5.com</change> 2601870So.canty@f5.com 2611861Svbart@nginx.com<change type="bugfix"> 2621861Svbart@nginx.com<para> 2631889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection. 2641884Sa.suvorov@f5.com</para> 2651884Sa.suvorov@f5.com</change> 2661884Sa.suvorov@f5.com 2671884Sa.suvorov@f5.com<change type="bugfix"> 2681884Sa.suvorov@f5.com<para> 2691861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if 2701861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled. 2711861Svbart@nginx.com</para> 2721861Svbart@nginx.com</change> 2731861Svbart@nginx.com 2741839Svbart@nginx.com</changes> 2751839Svbart@nginx.com 2761839Svbart@nginx.com 2771839Svbart@nginx.com<changes apply="unit-php 2781839Svbart@nginx.com unit-python unit-python2.7 2791839Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 2801839Svbart@nginx.com unit-python3.8 unit-python3.9 2811839Svbart@nginx.com unit-go 2821839Svbart@nginx.com unit-perl 2831839Svbart@nginx.com unit-ruby 2841839Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 2851839Svbart@nginx.com unit-jsc14 unit-jsc15" 2861834Svbart@nginx.com ver="1.23.0" rev="1" 2871834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 2881834Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2891834Svbart@nginx.com 2901834Svbart@nginx.com<change> 2911834Svbart@nginx.com<para> 2921834Svbart@nginx.comNGINX Unit updated to 1.23.0. 2931834Svbart@nginx.com</para> 2941834Svbart@nginx.com</change> 2951834Svbart@nginx.com 2961834Svbart@nginx.com</changes> 2971834Svbart@nginx.com 2981834Svbart@nginx.com 2991806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1" 3001834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 3011806Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3021806Svbart@nginx.com 3031825Sthresh@nginx.com<change type="feature"> 3041825Sthresh@nginx.com<para> 3051833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name 3061828Sa.suvorov@f5.comIndication (SNI) TLS extension. 3071828Sa.suvorov@f5.com</para> 3081828Sa.suvorov@f5.com</change> 3091828Sa.suvorov@f5.com 3101828Sa.suvorov@f5.com<change type="feature"> 3111828Sa.suvorov@f5.com<para> 3121833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page 3131833Sartem.konev@nginx.cominstallation. 3141825Sthresh@nginx.com</para> 3151825Sthresh@nginx.com</change> 3161825Sthresh@nginx.com 3171811Smax.romanov@nginx.com<change type="bugfix"> 3181811Smax.romanov@nginx.com<para> 3191812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had 3201812Svbart@nginx.comappeared in 1.17.0. 3211812Svbart@nginx.com</para> 3221812Svbart@nginx.com</change> 3231812Svbart@nginx.com 3241812Svbart@nginx.com<change type="bugfix"> 3251812Svbart@nginx.com<para> 3261833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had 3271812Svbart@nginx.comappeared in 1.6. 3281812Svbart@nginx.com</para> 3291812Svbart@nginx.com</change> 3301812Svbart@nginx.com 3311812Svbart@nginx.com<change type="bugfix"> 3321812Svbart@nginx.com<para> 3331833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing 3341832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0. 3351832Smax.romanov@nginx.com</para> 3361832Smax.romanov@nginx.com</change> 3371832Smax.romanov@nginx.com 3381832Smax.romanov@nginx.com<change type="bugfix"> 3391832Smax.romanov@nginx.com<para> 3401833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or 3411811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0. 3421811Smax.romanov@nginx.com</para> 3431811Smax.romanov@nginx.com</change> 3441806Svbart@nginx.com 3451813Svbart@nginx.com<change type="bugfix"> 3461813Svbart@nginx.com<para> 3471813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in 3481813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart. 3491813Svbart@nginx.com</para> 3501813Svbart@nginx.com</change> 3511813Svbart@nginx.com 3521814Svbart@nginx.com<change type="bugfix"> 3531814Svbart@nginx.com<para> 3541820Svbart@nginx.comthe controller process could crash while requesting information about a 3551820Svbart@nginx.comcertificate with a non-DNS SAN entry. 3561820Svbart@nginx.com</para> 3571820Svbart@nginx.com</change> 3581820Svbart@nginx.com 3591820Svbart@nginx.com<change type="bugfix"> 3601820Svbart@nginx.com<para> 3611822Svbart@nginx.comthe controller process could crash on manipulations with a certificate 3621833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer. 3631822Svbart@nginx.com</para> 3641822Svbart@nginx.com</change> 3651822Svbart@nginx.com 3661822Svbart@nginx.com<change type="bugfix"> 3671822Svbart@nginx.com<para> 3681833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding 3691833Sartem.konev@nginx.comclass. 3701814Svbart@nginx.com</para> 3711814Svbart@nginx.com</change> 3721814Svbart@nginx.com 3731815Svbart@nginx.com<change type="bugfix"> 3741815Svbart@nginx.com<para> 3751815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had 3761815Svbart@nginx.comappeared in 1.22.0. 3771815Svbart@nginx.com</para> 3781815Svbart@nginx.com</change> 3791815Svbart@nginx.com 3801806Svbart@nginx.com</changes> 3811806Svbart@nginx.com 3821806Svbart@nginx.com 3831798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1" 3841798Sdefan@nginx.com date="2021-02-04" time="18:00:00 +0300" 3851798Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3861798Sdefan@nginx.com 3871798Sdefan@nginx.com<change> 3881798Sdefan@nginx.com<para> 3891798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit. 3901798Sdefan@nginx.com</para> 3911798Sdefan@nginx.com</change> 3921798Sdefan@nginx.com 3931798Sdefan@nginx.com</changes> 3941798Sdefan@nginx.com 3951798Sdefan@nginx.com 3961763Sdefan@nginx.com<changes apply="unit-php 3971763Sdefan@nginx.com unit-python unit-python2.7 3981763Sdefan@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 3991763Sdefan@nginx.com unit-python3.8 4001763Sdefan@nginx.com unit-go 4011763Sdefan@nginx.com unit-perl 4021763Sdefan@nginx.com unit-ruby 4031763Sdefan@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 4041763Sdefan@nginx.com unit-jsc14 unit-jsc15" 4051763Sdefan@nginx.com ver="1.22.0" rev="1" 4061793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 4071763Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4081763Sdefan@nginx.com 4091763Sdefan@nginx.com<change> 4101763Sdefan@nginx.com<para> 4111763Sdefan@nginx.comNGINX Unit updated to 1.22.0. 4121763Sdefan@nginx.com</para> 4131763Sdefan@nginx.com</change> 4141763Sdefan@nginx.com 4151763Sdefan@nginx.com</changes> 4161763Sdefan@nginx.com 4171763Sdefan@nginx.com 4181727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1" 4191793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 4201727Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4211727Svbart@nginx.com 4221759Svbart@nginx.com<change type="feature"> 4231759Svbart@nginx.com<para> 4241792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now 4251792Svbart@nginx.comcompliant with Stream API. 4261759Svbart@nginx.com</para> 4271759Svbart@nginx.com</change> 4281759Svbart@nginx.com 4291766Smax.romanov@nginx.com<change type="feature"> 4301766Smax.romanov@nginx.com<para> 4311792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python 4321792Svbart@nginx.comapps. 4331732Svbart@nginx.com</para> 4341732Svbart@nginx.com</change> 4351732Svbart@nginx.com 4361733Svbart@nginx.com<change type="bugfix"> 4371733Svbart@nginx.com<para> 4381792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than 4391792Svbart@nginx.com128K; the bug had appeared in 1.13.0. 4401754Smax.romanov@nginx.com</para> 4411754Smax.romanov@nginx.com</change> 4421754Smax.romanov@nginx.com 4431755Smax.romanov@nginx.com<change type="bugfix"> 4441755Smax.romanov@nginx.com<para> 4451790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had 4461755Smax.romanov@nginx.comappeared in 1.19.0. 4471755Smax.romanov@nginx.com</para> 4481755Smax.romanov@nginx.com</change> 4491755Smax.romanov@nginx.com 4501756Smax.romanov@nginx.com<change type="bugfix"> 4511756Smax.romanov@nginx.com<para> 4521790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had 4531790Sartem.konev@nginx.comappeared in 1.19.0. 4541756Smax.romanov@nginx.com</para> 4551756Smax.romanov@nginx.com</change> 4561756Smax.romanov@nginx.com 4571760Smax.romanov@nginx.com<change type="bugfix"> 4581760Smax.romanov@nginx.com<para> 4591792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes. 4601792Svbart@nginx.com</para> 4611792Svbart@nginx.com</change> 4621792Svbart@nginx.com 4631792Svbart@nginx.com<change type="bugfix"> 4641792Svbart@nginx.com<para> 4651792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were 4661792Svbart@nginx.commissing in the PHP module. 4671792Svbart@nginx.com</para> 4681792Svbart@nginx.com</change> 4691792Svbart@nginx.com 4701792Svbart@nginx.com<change type="bugfix"> 4711792Svbart@nginx.com<para> 4721792Svbart@nginx.comthe router process could crash with multithreaded apps under high load. 4731792Svbart@nginx.com</para> 4741792Svbart@nginx.com</change> 4751792Svbart@nginx.com 4761792Svbart@nginx.com<change type="bugfix"> 4771792Svbart@nginx.com<para> 4781792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load. 4791792Svbart@nginx.com</para> 4801792Svbart@nginx.com</change> 4811792Svbart@nginx.com 4821792Svbart@nginx.com<change type="bugfix"> 4831792Svbart@nginx.com<para> 4841792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used; 4851792Svbart@nginx.comthe bug had appeared in 1.21.0. 4861760Smax.romanov@nginx.com</para> 4871760Smax.romanov@nginx.com</change> 4881760Smax.romanov@nginx.com 4891780Smax.romanov@nginx.com<change type="bugfix"> 4901780Smax.romanov@nginx.com<para> 4911790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used 4921790Sartem.konev@nginx.comWebSocket. 4931780Smax.romanov@nginx.com</para> 4941780Smax.romanov@nginx.com</change> 4951780Smax.romanov@nginx.com 4961789Smax.romanov@nginx.com<change type="bugfix"> 4971789Smax.romanov@nginx.com<para> 4981789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring 4991789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0. 5001789Smax.romanov@nginx.com</para> 5011789Smax.romanov@nginx.com</change> 5021789Smax.romanov@nginx.com 5031727Svbart@nginx.com</changes> 5041727Svbart@nginx.com 5051727Svbart@nginx.com 5061722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1" 5071722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 5081722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5091722Svbart@nginx.com 5101722Svbart@nginx.com<change> 5111722Svbart@nginx.com<para> 5121722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit. 5131722Svbart@nginx.com</para> 5141722Svbart@nginx.com</change> 5151722Svbart@nginx.com 5161722Svbart@nginx.com</changes> 5171722Svbart@nginx.com 5181722Svbart@nginx.com 5191722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1" 5201722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 5211722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5221722Svbart@nginx.com 5231722Svbart@nginx.com<change> 5241722Svbart@nginx.com<para> 5251722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit. 5261722Svbart@nginx.com</para> 5271722Svbart@nginx.com</change> 5281722Svbart@nginx.com 5291722Svbart@nginx.com</changes> 5301722Svbart@nginx.com 5311722Svbart@nginx.com 5321722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1" 5331722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 5341722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5351722Svbart@nginx.com 5361722Svbart@nginx.com<change> 5371722Svbart@nginx.com<para> 5381722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit. 5391722Svbart@nginx.com</para> 5401722Svbart@nginx.com</change> 5411722Svbart@nginx.com 5421722Svbart@nginx.com</changes> 5431722Svbart@nginx.com 5441722Svbart@nginx.com 5451722Svbart@nginx.com<changes apply="unit-php 5461722Svbart@nginx.com unit-python unit-python2.7 5471722Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 5481722Svbart@nginx.com unit-python3.8 5491722Svbart@nginx.com unit-go 5501722Svbart@nginx.com unit-perl 5511722Svbart@nginx.com unit-ruby 5521722Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 5531722Svbart@nginx.com ver="1.21.0" rev="1" 5541722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 5551722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5561722Svbart@nginx.com 5571722Svbart@nginx.com<change> 5581722Svbart@nginx.com<para> 5591722Svbart@nginx.comNGINX Unit updated to 1.21.0. 5601722Svbart@nginx.com</para> 5611722Svbart@nginx.com</change> 5621722Svbart@nginx.com 5631722Svbart@nginx.com</changes> 5641722Svbart@nginx.com 5651722Svbart@nginx.com 5661722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1" 5671722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 5681722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5691722Svbart@nginx.com 5701722Svbart@nginx.com<change type="change"> 5711722Svbart@nginx.com<para> 5721722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used. 5731722Svbart@nginx.com</para> 5741722Svbart@nginx.com</change> 5751722Svbart@nginx.com 5761722Svbart@nginx.com<change type="change"> 5771722Svbart@nginx.com<para> 5781722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field 5791722Svbart@nginx.comnames. 5801722Svbart@nginx.com</para> 5811722Svbart@nginx.com</change> 5821722Svbart@nginx.com 5831722Svbart@nginx.com<change type="change"> 5841722Svbart@nginx.com<para> 5851722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by 5861722Svbart@nginx.comdefault. 5871722Svbart@nginx.com</para> 5881722Svbart@nginx.com</change> 5891722Svbart@nginx.com 5901722Svbart@nginx.com<change type="feature"> 5911722Svbart@nginx.com<para> 5921722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps. 5931722Svbart@nginx.com</para> 5941722Svbart@nginx.com</change> 5951722Svbart@nginx.com 5961722Svbart@nginx.com<change type="feature"> 5971722Svbart@nginx.com<para> 5981722Svbart@nginx.comregular expressions in route matching patterns. 5991722Svbart@nginx.com</para> 6001722Svbart@nginx.com</change> 6011722Svbart@nginx.com 6021722Svbart@nginx.com<change type="feature"> 6031722Svbart@nginx.com<para> 6041722Svbart@nginx.comcompatibility with Python 3.9. 6051722Svbart@nginx.com</para> 6061722Svbart@nginx.com</change> 6071722Svbart@nginx.com 6081722Svbart@nginx.com<change type="feature"> 6091722Svbart@nginx.com<para> 6101722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications. 6111722Svbart@nginx.com</para> 6121722Svbart@nginx.com</change> 6131722Svbart@nginx.com 6141722Svbart@nginx.com<change type="feature"> 6151722Svbart@nginx.com<para> 6161722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI. 6171722Svbart@nginx.com</para> 6181722Svbart@nginx.com</change> 6191722Svbart@nginx.com 6201722Svbart@nginx.com<change type="feature"> 6211722Svbart@nginx.com<para> 6221722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and 6231722Svbart@nginx.comcontinues code execution without holding onto the client connection. 6241722Svbart@nginx.com</para> 6251722Svbart@nginx.com</change> 6261722Svbart@nginx.com 6271722Svbart@nginx.com<change type="feature"> 6281722Svbart@nginx.com<para> 6291722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header 6301722Svbart@nginx.comfields with irregular (but still valid) characters in the field name. 6311722Svbart@nginx.com</para> 6321722Svbart@nginx.com</change> 6331722Svbart@nginx.com 6341722Svbart@nginx.com<change type="feature"> 6351722Svbart@nginx.com<para> 6361722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic 6371722Svbart@nginx.commounting of eponymous filesystems. 6381722Svbart@nginx.com</para> 6391722Svbart@nginx.com</change> 6401722Svbart@nginx.com 6411722Svbart@nginx.com<change type="bugfix"> 6421722Svbart@nginx.com<para> 6431722Svbart@nginx.comthe router process could crash when running Go applications under high load; 6441722Svbart@nginx.comthe bug had appeared in 1.19.0. 6451722Svbart@nginx.com</para> 6461722Svbart@nginx.com</change> 6471722Svbart@nginx.com 6481722Svbart@nginx.com<change type="bugfix"> 6491722Svbart@nginx.com<para> 6501722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation. 6511722Svbart@nginx.com</para> 6521722Svbart@nginx.com</change> 6531722Svbart@nginx.com 6541722Svbart@nginx.com<change type="bugfix"> 6551722Svbart@nginx.com<para> 6561722Svbart@nginx.comvarious compatibility issues in Java applications. 6571722Svbart@nginx.com</para> 6581722Svbart@nginx.com</change> 6591722Svbart@nginx.com 6601722Svbart@nginx.com<change type="bugfix"> 6611722Svbart@nginx.com<para> 6621722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that 6631722Svbart@nginx.comuse "rootfs" isolation. 6641722Svbart@nginx.com</para> 6651722Svbart@nginx.com</change> 6661722Svbart@nginx.com 6671722Svbart@nginx.com</changes> 6681722Svbart@nginx.com 6691722Svbart@nginx.com 6701330Svbart@nginx.com<changes apply="unit-php 6711330Svbart@nginx.com unit-python unit-python2.7 6721330Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 6731330Svbart@nginx.com unit-python3.8 6741330Svbart@nginx.com unit-go 6751330Svbart@nginx.com unit-perl 6761330Svbart@nginx.com unit-ruby 6771330Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 6781640Svbart@nginx.com ver="1.20.0" rev="1" 6791640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 6801640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6811640Svbart@nginx.com 6821640Svbart@nginx.com<change> 6831640Svbart@nginx.com<para> 6841640Svbart@nginx.comNGINX Unit updated to 1.20.0. 6851640Svbart@nginx.com</para> 6861640Svbart@nginx.com</change> 6871640Svbart@nginx.com 6881640Svbart@nginx.com</changes> 6891640Svbart@nginx.com 6901640Svbart@nginx.com 6911640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1" 6921640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 6931640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6941640Svbart@nginx.com 6951640Svbart@nginx.com<change type="change"> 6961640Svbart@nginx.com<para> 6971640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all 6981640Svbart@nginx.comextensions from the host system. 6991640Svbart@nginx.com</para> 7001640Svbart@nginx.com</change> 7011640Svbart@nginx.com 7021640Svbart@nginx.com<change type="change"> 7031640Svbart@nginx.com<para> 7041640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list. 7051640Svbart@nginx.com</para> 7061640Svbart@nginx.com</change> 7071640Svbart@nginx.com 7081643Svbart@nginx.com<change type="change"> 7091643Svbart@nginx.com<para> 7101643Svbart@nginx.comfunctional tests migrated to the pytest framework. 7111643Svbart@nginx.com</para> 7121643Svbart@nginx.com</change> 7131643Svbart@nginx.com 7141640Svbart@nginx.com<change type="feature"> 7151640Svbart@nginx.com<para> 7161640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server 7171640Svbart@nginx.cominterface. 7181640Svbart@nginx.com</para> 7191640Svbart@nginx.com</change> 7201640Svbart@nginx.com 7211640Svbart@nginx.com<change type="feature"> 7221640Svbart@nginx.com<para> 7231640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for 7241640Svbart@nginx.comapplications, compatible with the HTTP & WebSocket ASGI Message Format 2.1 7251640Svbart@nginx.comspecification. 7261640Svbart@nginx.com</para> 7271640Svbart@nginx.com</change> 7281640Svbart@nginx.com 7291640Svbart@nginx.com<change type="feature"> 7301640Svbart@nginx.com<para> 7311640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application 7321640Svbart@nginx.comenvironments. 7331640Svbart@nginx.com</para> 7341640Svbart@nginx.com</change> 7351640Svbart@nginx.com 7361640Svbart@nginx.com<change type="feature"> 7371640Svbart@nginx.com<para> 7381640Svbart@nginx.comthe $host variable contains a normalized "Host" request value. 7391640Svbart@nginx.com</para> 7401640Svbart@nginx.com</change> 7411640Svbart@nginx.com 7421640Svbart@nginx.com<change type="feature"> 7431640Svbart@nginx.com<para> 7441640Svbart@nginx.comthe "callable" option sets Python application callable names. 7451640Svbart@nginx.com</para> 7461640Svbart@nginx.com</change> 7471640Svbart@nginx.com 7481640Svbart@nginx.com<change type="feature"> 7491640Svbart@nginx.com<para> 7501640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet. 7511640Svbart@nginx.com</para> 7521640Svbart@nginx.com</change> 7531640Svbart@nginx.com 7541640Svbart@nginx.com<change type="feature"> 7551640Svbart@nginx.com<para> 7561640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the 7571640Svbart@nginx.comautomatic mounting of language module dependencies. 7581640Svbart@nginx.com</para> 7591640Svbart@nginx.com</change> 7601640Svbart@nginx.com 7611640Svbart@nginx.com<change type="bugfix"> 7621640Svbart@nginx.com<para> 7631640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared 7641640Svbart@nginx.comin 1.19.0. Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it. 7651640Svbart@nginx.com</para> 7661640Svbart@nginx.com</change> 7671640Svbart@nginx.com 7681640Svbart@nginx.com<change type="bugfix"> 7691640Svbart@nginx.com<para> 7701640Svbart@nginx.comthe router process could crash during reconfiguration. 7711640Svbart@nginx.com</para> 7721640Svbart@nginx.com</change> 7731640Svbart@nginx.com 7741640Svbart@nginx.com<change type="bugfix"> 7751640Svbart@nginx.com<para> 7761640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0. 7771640Svbart@nginx.com</para> 7781640Svbart@nginx.com</change> 7791640Svbart@nginx.com 7801640Svbart@nginx.com<change type="bugfix"> 7811640Svbart@nginx.com<para> 7821640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly; 7831640Svbart@nginx.comthe bug had appeared in 1.19.0. 7841640Svbart@nginx.com</para> 7851640Svbart@nginx.com</change> 7861640Svbart@nginx.com 7871640Svbart@nginx.com<change type="bugfix"> 7881640Svbart@nginx.com<para> 7891640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD; 7901640Svbart@nginx.comthe bug had appeared in 1.16.0. 7911640Svbart@nginx.com</para> 7921640Svbart@nginx.com</change> 7931640Svbart@nginx.com 7941640Svbart@nginx.com</changes> 7951640Svbart@nginx.com 7961640Svbart@nginx.com 7971640Svbart@nginx.com<changes apply="unit-php 7981640Svbart@nginx.com unit-python unit-python2.7 7991640Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 8001640Svbart@nginx.com unit-python3.8 8011640Svbart@nginx.com unit-go 8021640Svbart@nginx.com unit-perl 8031640Svbart@nginx.com unit-ruby 8041640Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 8051570Svbart@nginx.com ver="1.19.0" rev="1" 8061570Svbart@nginx.com date="2020-08-13" time="18:00:00 +0300" 8071570Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8081570Svbart@nginx.com 8091570Svbart@nginx.com<change> 8101570Svbart@nginx.com<para> 8111570Svbart@nginx.comNGINX Unit updated to 1.19.0. 8121570Svbart@nginx.com</para> 8131570Svbart@nginx.com</change> 8141570Svbart@nginx.com 8151570Svbart@nginx.com</changes> 8161570Svbart@nginx.com 8171570Svbart@nginx.com 8181570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1" 8191570Svbart@nginx.com date="2020-08-13" time="18:00:00 +0300" 8201570Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8211570Svbart@nginx.com 8221570Svbart@nginx.com<change type="feature"> 8231570Svbart@nginx.com<para> 8241570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies, 8251570Svbart@nginx.comincrease performance, and improve scalability. 8261570Svbart@nginx.com</para> 8271570Svbart@nginx.com</change> 8281570Svbart@nginx.com 8291570Svbart@nginx.com<change type="feature"> 8301570Svbart@nginx.com<para> 8311570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns. 8321570Svbart@nginx.com</para> 8331570Svbart@nginx.com</change> 8341570Svbart@nginx.com 8351570Svbart@nginx.com<change type="feature"> 8361570Svbart@nginx.com<para> 8371570Svbart@nginx.comchunked transfer encoding in proxy responses. 8381570Svbart@nginx.com</para> 8391570Svbart@nginx.com</change> 8401570Svbart@nginx.com 8411570Svbart@nginx.com<change type="feature"> 8421570Svbart@nginx.com<para> 8431570Svbart@nginx.combasic variables support in the "pass" option. 8441570Svbart@nginx.com</para> 8451570Svbart@nginx.com</change> 8461570Svbart@nginx.com 8471570Svbart@nginx.com<change type="feature"> 8481570Svbart@nginx.com<para> 8491570Svbart@nginx.comcompatibility with PHP 8 Beta 1. 8501570Svbart@nginx.comThanks to Remi Collet. 8511570Svbart@nginx.com</para> 8521570Svbart@nginx.com</change> 8531570Svbart@nginx.com 8541570Svbart@nginx.com<change type="bugfix"> 8551570Svbart@nginx.com<para> 8561570Svbart@nginx.comthe router process could crash while passing requests to an application under 8571570Svbart@nginx.comhigh load. 8581570Svbart@nginx.com</para> 8591570Svbart@nginx.com</change> 8601570Svbart@nginx.com 8611570Svbart@nginx.com<change type="bugfix"> 8621570Svbart@nginx.com<para> 8631570Svbart@nginx.coma number of language modules failed to build on some systems; 8641570Svbart@nginx.comthe bug had appeared in 1.18.0. 8651570Svbart@nginx.com</para> 8661570Svbart@nginx.com</change> 8671570Svbart@nginx.com 8681570Svbart@nginx.com<change type="bugfix"> 8691570Svbart@nginx.com<para> 8701570Svbart@nginx.comtime in error log messages from PHP applications could lag. 8711570Svbart@nginx.com</para> 8721570Svbart@nginx.com</change> 8731570Svbart@nginx.com 8741570Svbart@nginx.com<change type="bugfix"> 8751570Svbart@nginx.com<para> 8761570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start; 8771570Svbart@nginx.comthe bug had appeared in 1.18.0. 8781570Svbart@nginx.com</para> 8791570Svbart@nginx.com</change> 8801570Svbart@nginx.com 8811570Svbart@nginx.com<change type="bugfix"> 8821570Svbart@nginx.com<para> 8831570Svbart@nginx.commemory leak during reconfiguration. 8841570Svbart@nginx.com</para> 8851570Svbart@nginx.com</change> 8861570Svbart@nginx.com 8871570Svbart@nginx.com<change type="bugfix"> 8881570Svbart@nginx.com<para> 8891570Svbart@nginx.comthe daemon didn't start without language modules; 8901570Svbart@nginx.comthe bug had appeared in 1.18.0. 8911570Svbart@nginx.com</para> 8921570Svbart@nginx.com</change> 8931570Svbart@nginx.com 8941570Svbart@nginx.com<change type="bugfix"> 8951570Svbart@nginx.com<para> 8961570Svbart@nginx.comthe router process could crash at exit. 8971570Svbart@nginx.com</para> 8981570Svbart@nginx.com</change> 8991570Svbart@nginx.com 9001570Svbart@nginx.com<change type="bugfix"> 9011570Svbart@nginx.com<para> 9021570Svbart@nginx.comNode.js applications could crash at exit. 9031570Svbart@nginx.com</para> 9041570Svbart@nginx.com</change> 9051570Svbart@nginx.com 9061570Svbart@nginx.com<change type="bugfix"> 9071570Svbart@nginx.com<para> 9081570Svbart@nginx.comthe Ruby module could be linked against a wrong library version. 9091570Svbart@nginx.com</para> 9101570Svbart@nginx.com</change> 9111570Svbart@nginx.com 9121570Svbart@nginx.com</changes> 9131570Svbart@nginx.com 9141570Svbart@nginx.com 9151570Svbart@nginx.com<changes apply="unit-php 9161570Svbart@nginx.com unit-python unit-python2.7 9171570Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 9181570Svbart@nginx.com unit-python3.8 9191570Svbart@nginx.com unit-go 9201570Svbart@nginx.com unit-perl 9211570Svbart@nginx.com unit-ruby 9221570Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 9231491Svbart@nginx.com ver="1.18.0" rev="1" 9241491Svbart@nginx.com date="2020-05-28" time="18:00:00 +0300" 9251491Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9261491Svbart@nginx.com 9271491Svbart@nginx.com<change> 9281491Svbart@nginx.com<para> 9291491Svbart@nginx.comNGINX Unit updated to 1.18.0. 9301491Svbart@nginx.com</para> 9311491Svbart@nginx.com</change> 9321491Svbart@nginx.com 9331491Svbart@nginx.com</changes> 9341491Svbart@nginx.com 9351491Svbart@nginx.com 9361491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1" 9371491Svbart@nginx.com date="2020-05-28" time="18:00:00 +0300" 9381491Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9391491Svbart@nginx.com 9401491Svbart@nginx.com<change type="feature"> 9411491Svbart@nginx.com<para> 9421491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application. 9431491Svbart@nginx.com</para> 9441491Svbart@nginx.com</change> 9451491Svbart@nginx.com 9461491Svbart@nginx.com<change type="feature"> 9471491Svbart@nginx.com<para> 9481491Svbart@nginx.commultiple "targets" in PHP applications. 9491491Svbart@nginx.com</para> 9501491Svbart@nginx.com</change> 9511491Svbart@nginx.com 9521491Svbart@nginx.com<change type="feature"> 9531491Svbart@nginx.com<para> 9541491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options 9551491Svbart@nginx.comand in the "pass" option. 9561491Svbart@nginx.com</para> 9571491Svbart@nginx.com</change> 9581491Svbart@nginx.com 9591491Svbart@nginx.com</changes> 9601491Svbart@nginx.com 9611491Svbart@nginx.com 9621491Svbart@nginx.com<changes apply="unit-php 9631491Svbart@nginx.com unit-python unit-python2.7 9641491Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 9651491Svbart@nginx.com unit-python3.8 9661491Svbart@nginx.com unit-go 9671491Svbart@nginx.com unit-perl 9681491Svbart@nginx.com unit-ruby 9691491Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 9701460Svbart@nginx.com ver="1.17.0" rev="1" 9711460Svbart@nginx.com date="2020-04-16" time="18:00:00 +0300" 9721460Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9731460Svbart@nginx.com 9741460Svbart@nginx.com<change> 9751460Svbart@nginx.com<para> 9761460Svbart@nginx.comNGINX Unit updated to 1.17.0. 9771460Svbart@nginx.com</para> 9781460Svbart@nginx.com</change> 9791460Svbart@nginx.com 9801460Svbart@nginx.com</changes> 9811460Svbart@nginx.com 9821460Svbart@nginx.com 9831460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1" 9841460Svbart@nginx.com date="2020-04-16" time="18:00:00 +0300" 9851460Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9861460Svbart@nginx.com 9871460Svbart@nginx.com<change type="feature"> 9881460Svbart@nginx.com<para> 9891460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external 9901460Svbart@nginx.comredirection. 9911460Svbart@nginx.com</para> 9921460Svbart@nginx.com</change> 9931460Svbart@nginx.com 9941460Svbart@nginx.com<change type="feature"> 9951460Svbart@nginx.com<para> 9961460Svbart@nginx.comfractional weights support for upstream servers. 9971460Svbart@nginx.com</para> 9981460Svbart@nginx.com</change> 9991460Svbart@nginx.com 10001460Svbart@nginx.com<change type="bugfix"> 10011460Svbart@nginx.com<para> 10021460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under 10031460Svbart@nginx.comhigh load. 10041460Svbart@nginx.com</para> 10051460Svbart@nginx.com</change> 10061460Svbart@nginx.com 10071460Svbart@nginx.com<change type="bugfix"> 10081460Svbart@nginx.com<para> 10091460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0. 10101460Svbart@nginx.com</para> 10111460Svbart@nginx.com</change> 10121460Svbart@nginx.com 10131460Svbart@nginx.com<change type="bugfix"> 10141460Svbart@nginx.com<para> 10151460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching 10161460Svbart@nginx.comopen connections limit. 10171460Svbart@nginx.com</para> 10181460Svbart@nginx.com</change> 10191460Svbart@nginx.com 10201460Svbart@nginx.com<change type="bugfix"> 10211460Svbart@nginx.com<para> 10221460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log 10231460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0. 10241460Svbart@nginx.com</para> 10251460Svbart@nginx.com</change> 10261460Svbart@nginx.com 10271460Svbart@nginx.com<change type="bugfix"> 10281460Svbart@nginx.com<para> 10291460Svbart@nginx.comexisting application processes didn't reopen the log file. 10301460Svbart@nginx.com</para> 10311460Svbart@nginx.com</change> 10321460Svbart@nginx.com 10331460Svbart@nginx.com<change type="bugfix"> 10341460Svbart@nginx.com<para> 10351460Svbart@nginx.comincompatibility with some Node.js applications. 10361460Svbart@nginx.com</para> 10371460Svbart@nginx.com</change> 10381460Svbart@nginx.com 10391460Svbart@nginx.com<change type="bugfix"> 10401460Svbart@nginx.com<para> 10411460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0. 10421460Svbart@nginx.com</para> 10431460Svbart@nginx.com</change> 10441460Svbart@nginx.com 10451460Svbart@nginx.com</changes> 10461460Svbart@nginx.com 10471460Svbart@nginx.com 10481460Svbart@nginx.com<changes apply="unit-php 10491460Svbart@nginx.com unit-python unit-python2.7 10501460Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 10511460Svbart@nginx.com unit-python3.8 10521460Svbart@nginx.com unit-go 10531460Svbart@nginx.com unit-perl 10541460Svbart@nginx.com unit-ruby 10551460Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 10561404Svbart@nginx.com ver="1.16.0" rev="1" 10571404Svbart@nginx.com date="2020-03-12" time="18:00:00 +0300" 10581404Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10591404Svbart@nginx.com 10601404Svbart@nginx.com<change> 10611404Svbart@nginx.com<para> 10621404Svbart@nginx.comNGINX Unit updated to 1.16.0. 10631404Svbart@nginx.com</para> 10641404Svbart@nginx.com</change> 10651404Svbart@nginx.com 10661404Svbart@nginx.com</changes> 10671404Svbart@nginx.com 10681404Svbart@nginx.com 10691404Svbart@nginx.com<changes apply="unit" ver="1.16.0" rev="1" 10701404Svbart@nginx.com date="2020-03-12" time="18:00:00 +0300" 10711404Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10721404Svbart@nginx.com 10731404Svbart@nginx.com<change type="feature"> 10741404Svbart@nginx.com<para> 10751404Svbart@nginx.combasic load-balancing support with round-robin. 10761404Svbart@nginx.com</para> 10771404Svbart@nginx.com</change> 10781404Svbart@nginx.com 10791404Svbart@nginx.com<change type="feature"> 10801404Svbart@nginx.com<para> 10811404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be 10821404Svbart@nginx.comserved from the "share" directory. 10831404Svbart@nginx.com</para> 10841404Svbart@nginx.com</change> 10851404Svbart@nginx.com 10861404Svbart@nginx.com<change type="feature"> 10871404Svbart@nginx.com<para> 10881404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk. 10891404Svbart@nginx.com</para> 10901404Svbart@nginx.com</change> 10911404Svbart@nginx.com 10921404Svbart@nginx.com<change type="feature"> 10931404Svbart@nginx.com<para> 10941404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON. 10951404Svbart@nginx.com</para> 10961404Svbart@nginx.com</change> 10971404Svbart@nginx.com 10981404Svbart@nginx.com<change type="bugfix"> 10991404Svbart@nginx.com<para> 11001404Svbart@nginx.comnegative address matching in router might work improperly in combination with 11011404Svbart@nginx.comnon-negative patterns. 11021404Svbart@nginx.com</para> 11031404Svbart@nginx.com</change> 11041404Svbart@nginx.com 11051404Svbart@nginx.com<change type="bugfix"> 11061404Svbart@nginx.com<para> 11071404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0. 11081404Svbart@nginx.com</para> 11091404Svbart@nginx.com</change> 11101404Svbart@nginx.com 11111404Svbart@nginx.com<change type="bugfix"> 11121404Svbart@nginx.com<para> 11131404Svbart@nginx.comPHP 7.4 was broken if it was built with thread safety enabled. 11141404Svbart@nginx.com</para> 11151404Svbart@nginx.com</change> 11161404Svbart@nginx.com 11171404Svbart@nginx.com<change type="bugfix"> 11181404Svbart@nginx.com<para> 11191404Svbart@nginx.comcompatibility issues with some Python applications. 11201404Svbart@nginx.com</para> 11211404Svbart@nginx.com</change> 11221404Svbart@nginx.com 11231404Svbart@nginx.com</changes> 11241404Svbart@nginx.com 11251404Svbart@nginx.com 11261404Svbart@nginx.com<changes apply="unit-php 11271404Svbart@nginx.com unit-python unit-python2.7 11281404Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 11291404Svbart@nginx.com unit-python3.8 11301404Svbart@nginx.com unit-go 11311404Svbart@nginx.com unit-perl 11321404Svbart@nginx.com unit-ruby 11331404Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 11341357Svbart@nginx.com ver="1.15.0" rev="1" 11351357Svbart@nginx.com date="2020-02-06" time="18:00:00 +0300" 11361357Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11371357Svbart@nginx.com 11381357Svbart@nginx.com<change> 11391357Svbart@nginx.com<para> 11401357Svbart@nginx.comNGINX Unit updated to 1.15.0. 11411357Svbart@nginx.com</para> 11421357Svbart@nginx.com</change> 11431357Svbart@nginx.com 11441357Svbart@nginx.com</changes> 11451357Svbart@nginx.com 11461357Svbart@nginx.com 11471357Svbart@nginx.com<changes apply="unit" ver="1.15.0" rev="1" 11481357Svbart@nginx.com date="2020-02-06" time="18:00:00 +0300" 11491357Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11501357Svbart@nginx.com 11511357Svbart@nginx.com<change type="change"> 11521357Svbart@nginx.com<para> 11531357Svbart@nginx.comextensions of dynamically requested PHP scripts were restricted to ".php". 11541357Svbart@nginx.com</para> 11551357Svbart@nginx.com</change> 11561357Svbart@nginx.com 11571357Svbart@nginx.com<change type="feature"> 11581357Svbart@nginx.com<para> 11591357Svbart@nginx.comcompatibility with Ruby 2.7. 11601357Svbart@nginx.com</para> 11611357Svbart@nginx.com</change> 11621357Svbart@nginx.com 11631357Svbart@nginx.com<change type="bugfix"> 11641357Svbart@nginx.com<para> 11651357Svbart@nginx.comsegmentation fault might have occurred in the router process with multiple 11661357Svbart@nginx.comapplication processes under load; the bug had appeared in 1.14.0. 11671357Svbart@nginx.com</para> 11681357Svbart@nginx.com</change> 11691357Svbart@nginx.com 11701357Svbart@nginx.com<change type="bugfix"> 11711357Svbart@nginx.com<para> 11721357Svbart@nginx.comreceiving request body over TLS connection might have stalled. 11731357Svbart@nginx.com</para> 11741357Svbart@nginx.com</change> 11751357Svbart@nginx.com 11761357Svbart@nginx.com</changes> 11771357Svbart@nginx.com 11781357Svbart@nginx.com 11791357Svbart@nginx.com<changes apply="unit-php 11801357Svbart@nginx.com unit-python unit-python2.7 11811357Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 11821357Svbart@nginx.com unit-python3.8 11831357Svbart@nginx.com unit-go 11841357Svbart@nginx.com unit-perl 11851357Svbart@nginx.com unit-ruby 11861357Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 11871330Svbart@nginx.com ver="1.14.0" rev="1" 11881330Svbart@nginx.com date="2019-12-26" time="18:00:00 +0300" 11891330Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11901330Svbart@nginx.com 11911330Svbart@nginx.com<change> 11921330Svbart@nginx.com<para> 11931330Svbart@nginx.comNGINX Unit updated to 1.14.0. 11941330Svbart@nginx.com</para> 11951330