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 34*1960Sz.hong@f5.com<change type="change"> 35*1960Sz.hong@f5.com<para> 36*1960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves, 37*1960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI. 38*1960Sz.hong@f5.com</para> 39*1960Sz.hong@f5.com</change> 40*1960Sz.hong@f5.com 41*1960Sz.hong@f5.com<change type="feature"> 42*1960Sz.hong@f5.com<para> 43*1960Sz.hong@f5.comvariables support in the "share" option. 44*1960Sz.hong@f5.com</para> 45*1960Sz.hong@f5.com</change> 46*1960Sz.hong@f5.com 471959Sz.hong@f5.com<change type="feature"> 481959Sz.hong@f5.com<para> 491959Sz.hong@f5.comvariables support in the "chroot" option. 501959Sz.hong@f5.com</para> 511959Sz.hong@f5.com</change> 521959Sz.hong@f5.com 531955Smax.romanov@nginx.com<change type="bugfix"> 541955Smax.romanov@nginx.com<para> 551955Smax.romanov@nginx.comfixed building with glibc 2.34, notably Fedora 35. 561955Smax.romanov@nginx.com</para> 571955Smax.romanov@nginx.com</change> 581955Smax.romanov@nginx.com 591956Smax.romanov@nginx.com<change type="bugfix"> 601956Smax.romanov@nginx.com<para> 611956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client 621956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured. 631956Smax.romanov@nginx.com</para> 641956Smax.romanov@nginx.com</change> 651956Smax.romanov@nginx.com 661951Svbart@nginx.com</changes> 671951Svbart@nginx.com 681951Svbart@nginx.com 691951Svbart@nginx.com<changes apply="unit-php 701951Svbart@nginx.com unit-python unit-python2.7 711951Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 721951Svbart@nginx.com unit-python3.8 unit-python3.9 731951Svbart@nginx.com unit-go 741951Svbart@nginx.com unit-perl 751951Svbart@nginx.com unit-ruby 761951Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 771951Svbart@nginx.com unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17" 781896Svbart@nginx.com ver="1.25.0" rev="1" 791945Svbart@nginx.com date="2021-08-19" time="18:00:00 +0300" 801896Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 811896Svbart@nginx.com 821896Svbart@nginx.com<change> 831896Svbart@nginx.com<para> 841896Svbart@nginx.comNGINX Unit updated to 1.25.0. 851896Svbart@nginx.com</para> 861896Svbart@nginx.com</change> 871896Svbart@nginx.com 881896Svbart@nginx.com</changes> 891896Svbart@nginx.com 901896Svbart@nginx.com 911896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1" 921945Svbart@nginx.com date="2021-08-19" time="18:00:00 +0300" 931896Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 941896Svbart@nginx.com 951910So.canty@f5.com<change type="feature"> 961910So.canty@f5.com<para> 971944Svbart@nginx.comclient IP address replacement from a specified HTTP header field. 981942Sa.suvorov@f5.com</para> 991942Sa.suvorov@f5.com</change> 1001942Sa.suvorov@f5.com 1011942Sa.suvorov@f5.com<change type="feature"> 1021942Sa.suvorov@f5.com<para> 1031920Sa.suvorov@f5.comTLS sessions cache. 1041920Sa.suvorov@f5.com</para> 1051920Sa.suvorov@f5.com</change> 1061920Sa.suvorov@f5.com 1071920Sa.suvorov@f5.com<change type="feature"> 1081920Sa.suvorov@f5.com<para> 1091944Svbart@nginx.comTLS session tickets. 1101910So.canty@f5.com</para> 1111910So.canty@f5.com</change> 1121910So.canty@f5.com 1131926Smax.romanov@nginx.com<change type="feature"> 1141926Smax.romanov@nginx.com<para> 1151926Smax.romanov@nginx.comapplication restart control. 1161926Smax.romanov@nginx.com</para> 1171926Smax.romanov@nginx.com</change> 1181926Smax.romanov@nginx.com 1191936So.canty@f5.com<change type="feature"> 1201936So.canty@f5.com<para> 1211944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby. 1221936So.canty@f5.com</para> 1231936So.canty@f5.com</change> 1241936So.canty@f5.com 1251907Smax.romanov@nginx.com<change type="bugfix"> 1261907Smax.romanov@nginx.com<para> 1271944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners 1281944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0. 1291921Sa.suvorov@f5.com</para> 1301921Sa.suvorov@f5.com</change> 1311921Sa.suvorov@f5.com 1321921Sa.suvorov@f5.com<change type="bugfix"> 1331921Sa.suvorov@f5.com<para> 1341944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate 1351944Svbart@nginx.combundles in a listener if the client did not use SNI. 1361907Smax.romanov@nginx.com</para> 1371907Smax.romanov@nginx.com</change> 1381907Smax.romanov@nginx.com 1391907Smax.romanov@nginx.com<change type="bugfix"> 1401907Smax.romanov@nginx.com<para> 1411950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application 1421915Smax.romanov@nginx.comreconfiguration. 1431915Smax.romanov@nginx.com</para> 1441915Smax.romanov@nginx.com</change> 1451915Smax.romanov@nginx.com 1461915Smax.romanov@nginx.com<change type="bugfix"> 1471915Smax.romanov@nginx.com<para> 1481944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette 1491944Svbart@nginx.comframework. 1501944Svbart@nginx.com</para> 1511944Svbart@nginx.com</change> 1521944Svbart@nginx.com 1531944Svbart@nginx.com<change type="bugfix"> 1541944Svbart@nginx.com<para> 1551944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process 1561944Svbart@nginx.comstopped or crashed. 1571907Smax.romanov@nginx.com</para> 1581907Smax.romanov@nginx.com</change> 1591907Smax.romanov@nginx.com 1601909So.canty@f5.com<change type="bugfix"> 1611909So.canty@f5.com<para> 1621909So.canty@f5.comthe controller or router process could crash if the configuration contained 1631909So.canty@f5.coma full-form IPv6 in a listener address. 1641909So.canty@f5.com</para> 1651909So.canty@f5.com</change> 1661909So.canty@f5.com 1671916Smax.romanov@nginx.com<change type="bugfix"> 1681916Smax.romanov@nginx.com<para> 1691929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes" 1701929Sz.hong@f5.comor "upstreams" using a variable "pass" option. 1711929Sz.hong@f5.com</para> 1721929Sz.hong@f5.com</change> 1731929Sz.hong@f5.com 1741930So.canty@f5.com<change type="bugfix"> 1751930So.canty@f5.com<para> 1761944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source 1771944Svbart@nginx.comor destination address patterns. 1781930So.canty@f5.com</para> 1791930So.canty@f5.com</change> 1801930So.canty@f5.com 1811896Svbart@nginx.com</changes> 1821896Svbart@nginx.com 1831896Svbart@nginx.com 1841887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1" 1851891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 1861887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1871887Sdefan@nginx.com 1881887Sdefan@nginx.com<change> 1891887Sdefan@nginx.com<para> 1901887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit. 1911887Sdefan@nginx.com</para> 1921887Sdefan@nginx.com</change> 1931887Sdefan@nginx.com 1941887Sdefan@nginx.com</changes> 1951887Sdefan@nginx.com 1961887Sdefan@nginx.com 1971887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1" 1981891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 1991887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2001887Sdefan@nginx.com 2011887Sdefan@nginx.com<change> 2021887Sdefan@nginx.com<para> 2031887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit. 2041887Sdefan@nginx.com</para> 2051887Sdefan@nginx.com</change> 2061887Sdefan@nginx.com 2071887Sdefan@nginx.com</changes> 2081887Sdefan@nginx.com 2091887Sdefan@nginx.com 2101834Svbart@nginx.com<changes apply="unit-php 2111834Svbart@nginx.com unit-python unit-python2.7 2121834Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 2131834Svbart@nginx.com unit-python3.8 unit-python3.9 2141834Svbart@nginx.com unit-go 2151834Svbart@nginx.com unit-perl 2161834Svbart@nginx.com unit-ruby 2171834Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 2181834Svbart@nginx.com unit-jsc14 unit-jsc15" 2191839Svbart@nginx.com ver="1.24.0" rev="1" 2201891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 2211839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2221839Svbart@nginx.com 2231839Svbart@nginx.com<change> 2241839Svbart@nginx.com<para> 2251839Svbart@nginx.comNGINX Unit updated to 1.24.0. 2261839Svbart@nginx.com</para> 2271839Svbart@nginx.com</change> 2281839Svbart@nginx.com 2291839Svbart@nginx.com</changes> 2301839Svbart@nginx.com 2311839Svbart@nginx.com 2321839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1" 2331891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 2341839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2351839Svbart@nginx.com 2361882So.canty@f5.com<change type="change"> 2371882So.canty@f5.com<para> 2381882So.canty@f5.comPHP added to the default MIME type list. 2391882So.canty@f5.com</para> 2401882So.canty@f5.com</change> 2411882So.canty@f5.com 2421855Sz.hong@f5.com<change type="feature"> 2431855Sz.hong@f5.com<para> 2441885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands. 2451885Sa.suvorov@f5.com</para> 2461885Sa.suvorov@f5.com</change> 2471885Sa.suvorov@f5.com 2481885Sa.suvorov@f5.com<change type="feature"> 2491885Sa.suvorov@f5.com<para> 2501890Svbart@nginx.comthe ability to limit static file serving by MIME types. 2511890Svbart@nginx.com</para> 2521890Svbart@nginx.com</change> 2531890Svbart@nginx.com 2541890Svbart@nginx.com<change type="feature"> 2551890Svbart@nginx.com<para> 2561890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount 2571890Svbart@nginx.compoint traversal on a per-request basis when serving static files. 2581872So.canty@f5.com</para> 2591872So.canty@f5.com</change> 2601872So.canty@f5.com 2611872So.canty@f5.com<change type="feature"> 2621872So.canty@f5.com<para> 2631889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in 2641889Sartem.konev@nginx.comNode.js. 2651865So.canty@f5.com</para> 2661865So.canty@f5.com</change> 2671865So.canty@f5.com 2681865So.canty@f5.com<change type="feature"> 2691865So.canty@f5.com<para> 2701890Svbart@nginx.commultiple "targets" in Python applications. 2711855Sz.hong@f5.com</para> 2721855Sz.hong@f5.com</change> 2731855Sz.hong@f5.com 2741870So.canty@f5.com<change type="feature"> 2751870So.canty@f5.com<para> 2761870So.canty@f5.comcompatibility with Ruby 3.0. 2771870So.canty@f5.com</para> 2781870So.canty@f5.com</change> 2791870So.canty@f5.com 2801861Svbart@nginx.com<change type="bugfix"> 2811861Svbart@nginx.com<para> 2821889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection. 2831884Sa.suvorov@f5.com</para> 2841884Sa.suvorov@f5.com</change> 2851884Sa.suvorov@f5.com 2861884Sa.suvorov@f5.com<change type="bugfix"> 2871884Sa.suvorov@f5.com<para> 2881861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if 2891861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled. 2901861Svbart@nginx.com</para> 2911861Svbart@nginx.com</change> 2921861Svbart@nginx.com 2931839Svbart@nginx.com</changes> 2941839Svbart@nginx.com 2951839Svbart@nginx.com 2961839Svbart@nginx.com<changes apply="unit-php 2971839Svbart@nginx.com unit-python unit-python2.7 2981839Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 2991839Svbart@nginx.com unit-python3.8 unit-python3.9 3001839Svbart@nginx.com unit-go 3011839Svbart@nginx.com unit-perl 3021839Svbart@nginx.com unit-ruby 3031839Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 3041839Svbart@nginx.com unit-jsc14 unit-jsc15" 3051834Svbart@nginx.com ver="1.23.0" rev="1" 3061834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 3071834Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3081834Svbart@nginx.com 3091834Svbart@nginx.com<change> 3101834Svbart@nginx.com<para> 3111834Svbart@nginx.comNGINX Unit updated to 1.23.0. 3121834Svbart@nginx.com</para> 3131834Svbart@nginx.com</change> 3141834Svbart@nginx.com 3151834Svbart@nginx.com</changes> 3161834Svbart@nginx.com 3171834Svbart@nginx.com 3181806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1" 3191834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 3201806Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3211806Svbart@nginx.com 3221825Sthresh@nginx.com<change type="feature"> 3231825Sthresh@nginx.com<para> 3241833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name 3251828Sa.suvorov@f5.comIndication (SNI) TLS extension. 3261828Sa.suvorov@f5.com</para> 3271828Sa.suvorov@f5.com</change> 3281828Sa.suvorov@f5.com 3291828Sa.suvorov@f5.com<change type="feature"> 3301828Sa.suvorov@f5.com<para> 3311833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page 3321833Sartem.konev@nginx.cominstallation. 3331825Sthresh@nginx.com</para> 3341825Sthresh@nginx.com</change> 3351825Sthresh@nginx.com 3361811Smax.romanov@nginx.com<change type="bugfix"> 3371811Smax.romanov@nginx.com<para> 3381812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had 3391812Svbart@nginx.comappeared in 1.17.0. 3401812Svbart@nginx.com</para> 3411812Svbart@nginx.com</change> 3421812Svbart@nginx.com 3431812Svbart@nginx.com<change type="bugfix"> 3441812Svbart@nginx.com<para> 3451833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had 3461812Svbart@nginx.comappeared in 1.6. 3471812Svbart@nginx.com</para> 3481812Svbart@nginx.com</change> 3491812Svbart@nginx.com 3501812Svbart@nginx.com<change type="bugfix"> 3511812Svbart@nginx.com<para> 3521833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing 3531832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0. 3541832Smax.romanov@nginx.com</para> 3551832Smax.romanov@nginx.com</change> 3561832Smax.romanov@nginx.com 3571832Smax.romanov@nginx.com<change type="bugfix"> 3581832Smax.romanov@nginx.com<para> 3591833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or 3601811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0. 3611811Smax.romanov@nginx.com</para> 3621811Smax.romanov@nginx.com</change> 3631806Svbart@nginx.com 3641813Svbart@nginx.com<change type="bugfix"> 3651813Svbart@nginx.com<para> 3661813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in 3671813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart. 3681813Svbart@nginx.com</para> 3691813Svbart@nginx.com</change> 3701813Svbart@nginx.com 3711814Svbart@nginx.com<change type="bugfix"> 3721814Svbart@nginx.com<para> 3731820Svbart@nginx.comthe controller process could crash while requesting information about a 3741820Svbart@nginx.comcertificate with a non-DNS SAN entry. 3751820Svbart@nginx.com</para> 3761820Svbart@nginx.com</change> 3771820Svbart@nginx.com 3781820Svbart@nginx.com<change type="bugfix"> 3791820Svbart@nginx.com<para> 3801822Svbart@nginx.comthe controller process could crash on manipulations with a certificate 3811833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer. 3821822Svbart@nginx.com</para> 3831822Svbart@nginx.com</change> 3841822Svbart@nginx.com 3851822Svbart@nginx.com<change type="bugfix"> 3861822Svbart@nginx.com<para> 3871833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding 3881833Sartem.konev@nginx.comclass. 3891814Svbart@nginx.com</para> 3901814Svbart@nginx.com</change> 3911814Svbart@nginx.com 3921815Svbart@nginx.com<change type="bugfix"> 3931815Svbart@nginx.com<para> 3941815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had 3951815Svbart@nginx.comappeared in 1.22.0. 3961815Svbart@nginx.com</para> 3971815Svbart@nginx.com</change> 3981815Svbart@nginx.com 3991806Svbart@nginx.com</changes> 4001806Svbart@nginx.com 4011806Svbart@nginx.com 4021798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1" 4031798Sdefan@nginx.com date="2021-02-04" time="18:00:00 +0300" 4041798Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4051798Sdefan@nginx.com 4061798Sdefan@nginx.com<change> 4071798Sdefan@nginx.com<para> 4081798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit. 4091798Sdefan@nginx.com</para> 4101798Sdefan@nginx.com</change> 4111798Sdefan@nginx.com 4121798Sdefan@nginx.com</changes> 4131798Sdefan@nginx.com 4141798Sdefan@nginx.com 4151763Sdefan@nginx.com<changes apply="unit-php 4161763Sdefan@nginx.com unit-python unit-python2.7 4171763Sdefan@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 4181763Sdefan@nginx.com unit-python3.8 4191763Sdefan@nginx.com unit-go 4201763Sdefan@nginx.com unit-perl 4211763Sdefan@nginx.com unit-ruby 4221763Sdefan@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 4231763Sdefan@nginx.com unit-jsc14 unit-jsc15" 4241763Sdefan@nginx.com ver="1.22.0" rev="1" 4251793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 4261763Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4271763Sdefan@nginx.com 4281763Sdefan@nginx.com<change> 4291763Sdefan@nginx.com<para> 4301763Sdefan@nginx.comNGINX Unit updated to 1.22.0. 4311763Sdefan@nginx.com</para> 4321763Sdefan@nginx.com</change> 4331763Sdefan@nginx.com 4341763Sdefan@nginx.com</changes> 4351763Sdefan@nginx.com 4361763Sdefan@nginx.com 4371727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1" 4381793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 4391727Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4401727Svbart@nginx.com 4411759Svbart@nginx.com<change type="feature"> 4421759Svbart@nginx.com<para> 4431792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now 4441792Svbart@nginx.comcompliant with Stream API. 4451759Svbart@nginx.com</para> 4461759Svbart@nginx.com</change> 4471759Svbart@nginx.com 4481766Smax.romanov@nginx.com<change type="feature"> 4491766Smax.romanov@nginx.com<para> 4501792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python 4511792Svbart@nginx.comapps. 4521732Svbart@nginx.com</para> 4531732Svbart@nginx.com</change> 4541732Svbart@nginx.com 4551733Svbart@nginx.com<change type="bugfix"> 4561733Svbart@nginx.com<para> 4571792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than 4581792Svbart@nginx.com128K; the bug had appeared in 1.13.0. 4591754Smax.romanov@nginx.com</para> 4601754Smax.romanov@nginx.com</change> 4611754Smax.romanov@nginx.com 4621755Smax.romanov@nginx.com<change type="bugfix"> 4631755Smax.romanov@nginx.com<para> 4641790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had 4651755Smax.romanov@nginx.comappeared in 1.19.0. 4661755Smax.romanov@nginx.com</para> 4671755Smax.romanov@nginx.com</change> 4681755Smax.romanov@nginx.com 4691756Smax.romanov@nginx.com<change type="bugfix"> 4701756Smax.romanov@nginx.com<para> 4711790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had 4721790Sartem.konev@nginx.comappeared in 1.19.0. 4731756Smax.romanov@nginx.com</para> 4741756Smax.romanov@nginx.com</change> 4751756Smax.romanov@nginx.com 4761760Smax.romanov@nginx.com<change type="bugfix"> 4771760Smax.romanov@nginx.com<para> 4781792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes. 4791792Svbart@nginx.com</para> 4801792Svbart@nginx.com</change> 4811792Svbart@nginx.com 4821792Svbart@nginx.com<change type="bugfix"> 4831792Svbart@nginx.com<para> 4841792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were 4851792Svbart@nginx.commissing in the PHP module. 4861792Svbart@nginx.com</para> 4871792Svbart@nginx.com</change> 4881792Svbart@nginx.com 4891792Svbart@nginx.com<change type="bugfix"> 4901792Svbart@nginx.com<para> 4911792Svbart@nginx.comthe router process could crash with multithreaded apps under high load. 4921792Svbart@nginx.com</para> 4931792Svbart@nginx.com</change> 4941792Svbart@nginx.com 4951792Svbart@nginx.com<change type="bugfix"> 4961792Svbart@nginx.com<para> 4971792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load. 4981792Svbart@nginx.com</para> 4991792Svbart@nginx.com</change> 5001792Svbart@nginx.com 5011792Svbart@nginx.com<change type="bugfix"> 5021792Svbart@nginx.com<para> 5031792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used; 5041792Svbart@nginx.comthe bug had appeared in 1.21.0. 5051760Smax.romanov@nginx.com</para> 5061760Smax.romanov@nginx.com</change> 5071760Smax.romanov@nginx.com 5081780Smax.romanov@nginx.com<change type="bugfix"> 5091780Smax.romanov@nginx.com<para> 5101790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used 5111790Sartem.konev@nginx.comWebSocket. 5121780Smax.romanov@nginx.com</para> 5131780Smax.romanov@nginx.com</change> 5141780Smax.romanov@nginx.com 5151789Smax.romanov@nginx.com<change type="bugfix"> 5161789Smax.romanov@nginx.com<para> 5171789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring 5181789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0. 5191789Smax.romanov@nginx.com</para> 5201789Smax.romanov@nginx.com</change> 5211789Smax.romanov@nginx.com 5221727Svbart@nginx.com</changes> 5231727Svbart@nginx.com 5241727Svbart@nginx.com 5251722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1" 5261722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 5271722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5281722Svbart@nginx.com 5291722Svbart@nginx.com<change> 5301722Svbart@nginx.com<para> 5311722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit. 5321722Svbart@nginx.com</para> 5331722Svbart@nginx.com</change> 5341722Svbart@nginx.com 5351722Svbart@nginx.com</changes> 5361722Svbart@nginx.com 5371722Svbart@nginx.com 5381722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1" 5391722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 5401722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5411722Svbart@nginx.com 5421722Svbart@nginx.com<change> 5431722Svbart@nginx.com<para> 5441722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit. 5451722Svbart@nginx.com</para> 5461722Svbart@nginx.com</change> 5471722Svbart@nginx.com 5481722Svbart@nginx.com</changes> 5491722Svbart@nginx.com 5501722Svbart@nginx.com 5511722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1" 5521722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 5531722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5541722Svbart@nginx.com 5551722Svbart@nginx.com<change> 5561722Svbart@nginx.com<para> 5571722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit. 5581722Svbart@nginx.com</para> 5591722Svbart@nginx.com</change> 5601722Svbart@nginx.com 5611722Svbart@nginx.com</changes> 5621722Svbart@nginx.com 5631722Svbart@nginx.com 5641722Svbart@nginx.com<changes apply="unit-php 5651722Svbart@nginx.com unit-python unit-python2.7 5661722Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 5671722Svbart@nginx.com unit-python3.8 5681722Svbart@nginx.com unit-go 5691722Svbart@nginx.com unit-perl 5701722Svbart@nginx.com unit-ruby 5711722Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 5721722Svbart@nginx.com ver="1.21.0" rev="1" 5731722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 5741722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5751722Svbart@nginx.com 5761722Svbart@nginx.com<change> 5771722Svbart@nginx.com<para> 5781722Svbart@nginx.comNGINX Unit updated to 1.21.0. 5791722Svbart@nginx.com</para> 5801722Svbart@nginx.com</change> 5811722Svbart@nginx.com 5821722Svbart@nginx.com</changes> 5831722Svbart@nginx.com 5841722Svbart@nginx.com 5851722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1" 5861722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 5871722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5881722Svbart@nginx.com 5891722Svbart@nginx.com<change type="change"> 5901722Svbart@nginx.com<para> 5911722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used. 5921722Svbart@nginx.com</para> 5931722Svbart@nginx.com</change> 5941722Svbart@nginx.com 5951722Svbart@nginx.com<change type="change"> 5961722Svbart@nginx.com<para> 5971722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field 5981722Svbart@nginx.comnames. 5991722Svbart@nginx.com</para> 6001722Svbart@nginx.com</change> 6011722Svbart@nginx.com 6021722Svbart@nginx.com<change type="change"> 6031722Svbart@nginx.com<para> 6041722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by 6051722Svbart@nginx.comdefault. 6061722Svbart@nginx.com</para> 6071722Svbart@nginx.com</change> 6081722Svbart@nginx.com 6091722Svbart@nginx.com<change type="feature"> 6101722Svbart@nginx.com<para> 6111722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps. 6121722Svbart@nginx.com</para> 6131722Svbart@nginx.com</change> 6141722Svbart@nginx.com 6151722Svbart@nginx.com<change type="feature"> 6161722Svbart@nginx.com<para> 6171722Svbart@nginx.comregular expressions in route matching patterns. 6181722Svbart@nginx.com</para> 6191722Svbart@nginx.com</change> 6201722Svbart@nginx.com 6211722Svbart@nginx.com<change type="feature"> 6221722Svbart@nginx.com<para> 6231722Svbart@nginx.comcompatibility with Python 3.9. 6241722Svbart@nginx.com</para> 6251722Svbart@nginx.com</change> 6261722Svbart@nginx.com 6271722Svbart@nginx.com<change type="feature"> 6281722Svbart@nginx.com<para> 6291722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications. 6301722Svbart@nginx.com</para> 6311722Svbart@nginx.com</change> 6321722Svbart@nginx.com 6331722Svbart@nginx.com<change type="feature"> 6341722Svbart@nginx.com<para> 6351722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI. 6361722Svbart@nginx.com</para> 6371722Svbart@nginx.com</change> 6381722Svbart@nginx.com 6391722Svbart@nginx.com<change type="feature"> 6401722Svbart@nginx.com<para> 6411722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and 6421722Svbart@nginx.comcontinues code execution without holding onto the client connection. 6431722Svbart@nginx.com</para> 6441722Svbart@nginx.com</change> 6451722Svbart@nginx.com 6461722Svbart@nginx.com<change type="feature"> 6471722Svbart@nginx.com<para> 6481722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header 6491722Svbart@nginx.comfields with irregular (but still valid) characters in the field name. 6501722Svbart@nginx.com</para> 6511722Svbart@nginx.com</change> 6521722Svbart@nginx.com 6531722Svbart@nginx.com<change type="feature"> 6541722Svbart@nginx.com<para> 6551722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic 6561722Svbart@nginx.commounting of eponymous filesystems. 6571722Svbart@nginx.com</para> 6581722Svbart@nginx.com</change> 6591722Svbart@nginx.com 6601722Svbart@nginx.com<change type="bugfix"> 6611722Svbart@nginx.com<para> 6621722Svbart@nginx.comthe router process could crash when running Go applications under high load; 6631722Svbart@nginx.comthe bug had appeared in 1.19.0. 6641722Svbart@nginx.com</para> 6651722Svbart@nginx.com</change> 6661722Svbart@nginx.com 6671722Svbart@nginx.com<change type="bugfix"> 6681722Svbart@nginx.com<para> 6691722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation. 6701722Svbart@nginx.com</para> 6711722Svbart@nginx.com</change> 6721722Svbart@nginx.com 6731722Svbart@nginx.com<change type="bugfix"> 6741722Svbart@nginx.com<para> 6751722Svbart@nginx.comvarious compatibility issues in Java applications. 6761722Svbart@nginx.com</para> 6771722Svbart@nginx.com</change> 6781722Svbart@nginx.com 6791722Svbart@nginx.com<change type="bugfix"> 6801722Svbart@nginx.com<para> 6811722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that 6821722Svbart@nginx.comuse "rootfs" isolation. 6831722Svbart@nginx.com</para> 6841722Svbart@nginx.com</change> 6851722Svbart@nginx.com 6861722Svbart@nginx.com</changes> 6871722Svbart@nginx.com 6881722Svbart@nginx.com 6891330Svbart@nginx.com<changes apply="unit-php 6901330Svbart@nginx.com unit-python unit-python2.7 6911330Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 6921330Svbart@nginx.com unit-python3.8 6931330Svbart@nginx.com unit-go 6941330Svbart@nginx.com unit-perl 6951330Svbart@nginx.com unit-ruby 6961330Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 6971640Svbart@nginx.com ver="1.20.0" rev="1" 6981640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 6991640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7001640Svbart@nginx.com 7011640Svbart@nginx.com<change> 7021640Svbart@nginx.com<para> 7031640Svbart@nginx.comNGINX Unit updated to 1.20.0. 7041640Svbart@nginx.com</para> 7051640Svbart@nginx.com</change> 7061640Svbart@nginx.com 7071640Svbart@nginx.com</changes> 7081640Svbart@nginx.com 7091640Svbart@nginx.com 7101640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1" 7111640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 7121640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7131640Svbart@nginx.com 7141640Svbart@nginx.com<change type="change"> 7151640Svbart@nginx.com<para> 7161640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all 7171640Svbart@nginx.comextensions from the host system. 7181640Svbart@nginx.com</para> 7191640Svbart@nginx.com</change> 7201640Svbart@nginx.com 7211640Svbart@nginx.com<change type="change"> 7221640Svbart@nginx.com<para> 7231640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list. 7241640Svbart@nginx.com</para> 7251640Svbart@nginx.com</change> 7261640Svbart@nginx.com 7271643Svbart@nginx.com<change type="change"> 7281643Svbart@nginx.com<para> 7291643Svbart@nginx.comfunctional tests migrated to the pytest framework. 7301643Svbart@nginx.com</para> 7311643Svbart@nginx.com</change> 7321643Svbart@nginx.com 7331640Svbart@nginx.com<change type="feature"> 7341640Svbart@nginx.com<para> 7351640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server 7361640Svbart@nginx.cominterface. 7371640Svbart@nginx.com</para> 7381640Svbart@nginx.com</change> 7391640Svbart@nginx.com 7401640Svbart@nginx.com<change type="feature"> 7411640Svbart@nginx.com<para> 7421640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for 7431640Svbart@nginx.comapplications, compatible with the HTTP & WebSocket ASGI Message Format 2.1 7441640Svbart@nginx.comspecification. 7451640Svbart@nginx.com</para> 7461640Svbart@nginx.com</change> 7471640Svbart@nginx.com 7481640Svbart@nginx.com<change type="feature"> 7491640Svbart@nginx.com<para> 7501640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application 7511640Svbart@nginx.comenvironments. 7521640Svbart@nginx.com</para> 7531640Svbart@nginx.com</change> 7541640Svbart@nginx.com 7551640Svbart@nginx.com<change type="feature"> 7561640Svbart@nginx.com<para> 7571640Svbart@nginx.comthe $host variable contains a normalized "Host" request value. 7581640Svbart@nginx.com</para> 7591640Svbart@nginx.com</change> 7601640Svbart@nginx.com 7611640Svbart@nginx.com<change type="feature"> 7621640Svbart@nginx.com<para> 7631640Svbart@nginx.comthe "callable" option sets Python application callable names. 7641640Svbart@nginx.com</para> 7651640Svbart@nginx.com</change> 7661640Svbart@nginx.com 7671640Svbart@nginx.com<change type="feature"> 7681640Svbart@nginx.com<para> 7691640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet. 7701640Svbart@nginx.com</para> 7711640Svbart@nginx.com</change> 7721640Svbart@nginx.com 7731640Svbart@nginx.com<change type="feature"> 7741640Svbart@nginx.com<para> 7751640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the 7761640Svbart@nginx.comautomatic mounting of language module dependencies. 7771640Svbart@nginx.com</para> 7781640Svbart@nginx.com</change> 7791640Svbart@nginx.com 7801640Svbart@nginx.com<change type="bugfix"> 7811640Svbart@nginx.com<para> 7821640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared 7831640Svbart@nginx.comin 1.19.0. Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it. 7841640Svbart@nginx.com</para> 7851640Svbart@nginx.com</change> 7861640Svbart@nginx.com 7871640Svbart@nginx.com<change type="bugfix"> 7881640Svbart@nginx.com<para> 7891640Svbart@nginx.comthe router process could crash during reconfiguration. 7901640Svbart@nginx.com</para> 7911640Svbart@nginx.com</change> 7921640Svbart@nginx.com 7931640Svbart@nginx.com<change type="bugfix"> 7941640Svbart@nginx.com<para> 7951640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0. 7961640Svbart@nginx.com</para> 7971640Svbart@nginx.com</change> 7981640Svbart@nginx.com 7991640Svbart@nginx.com<change type="bugfix"> 8001640Svbart@nginx.com<para> 8011640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly; 8021640Svbart@nginx.comthe bug had appeared in 1.19.0. 8031640Svbart@nginx.com</para> 8041640Svbart@nginx.com</change> 8051640Svbart@nginx.com 8061640Svbart@nginx.com<change type="bugfix"> 8071640Svbart@nginx.com<para> 8081640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD; 8091640Svbart@nginx.comthe bug had appeared in 1.16.0. 8101640Svbart@nginx.com</para> 8111640Svbart@nginx.com</change> 8121640Svbart@nginx.com 8131640Svbart@nginx.com</changes> 8141640Svbart@nginx.com 8151640Svbart@nginx.com 8161640Svbart@nginx.com<changes apply="unit-php 8171640Svbart@nginx.com unit-python unit-python2.7 8181640Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 8191640Svbart@nginx.com unit-python3.8 8201640Svbart@nginx.com unit-go 8211640Svbart@nginx.com unit-perl 8221640Svbart@nginx.com unit-ruby 8231640Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 8241570Svbart@nginx.com ver="1.19.0" rev="1" 8251570Svbart@nginx.com date="2020-08-13" time="18:00:00 +0300" 8261570Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8271570Svbart@nginx.com 8281570Svbart@nginx.com<change> 8291570Svbart@nginx.com<para> 8301570Svbart@nginx.comNGINX Unit updated to 1.19.0. 8311570Svbart@nginx.com</para> 8321570Svbart@nginx.com</change> 8331570Svbart@nginx.com 8341570Svbart@nginx.com</changes> 8351570Svbart@nginx.com 8361570Svbart@nginx.com 8371570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1" 8381570Svbart@nginx.com date="2020-08-13" time="18:00:00 +0300" 8391570Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8401570Svbart@nginx.com 8411570Svbart@nginx.com<change type="feature"> 8421570Svbart@nginx.com<para> 8431570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies, 8441570Svbart@nginx.comincrease performance, and improve scalability. 8451570Svbart@nginx.com</para> 8461570Svbart@nginx.com</change> 8471570Svbart@nginx.com 8481570Svbart@nginx.com<change type="feature"> 8491570Svbart@nginx.com<para> 8501570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns. 8511570Svbart@nginx.com</para> 8521570Svbart@nginx.com</change> 8531570Svbart@nginx.com 8541570Svbart@nginx.com<change type="feature"> 8551570Svbart@nginx.com<para> 8561570Svbart@nginx.comchunked transfer encoding in proxy responses. 8571570Svbart@nginx.com</para> 8581570Svbart@nginx.com</change> 8591570Svbart@nginx.com 8601570Svbart@nginx.com<change type="feature"> 8611570Svbart@nginx.com<para> 8621570Svbart@nginx.combasic variables support in the "pass" option. 8631570Svbart@nginx.com</para> 8641570Svbart@nginx.com</change> 8651570Svbart@nginx.com 8661570Svbart@nginx.com<change type="feature"> 8671570Svbart@nginx.com<para> 8681570Svbart@nginx.comcompatibility with PHP 8 Beta 1. 8691570Svbart@nginx.comThanks to Remi Collet. 8701570Svbart@nginx.com</para> 8711570Svbart@nginx.com</change> 8721570Svbart@nginx.com 8731570Svbart@nginx.com<change type="bugfix"> 8741570Svbart@nginx.com<para> 8751570Svbart@nginx.comthe router process could crash while passing requests to an application under 8761570Svbart@nginx.comhigh load. 8771570Svbart@nginx.com</para> 8781570Svbart@nginx.com</change> 8791570Svbart@nginx.com 8801570Svbart@nginx.com<change type="bugfix"> 8811570Svbart@nginx.com<para> 8821570Svbart@nginx.coma number of language modules failed to build on some systems; 8831570Svbart@nginx.comthe bug had appeared in 1.18.0. 8841570Svbart@nginx.com</para> 8851570Svbart@nginx.com</change> 8861570Svbart@nginx.com 8871570Svbart@nginx.com<change type="bugfix"> 8881570Svbart@nginx.com<para> 8891570Svbart@nginx.comtime in error log messages from PHP applications could lag. 8901570Svbart@nginx.com</para> 8911570Svbart@nginx.com</change> 8921570Svbart@nginx.com 8931570Svbart@nginx.com<change type="bugfix"> 8941570Svbart@nginx.com<para> 8951570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start; 8961570Svbart@nginx.comthe bug had appeared in 1.18.0. 8971570Svbart@nginx.com</para> 8981570Svbart@nginx.com</change> 8991570Svbart@nginx.com 9001570Svbart@nginx.com<change type="bugfix"> 9011570Svbart@nginx.com<para> 9021570Svbart@nginx.commemory leak during reconfiguration. 9031570Svbart@nginx.com</para> 9041570Svbart@nginx.com</change> 9051570Svbart@nginx.com 9061570Svbart@nginx.com<change type="bugfix"> 9071570Svbart@nginx.com<para> 9081570Svbart@nginx.comthe daemon didn't start without language modules; 9091570Svbart@nginx.comthe bug had appeared in 1.18.0. 9101570Svbart@nginx.com</para> 9111570Svbart@nginx.com</change> 9121570Svbart@nginx.com 9131570Svbart@nginx.com<change type="bugfix"> 9141570Svbart@nginx.com<para> 9151570Svbart@nginx.comthe router process could crash at exit. 9161570Svbart@nginx.com</para> 9171570Svbart@nginx.com</change> 9181570Svbart@nginx.com 9191570Svbart@nginx.com<change type="bugfix"> 9201570Svbart@nginx.com<para> 9211570Svbart@nginx.comNode.js applications could crash at exit. 9221570Svbart@nginx.com</para> 9231570Svbart@nginx.com</change> 9241570Svbart@nginx.com 9251570Svbart@nginx.com<change type="bugfix"> 9261570Svbart@nginx.com<para> 9271570Svbart@nginx.comthe Ruby module could be linked against a wrong library version. 9281570Svbart@nginx.com</para> 9291570Svbart@nginx.com</change> 9301570Svbart@nginx.com 9311570Svbart@nginx.com</changes> 9321570Svbart@nginx.com 9331570Svbart@nginx.com 9341570Svbart@nginx.com<changes apply="unit-php 9351570Svbart@nginx.com unit-python unit-python2.7 9361570Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 9371570Svbart@nginx.com unit-python3.8 9381570Svbart@nginx.com unit-go 9391570Svbart@nginx.com unit-perl 9401570Svbart@nginx.com unit-ruby 9411570Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 9421491Svbart@nginx.com ver="1.18.0" rev="1" 9431491Svbart@nginx.com date="2020-05-28" time="18:00:00 +0300" 9441491Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9451491Svbart@nginx.com 9461491Svbart@nginx.com<change> 9471491Svbart@nginx.com<para> 9481491Svbart@nginx.comNGINX Unit updated to 1.18.0. 9491491Svbart@nginx.com</para> 9501491Svbart@nginx.com</change> 9511491Svbart@nginx.com 9521491Svbart@nginx.com</changes> 9531491Svbart@nginx.com 9541491Svbart@nginx.com 9551491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1" 9561491Svbart@nginx.com date="2020-05-28" time="18:00:00 +0300" 9571491Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9581491Svbart@nginx.com 9591491Svbart@nginx.com<change type="feature"> 9601491Svbart@nginx.com<para> 9611491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application. 9621491Svbart@nginx.com</para> 9631491Svbart@nginx.com</change> 9641491Svbart@nginx.com 9651491Svbart@nginx.com<change type="feature"> 9661491Svbart@nginx.com<para> 9671491Svbart@nginx.commultiple "targets" in PHP applications. 9681491Svbart@nginx.com</para> 9691491Svbart@nginx.com</change> 9701491Svbart@nginx.com 9711491Svbart@nginx.com<change type="feature"> 9721491Svbart@nginx.com<para> 9731491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options 9741491Svbart@nginx.comand in the "pass" option. 9751491Svbart@nginx.com</para> 9761491Svbart@nginx.com</change> 9771491Svbart@nginx.com 9781491Svbart@nginx.com</changes> 9791491Svbart@nginx.com 9801491Svbart@nginx.com 9811491Svbart@nginx.com<changes apply="unit-php 9821491Svbart@nginx.com unit-python unit-python2.7 9831491Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 9841491Svbart@nginx.com unit-python3.8 9851491Svbart@nginx.com unit-go 9861491Svbart@nginx.com unit-perl 9871491Svbart@nginx.com unit-ruby 9881491Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 9891460Svbart@nginx.com ver="1.17.0" rev="1" 9901460Svbart@nginx.com date="2020-04-16" time="18:00:00 +0300" 9911460Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9921460Svbart@nginx.com 9931460Svbart@nginx.com<change> 9941460Svbart@nginx.com<para> 9951460Svbart@nginx.comNGINX Unit updated to 1.17.0. 9961460Svbart@nginx.com</para> 9971460Svbart@nginx.com</change> 9981460Svbart@nginx.com 9991460Svbart@nginx.com</changes> 10001460Svbart@nginx.com 10011460Svbart@nginx.com 10021460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1" 10031460Svbart@nginx.com date="2020-04-16" time="18:00:00 +0300" 10041460Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10051460Svbart@nginx.com 10061460Svbart@nginx.com<change type="feature"> 10071460Svbart@nginx.com<para> 10081460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external 10091460Svbart@nginx.comredirection. 10101460Svbart@nginx.com</para> 10111460Svbart@nginx.com</change> 10121460Svbart@nginx.com 10131460Svbart@nginx.com<change type="feature"> 10141460Svbart@nginx.com<para> 10151460Svbart@nginx.comfractional weights support for upstream servers. 10161460Svbart@nginx.com</para> 10171460Svbart@nginx.com</change> 10181460Svbart@nginx.com 10191460Svbart@nginx.com<change type="bugfix"> 10201460Svbart@nginx.com<para> 10211460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under 10221460Svbart@nginx.comhigh load. 10231460Svbart@nginx.com</para> 10241460Svbart@nginx.com</change> 10251460Svbart@nginx.com 10261460Svbart@nginx.com<change type="bugfix"> 10271460Svbart@nginx.com<para> 10281460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0. 10291460Svbart@nginx.com</para> 10301460Svbart@nginx.com</change> 10311460Svbart@nginx.com 10321460Svbart@nginx.com<change type="bugfix"> 10331460Svbart@nginx.com<para> 10341460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching 10351460Svbart@nginx.comopen connections limit. 10361460Svbart@nginx.com</para> 10371460Svbart@nginx.com</change> 10381460Svbart@nginx.com 10391460Svbart@nginx.com<change type="bugfix"> 10401460Svbart@nginx.com<para> 10411460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log 10421460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0. 10431460Svbart@nginx.com</para> 10441460Svbart@nginx.com</change> 10451460Svbart@nginx.com 10461460Svbart@nginx.com<change type="bugfix"> 10471460Svbart@nginx.com<para> 10481460Svbart@nginx.comexisting application processes didn't reopen the log file. 10491460Svbart@nginx.com</para> 10501460Svbart@nginx.com</change> 10511460Svbart@nginx.com 10521460Svbart@nginx.com<change type="bugfix"> 10531460Svbart@nginx.com<para> 10541460Svbart@nginx.comincompatibility with some Node.js applications. 10551460Svbart@nginx.com</para> 10561460Svbart@nginx.com</change> 10571460Svbart@nginx.com 10581460Svbart@nginx.com<change type="bugfix"> 10591460Svbart@nginx.com<para> 10601460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0. 10611460Svbart@nginx.com</para> 10621460Svbart@nginx.com</change> 10631460Svbart@nginx.com 10641460Svbart@nginx.com</changes> 10651460Svbart@nginx.com 10661460Svbart@nginx.com 10671460Svbart@nginx.com<changes apply="unit-php 10681460Svbart@nginx.com unit-python unit-python2.7 10691460Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 10701460Svbart@nginx.com unit-python3.8 10711460Svbart@nginx.com unit-go 10721460Svbart@nginx.com unit-perl 10731460Svbart@nginx.com unit-ruby 10741460Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 10751404Svbart@nginx.com ver="1.16.0" rev="1" 10761404Svbart@nginx.com date="2020-03-12" time="18:00:00 +0300" 10771404Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10781404Svbart@nginx.com 10791404Svbart@nginx.com<change> 10801404Svbart@nginx.com<para> 10811404Svbart@nginx.comNGINX Unit updated to 1.16.0. 10821404Svbart@nginx.com</para> 10831404Svbart@nginx.com</change> 10841404Svbart@nginx.com 10851404Svbart@nginx.com</changes> 10861404Svbart@nginx.com 10871404Svbart@nginx.com 10881404Svbart@nginx.com<changes apply="unit" ver="1.16.0" rev="1" 10891404Svbart@nginx.com date="2020-03-12" time="18:00:00 +0300" 10901404Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10911404Svbart@nginx.com 10921404Svbart@nginx.com<change type="feature"> 10931404Svbart@nginx.com<para> 10941404Svbart@nginx.combasic load-balancing support with round-robin. 10951404Svbart@nginx.com</para> 10961404Svbart@nginx.com</change> 10971404Svbart@nginx.com 10981404Svbart@nginx.com<change type="feature"> 10991404Svbart@nginx.com<para> 11001404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be 11011404Svbart@nginx.comserved from the "share" directory. 11021404Svbart@nginx.com</para> 11031404Svbart@nginx.com</change> 11041404Svbart@nginx.com 11051404Svbart@nginx.com<change type="feature"> 11061404Svbart@nginx.com<para> 11071404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk. 11081404Svbart@nginx.com</para> 11091404Svbart@nginx.com</change> 11101404Svbart@nginx.com 11111404Svbart@nginx.com<change type="feature"> 11121404Svbart@nginx.com<para> 11131404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON. 11141404Svbart@nginx.com</para> 11151404Svbart@nginx.com</change> 11161404Svbart@nginx.com 11171404Svbart@nginx.com<change type="bugfix"> 11181404Svbart@nginx.com<para> 11191404Svbart@nginx.comnegative address matching in router might work improperly in combination with 11201404Svbart@nginx.comnon-negative patterns. 11211404Svbart@nginx.com</para> 11221404Svbart@nginx.com</change> 11231404Svbart@nginx.com 11241404Svbart@nginx.com<change type="bugfix"> 11251404Svbart@nginx.com<para> 11261404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0. 11271404Svbart@nginx.com</para> 11281404Svbart@nginx.com</change> 11291404Svbart@nginx.com 11301404Svbart@nginx.com<change type="bugfix"> 11311404Svbart@nginx.com<para> 11321404Svbart@nginx.comPHP 7.4 was broken if it was built with thread safety enabled. 11331404Svbart@nginx.com</para> 11341404Svbart@nginx.com</change> 11351404Svbart@nginx.com 11361404Svbart@nginx.com<change type="bugfix"> 11371404Svbart@nginx.com<para> 11381404Svbart@nginx.comcompatibility issues with some Python applications. 11391404Svbart@nginx.com</para> 11401404Svbart@nginx.com</change> 11411404Svbart@nginx.com 11421404Svbart@nginx.com</changes> 11431404Svbart@nginx.com 11441404Svbart@nginx.com 11451404Svbart@nginx.com<changes apply="unit-php 11461404Svbart@nginx.com unit-python unit-python2.7 11471404Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 11481404Svbart@nginx.com unit-python3.8 11491404Svbart@nginx.com unit-go 11501404Svbart@nginx.com unit-perl 11511404Svbart@nginx.com unit-ruby 11521404Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 11531357Svbart@nginx.com ver="1.15.0" rev="1" 11541357Svbart@nginx.com date="2020-02-06" time="18:00:00 +0300" 11551357Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11561357Svbart@nginx.com 11571357Svbart@nginx.com<change> 11581357Svbart@nginx.com<para> 11591357Svbart@nginx.comNGINX Unit updated to 1.15.0. 11601357Svbart@nginx.com</para> 11611357Svbart@nginx.com</change> 11621357Svbart@nginx.com 11631357Svbart@nginx.com</changes> 11641357Svbart@nginx.com 11651357Svbart@nginx.com 11661357Svbart@nginx.com<changes apply="unit" ver="1.15.0" rev="1" 11671357Svbart@nginx.com date="2020-02-06" time="18:00:00 +0300" 11681357Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11691357Svbart@nginx.com 11701357Svbart@nginx.com<change type="change"> 11711357Svbart@nginx.com<para> 11721357Svbart@nginx.comextensions of dynamically requested PHP scripts were restricted to ".php". 11731357Svbart@nginx.com</para> 11741357Svbart@nginx.com</change> 11751357Svbart@nginx.com 11761357Svbart@nginx.com<change type="feature"> 11771357Svbart@nginx.com<para> 11781357Svbart@nginx.comcompatibility with Ruby 2.7. 11791357Svbart@nginx.com</para> 11801357Svbart@nginx.com</change> 11811357Svbart@nginx.com 11821357Svbart@nginx.com<change type="bugfix"> 11831357Svbart@nginx.com<para> 11841357Svbart@nginx.comsegmentation fault might have occurred in the router process with multiple 11851357Svbart@nginx.comapplication processes under load; the bug had appeared in 1.14.0. 11861357Svbart@nginx.com</para> 11871357Svbart@nginx.com</change>