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 8*1973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1" 9*1973Sdefan@nginx.com date="" time="" 10*1973Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11*1973Sdefan@nginx.com 12*1973Sdefan@nginx.com<change> 13*1973Sdefan@nginx.com<para> 14*1973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit. 15*1973Sdefan@nginx.com</para> 16*1973Sdefan@nginx.com</change> 17*1973Sdefan@nginx.com 18*1973Sdefan@nginx.com</changes> 19*1973Sdefan@nginx.com 20*1973Sdefan@nginx.com 21*1973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1" 22*1973Sdefan@nginx.com date="" time="" 23*1973Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 24*1973Sdefan@nginx.com 25*1973Sdefan@nginx.com<change> 26*1973Sdefan@nginx.com<para> 27*1973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit. 28*1973Sdefan@nginx.com</para> 29*1973Sdefan@nginx.com</change> 30*1973Sdefan@nginx.com 31*1973Sdefan@nginx.com</changes> 32*1973Sdefan@nginx.com 33*1973Sdefan@nginx.com 341896Svbart@nginx.com<changes apply="unit-php 351896Svbart@nginx.com unit-python unit-python2.7 361896Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 371896Svbart@nginx.com unit-python3.8 unit-python3.9 381896Svbart@nginx.com unit-go 391896Svbart@nginx.com unit-perl 401896Svbart@nginx.com unit-ruby 411896Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 421896Svbart@nginx.com unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17" 431951Svbart@nginx.com ver="1.26.0" rev="1" 441951Svbart@nginx.com date="" time="" 451951Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 461951Svbart@nginx.com 471951Svbart@nginx.com<change> 481951Svbart@nginx.com<para> 491951Svbart@nginx.comNGINX Unit updated to 1.26.0. 501951Svbart@nginx.com</para> 511951Svbart@nginx.com</change> 521951Svbart@nginx.com 531951Svbart@nginx.com</changes> 541951Svbart@nginx.com 551951Svbart@nginx.com 561951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1" 571951Svbart@nginx.com date="" time="" 581951Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 591951Svbart@nginx.com 601960Sz.hong@f5.com<change type="change"> 611960Sz.hong@f5.com<para> 621960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves, 631960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI. 641960Sz.hong@f5.com</para> 651960Sz.hong@f5.com</change> 661960Sz.hong@f5.com 671960Sz.hong@f5.com<change type="feature"> 681960Sz.hong@f5.com<para> 691960Sz.hong@f5.comvariables support in the "share" option. 701960Sz.hong@f5.com</para> 711960Sz.hong@f5.com</change> 721960Sz.hong@f5.com 731959Sz.hong@f5.com<change type="feature"> 741959Sz.hong@f5.com<para> 751961Sz.hong@f5.commultiple paths in the "share" option. 761961Sz.hong@f5.com</para> 771961Sz.hong@f5.com</change> 781961Sz.hong@f5.com 791961Sz.hong@f5.com<change type="feature"> 801961Sz.hong@f5.com<para> 811959Sz.hong@f5.comvariables support in the "chroot" option. 821959Sz.hong@f5.com</para> 831959Sz.hong@f5.com</change> 841959Sz.hong@f5.com 851969Sz.hong@f5.com<change type="feature"> 861969Sz.hong@f5.com<para> 871969Sz.hong@f5.comautomatic adjustment of existing configurations to the new "share" behavior 881969Sz.hong@f5.comwhen updating from previous versions. 891969Sz.hong@f5.com</para> 901969Sz.hong@f5.com</change> 911969Sz.hong@f5.com 921955Smax.romanov@nginx.com<change type="bugfix"> 931955Smax.romanov@nginx.com<para> 941955Smax.romanov@nginx.comfixed building with glibc 2.34, notably Fedora 35. 951955Smax.romanov@nginx.com</para> 961955Smax.romanov@nginx.com</change> 971955Smax.romanov@nginx.com 981956Smax.romanov@nginx.com<change type="bugfix"> 991956Smax.romanov@nginx.com<para> 1001956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client 1011956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured. 1021956Smax.romanov@nginx.com</para> 1031956Smax.romanov@nginx.com</change> 1041956Smax.romanov@nginx.com 1051951Svbart@nginx.com</changes> 1061951Svbart@nginx.com 1071951Svbart@nginx.com 1081951Svbart@nginx.com<changes apply="unit-php 1091951Svbart@nginx.com unit-python unit-python2.7 1101951Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 1111951Svbart@nginx.com unit-python3.8 unit-python3.9 1121951Svbart@nginx.com unit-go 1131951Svbart@nginx.com unit-perl 1141951Svbart@nginx.com unit-ruby 1151951Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 1161951Svbart@nginx.com unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17" 1171896Svbart@nginx.com ver="1.25.0" rev="1" 1181945Svbart@nginx.com date="2021-08-19" time="18:00:00 +0300" 1191896Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1201896Svbart@nginx.com 1211896Svbart@nginx.com<change> 1221896Svbart@nginx.com<para> 1231896Svbart@nginx.comNGINX Unit updated to 1.25.0. 1241896Svbart@nginx.com</para> 1251896Svbart@nginx.com</change> 1261896Svbart@nginx.com 1271896Svbart@nginx.com</changes> 1281896Svbart@nginx.com 1291896Svbart@nginx.com 1301896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1" 1311945Svbart@nginx.com date="2021-08-19" time="18:00:00 +0300" 1321896Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1331896Svbart@nginx.com 1341910So.canty@f5.com<change type="feature"> 1351910So.canty@f5.com<para> 1361944Svbart@nginx.comclient IP address replacement from a specified HTTP header field. 1371942Sa.suvorov@f5.com</para> 1381942Sa.suvorov@f5.com</change> 1391942Sa.suvorov@f5.com 1401942Sa.suvorov@f5.com<change type="feature"> 1411942Sa.suvorov@f5.com<para> 1421920Sa.suvorov@f5.comTLS sessions cache. 1431920Sa.suvorov@f5.com</para> 1441920Sa.suvorov@f5.com</change> 1451920Sa.suvorov@f5.com 1461920Sa.suvorov@f5.com<change type="feature"> 1471920Sa.suvorov@f5.com<para> 1481944Svbart@nginx.comTLS session tickets. 1491910So.canty@f5.com</para> 1501910So.canty@f5.com</change> 1511910So.canty@f5.com 1521926Smax.romanov@nginx.com<change type="feature"> 1531926Smax.romanov@nginx.com<para> 1541926Smax.romanov@nginx.comapplication restart control. 1551926Smax.romanov@nginx.com</para> 1561926Smax.romanov@nginx.com</change> 1571926Smax.romanov@nginx.com 1581936So.canty@f5.com<change type="feature"> 1591936So.canty@f5.com<para> 1601944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby. 1611936So.canty@f5.com</para> 1621936So.canty@f5.com</change> 1631936So.canty@f5.com 1641907Smax.romanov@nginx.com<change type="bugfix"> 1651907Smax.romanov@nginx.com<para> 1661944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners 1671944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0. 1681921Sa.suvorov@f5.com</para> 1691921Sa.suvorov@f5.com</change> 1701921Sa.suvorov@f5.com 1711921Sa.suvorov@f5.com<change type="bugfix"> 1721921Sa.suvorov@f5.com<para> 1731944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate 1741944Svbart@nginx.combundles in a listener if the client did not use SNI. 1751907Smax.romanov@nginx.com</para> 1761907Smax.romanov@nginx.com</change> 1771907Smax.romanov@nginx.com 1781907Smax.romanov@nginx.com<change type="bugfix"> 1791907Smax.romanov@nginx.com<para> 1801950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application 1811915Smax.romanov@nginx.comreconfiguration. 1821915Smax.romanov@nginx.com</para> 1831915Smax.romanov@nginx.com</change> 1841915Smax.romanov@nginx.com 1851915Smax.romanov@nginx.com<change type="bugfix"> 1861915Smax.romanov@nginx.com<para> 1871944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette 1881944Svbart@nginx.comframework. 1891944Svbart@nginx.com</para> 1901944Svbart@nginx.com</change> 1911944Svbart@nginx.com 1921944Svbart@nginx.com<change type="bugfix"> 1931944Svbart@nginx.com<para> 1941944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process 1951944Svbart@nginx.comstopped or crashed. 1961907Smax.romanov@nginx.com</para> 1971907Smax.romanov@nginx.com</change> 1981907Smax.romanov@nginx.com 1991909So.canty@f5.com<change type="bugfix"> 2001909So.canty@f5.com<para> 2011909So.canty@f5.comthe controller or router process could crash if the configuration contained 2021909So.canty@f5.coma full-form IPv6 in a listener address. 2031909So.canty@f5.com</para> 2041909So.canty@f5.com</change> 2051909So.canty@f5.com 2061916Smax.romanov@nginx.com<change type="bugfix"> 2071916Smax.romanov@nginx.com<para> 2081929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes" 2091929Sz.hong@f5.comor "upstreams" using a variable "pass" option. 2101929Sz.hong@f5.com</para> 2111929Sz.hong@f5.com</change> 2121929Sz.hong@f5.com 2131930So.canty@f5.com<change type="bugfix"> 2141930So.canty@f5.com<para> 2151944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source 2161944Svbart@nginx.comor destination address patterns. 2171930So.canty@f5.com</para> 2181930So.canty@f5.com</change> 2191930So.canty@f5.com 2201896Svbart@nginx.com</changes> 2211896Svbart@nginx.com 2221896Svbart@nginx.com 2231887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1" 2241891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 2251887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2261887Sdefan@nginx.com 2271887Sdefan@nginx.com<change> 2281887Sdefan@nginx.com<para> 2291887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit. 2301887Sdefan@nginx.com</para> 2311887Sdefan@nginx.com</change> 2321887Sdefan@nginx.com 2331887Sdefan@nginx.com</changes> 2341887Sdefan@nginx.com 2351887Sdefan@nginx.com 2361887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1" 2371891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 2381887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2391887Sdefan@nginx.com 2401887Sdefan@nginx.com<change> 2411887Sdefan@nginx.com<para> 2421887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit. 2431887Sdefan@nginx.com</para> 2441887Sdefan@nginx.com</change> 2451887Sdefan@nginx.com 2461887Sdefan@nginx.com</changes> 2471887Sdefan@nginx.com 2481887Sdefan@nginx.com 2491834Svbart@nginx.com<changes apply="unit-php 2501834Svbart@nginx.com unit-python unit-python2.7 2511834Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 2521834Svbart@nginx.com unit-python3.8 unit-python3.9 2531834Svbart@nginx.com unit-go 2541834Svbart@nginx.com unit-perl 2551834Svbart@nginx.com unit-ruby 2561834Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 2571834Svbart@nginx.com unit-jsc14 unit-jsc15" 2581839Svbart@nginx.com ver="1.24.0" rev="1" 2591891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 2601839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2611839Svbart@nginx.com 2621839Svbart@nginx.com<change> 2631839Svbart@nginx.com<para> 2641839Svbart@nginx.comNGINX Unit updated to 1.24.0. 2651839Svbart@nginx.com</para> 2661839Svbart@nginx.com</change> 2671839Svbart@nginx.com 2681839Svbart@nginx.com</changes> 2691839Svbart@nginx.com 2701839Svbart@nginx.com 2711839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1" 2721891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 2731839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2741839Svbart@nginx.com 2751882So.canty@f5.com<change type="change"> 2761882So.canty@f5.com<para> 2771882So.canty@f5.comPHP added to the default MIME type list. 2781882So.canty@f5.com</para> 2791882So.canty@f5.com</change> 2801882So.canty@f5.com 2811855Sz.hong@f5.com<change type="feature"> 2821855Sz.hong@f5.com<para> 2831885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands. 2841885Sa.suvorov@f5.com</para> 2851885Sa.suvorov@f5.com</change> 2861885Sa.suvorov@f5.com 2871885Sa.suvorov@f5.com<change type="feature"> 2881885Sa.suvorov@f5.com<para> 2891890Svbart@nginx.comthe ability to limit static file serving by MIME types. 2901890Svbart@nginx.com</para> 2911890Svbart@nginx.com</change> 2921890Svbart@nginx.com 2931890Svbart@nginx.com<change type="feature"> 2941890Svbart@nginx.com<para> 2951890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount 2961890Svbart@nginx.compoint traversal on a per-request basis when serving static files. 2971872So.canty@f5.com</para> 2981872So.canty@f5.com</change> 2991872So.canty@f5.com 3001872So.canty@f5.com<change type="feature"> 3011872So.canty@f5.com<para> 3021889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in 3031889Sartem.konev@nginx.comNode.js. 3041865So.canty@f5.com</para> 3051865So.canty@f5.com</change> 3061865So.canty@f5.com 3071865So.canty@f5.com<change type="feature"> 3081865So.canty@f5.com<para> 3091890Svbart@nginx.commultiple "targets" in Python applications. 3101855Sz.hong@f5.com</para> 3111855Sz.hong@f5.com</change> 3121855Sz.hong@f5.com 3131870So.canty@f5.com<change type="feature"> 3141870So.canty@f5.com<para> 3151870So.canty@f5.comcompatibility with Ruby 3.0. 3161870So.canty@f5.com</para> 3171870So.canty@f5.com</change> 3181870So.canty@f5.com 3191861Svbart@nginx.com<change type="bugfix"> 3201861Svbart@nginx.com<para> 3211889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection. 3221884Sa.suvorov@f5.com</para> 3231884Sa.suvorov@f5.com</change> 3241884Sa.suvorov@f5.com 3251884Sa.suvorov@f5.com<change type="bugfix"> 3261884Sa.suvorov@f5.com<para> 3271861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if 3281861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled. 3291861Svbart@nginx.com</para> 3301861Svbart@nginx.com</change> 3311861Svbart@nginx.com 3321839Svbart@nginx.com</changes> 3331839Svbart@nginx.com 3341839Svbart@nginx.com 3351839Svbart@nginx.com<changes apply="unit-php 3361839Svbart@nginx.com unit-python unit-python2.7 3371839Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 3381839Svbart@nginx.com unit-python3.8 unit-python3.9 3391839Svbart@nginx.com unit-go 3401839Svbart@nginx.com unit-perl 3411839Svbart@nginx.com unit-ruby 3421839Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 3431839Svbart@nginx.com unit-jsc14 unit-jsc15" 3441834Svbart@nginx.com ver="1.23.0" rev="1" 3451834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 3461834Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3471834Svbart@nginx.com 3481834Svbart@nginx.com<change> 3491834Svbart@nginx.com<para> 3501834Svbart@nginx.comNGINX Unit updated to 1.23.0. 3511834Svbart@nginx.com</para> 3521834Svbart@nginx.com</change> 3531834Svbart@nginx.com 3541834Svbart@nginx.com</changes> 3551834Svbart@nginx.com 3561834Svbart@nginx.com 3571806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1" 3581834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 3591806Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3601806Svbart@nginx.com 3611825Sthresh@nginx.com<change type="feature"> 3621825Sthresh@nginx.com<para> 3631833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name 3641828Sa.suvorov@f5.comIndication (SNI) TLS extension. 3651828Sa.suvorov@f5.com</para> 3661828Sa.suvorov@f5.com</change> 3671828Sa.suvorov@f5.com 3681828Sa.suvorov@f5.com<change type="feature"> 3691828Sa.suvorov@f5.com<para> 3701833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page 3711833Sartem.konev@nginx.cominstallation. 3721825Sthresh@nginx.com</para> 3731825Sthresh@nginx.com</change> 3741825Sthresh@nginx.com 3751811Smax.romanov@nginx.com<change type="bugfix"> 3761811Smax.romanov@nginx.com<para> 3771812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had 3781812Svbart@nginx.comappeared in 1.17.0. 3791812Svbart@nginx.com</para> 3801812Svbart@nginx.com</change> 3811812Svbart@nginx.com 3821812Svbart@nginx.com<change type="bugfix"> 3831812Svbart@nginx.com<para> 3841833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had 3851812Svbart@nginx.comappeared in 1.6. 3861812Svbart@nginx.com</para> 3871812Svbart@nginx.com</change> 3881812Svbart@nginx.com 3891812Svbart@nginx.com<change type="bugfix"> 3901812Svbart@nginx.com<para> 3911833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing 3921832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0. 3931832Smax.romanov@nginx.com</para> 3941832Smax.romanov@nginx.com</change> 3951832Smax.romanov@nginx.com 3961832Smax.romanov@nginx.com<change type="bugfix"> 3971832Smax.romanov@nginx.com<para> 3981833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or 3991811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0. 4001811Smax.romanov@nginx.com</para> 4011811Smax.romanov@nginx.com</change> 4021806Svbart@nginx.com 4031813Svbart@nginx.com<change type="bugfix"> 4041813Svbart@nginx.com<para> 4051813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in 4061813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart. 4071813Svbart@nginx.com</para> 4081813Svbart@nginx.com</change> 4091813Svbart@nginx.com 4101814Svbart@nginx.com<change type="bugfix"> 4111814Svbart@nginx.com<para> 4121820Svbart@nginx.comthe controller process could crash while requesting information about a 4131820Svbart@nginx.comcertificate with a non-DNS SAN entry. 4141820Svbart@nginx.com</para> 4151820Svbart@nginx.com</change> 4161820Svbart@nginx.com 4171820Svbart@nginx.com<change type="bugfix"> 4181820Svbart@nginx.com<para> 4191822Svbart@nginx.comthe controller process could crash on manipulations with a certificate 4201833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer. 4211822Svbart@nginx.com</para> 4221822Svbart@nginx.com</change> 4231822Svbart@nginx.com 4241822Svbart@nginx.com<change type="bugfix"> 4251822Svbart@nginx.com<para> 4261833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding 4271833Sartem.konev@nginx.comclass. 4281814Svbart@nginx.com</para> 4291814Svbart@nginx.com</change> 4301814Svbart@nginx.com 4311815Svbart@nginx.com<change type="bugfix"> 4321815Svbart@nginx.com<para> 4331815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had 4341815Svbart@nginx.comappeared in 1.22.0. 4351815Svbart@nginx.com</para> 4361815Svbart@nginx.com</change> 4371815Svbart@nginx.com 4381806Svbart@nginx.com</changes> 4391806Svbart@nginx.com 4401806Svbart@nginx.com 4411798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1" 4421798Sdefan@nginx.com date="2021-02-04" time="18:00:00 +0300" 4431798Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4441798Sdefan@nginx.com 4451798Sdefan@nginx.com<change> 4461798Sdefan@nginx.com<para> 4471798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit. 4481798Sdefan@nginx.com</para> 4491798Sdefan@nginx.com</change> 4501798Sdefan@nginx.com 4511798Sdefan@nginx.com</changes> 4521798Sdefan@nginx.com 4531798Sdefan@nginx.com 4541763Sdefan@nginx.com<changes apply="unit-php 4551763Sdefan@nginx.com unit-python unit-python2.7 4561763Sdefan@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 4571763Sdefan@nginx.com unit-python3.8 4581763Sdefan@nginx.com unit-go 4591763Sdefan@nginx.com unit-perl 4601763Sdefan@nginx.com unit-ruby 4611763Sdefan@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 4621763Sdefan@nginx.com unit-jsc14 unit-jsc15" 4631763Sdefan@nginx.com ver="1.22.0" rev="1" 4641793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 4651763Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4661763Sdefan@nginx.com 4671763Sdefan@nginx.com<change> 4681763Sdefan@nginx.com<para> 4691763Sdefan@nginx.comNGINX Unit updated to 1.22.0. 4701763Sdefan@nginx.com</para> 4711763Sdefan@nginx.com</change> 4721763Sdefan@nginx.com 4731763Sdefan@nginx.com</changes> 4741763Sdefan@nginx.com 4751763Sdefan@nginx.com 4761727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1" 4771793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 4781727Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4791727Svbart@nginx.com 4801759Svbart@nginx.com<change type="feature"> 4811759Svbart@nginx.com<para> 4821792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now 4831792Svbart@nginx.comcompliant with Stream API. 4841759Svbart@nginx.com</para> 4851759Svbart@nginx.com</change> 4861759Svbart@nginx.com 4871766Smax.romanov@nginx.com<change type="feature"> 4881766Smax.romanov@nginx.com<para> 4891792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python 4901792Svbart@nginx.comapps. 4911732Svbart@nginx.com</para> 4921732Svbart@nginx.com</change> 4931732Svbart@nginx.com 4941733Svbart@nginx.com<change type="bugfix"> 4951733Svbart@nginx.com<para> 4961792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than 4971792Svbart@nginx.com128K; the bug had appeared in 1.13.0. 4981754Smax.romanov@nginx.com</para> 4991754Smax.romanov@nginx.com</change> 5001754Smax.romanov@nginx.com 5011755Smax.romanov@nginx.com<change type="bugfix"> 5021755Smax.romanov@nginx.com<para> 5031790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had 5041755Smax.romanov@nginx.comappeared in 1.19.0. 5051755Smax.romanov@nginx.com</para> 5061755Smax.romanov@nginx.com</change> 5071755Smax.romanov@nginx.com 5081756Smax.romanov@nginx.com<change type="bugfix"> 5091756Smax.romanov@nginx.com<para> 5101790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had 5111790Sartem.konev@nginx.comappeared in 1.19.0. 5121756Smax.romanov@nginx.com</para> 5131756Smax.romanov@nginx.com</change> 5141756Smax.romanov@nginx.com 5151760Smax.romanov@nginx.com<change type="bugfix"> 5161760Smax.romanov@nginx.com<para> 5171792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes. 5181792Svbart@nginx.com</para> 5191792Svbart@nginx.com</change> 5201792Svbart@nginx.com 5211792Svbart@nginx.com<change type="bugfix"> 5221792Svbart@nginx.com<para> 5231792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were 5241792Svbart@nginx.commissing in the PHP module. 5251792Svbart@nginx.com</para> 5261792Svbart@nginx.com</change> 5271792Svbart@nginx.com 5281792Svbart@nginx.com<change type="bugfix"> 5291792Svbart@nginx.com<para> 5301792Svbart@nginx.comthe router process could crash with multithreaded apps under high load. 5311792Svbart@nginx.com</para> 5321792Svbart@nginx.com</change> 5331792Svbart@nginx.com 5341792Svbart@nginx.com<change type="bugfix"> 5351792Svbart@nginx.com<para> 5361792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load. 5371792Svbart@nginx.com</para> 5381792Svbart@nginx.com</change> 5391792Svbart@nginx.com 5401792Svbart@nginx.com<change type="bugfix"> 5411792Svbart@nginx.com<para> 5421792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used; 5431792Svbart@nginx.comthe bug had appeared in 1.21.0. 5441760Smax.romanov@nginx.com</para> 5451760Smax.romanov@nginx.com</change> 5461760Smax.romanov@nginx.com 5471780Smax.romanov@nginx.com<change type="bugfix"> 5481780Smax.romanov@nginx.com<para> 5491790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used 5501790Sartem.konev@nginx.comWebSocket. 5511780Smax.romanov@nginx.com</para> 5521780Smax.romanov@nginx.com</change> 5531780Smax.romanov@nginx.com 5541789Smax.romanov@nginx.com<change type="bugfix"> 5551789Smax.romanov@nginx.com<para> 5561789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring 5571789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0. 5581789Smax.romanov@nginx.com</para> 5591789Smax.romanov@nginx.com</change> 5601789Smax.romanov@nginx.com 5611727Svbart@nginx.com</changes> 5621727Svbart@nginx.com 5631727Svbart@nginx.com 5641722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1" 5651722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 5661722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5671722Svbart@nginx.com 5681722Svbart@nginx.com<change> 5691722Svbart@nginx.com<para> 5701722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit. 5711722Svbart@nginx.com</para> 5721722Svbart@nginx.com</change> 5731722Svbart@nginx.com 5741722Svbart@nginx.com</changes> 5751722Svbart@nginx.com 5761722Svbart@nginx.com 5771722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1" 5781722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 5791722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5801722Svbart@nginx.com 5811722Svbart@nginx.com<change> 5821722Svbart@nginx.com<para> 5831722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit. 5841722Svbart@nginx.com</para> 5851722Svbart@nginx.com</change> 5861722Svbart@nginx.com 5871722Svbart@nginx.com</changes> 5881722Svbart@nginx.com 5891722Svbart@nginx.com 5901722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1" 5911722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 5921722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5931722Svbart@nginx.com 5941722Svbart@nginx.com<change> 5951722Svbart@nginx.com<para> 5961722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit. 5971722Svbart@nginx.com</para> 5981722Svbart@nginx.com</change> 5991722Svbart@nginx.com 6001722Svbart@nginx.com</changes> 6011722Svbart@nginx.com 6021722Svbart@nginx.com 6031722Svbart@nginx.com<changes apply="unit-php 6041722Svbart@nginx.com unit-python unit-python2.7 6051722Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 6061722Svbart@nginx.com unit-python3.8 6071722Svbart@nginx.com unit-go 6081722Svbart@nginx.com unit-perl 6091722Svbart@nginx.com unit-ruby 6101722Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 6111722Svbart@nginx.com ver="1.21.0" rev="1" 6121722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 6131722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6141722Svbart@nginx.com 6151722Svbart@nginx.com<change> 6161722Svbart@nginx.com<para> 6171722Svbart@nginx.comNGINX Unit updated to 1.21.0. 6181722Svbart@nginx.com</para> 6191722Svbart@nginx.com</change> 6201722Svbart@nginx.com 6211722Svbart@nginx.com</changes> 6221722Svbart@nginx.com 6231722Svbart@nginx.com 6241722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1" 6251722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 6261722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6271722Svbart@nginx.com 6281722Svbart@nginx.com<change type="change"> 6291722Svbart@nginx.com<para> 6301722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used. 6311722Svbart@nginx.com</para> 6321722Svbart@nginx.com</change> 6331722Svbart@nginx.com 6341722Svbart@nginx.com<change type="change"> 6351722Svbart@nginx.com<para> 6361722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field 6371722Svbart@nginx.comnames. 6381722Svbart@nginx.com</para> 6391722Svbart@nginx.com</change> 6401722Svbart@nginx.com 6411722Svbart@nginx.com<change type="change"> 6421722Svbart@nginx.com<para> 6431722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by 6441722Svbart@nginx.comdefault. 6451722Svbart@nginx.com</para> 6461722Svbart@nginx.com</change> 6471722Svbart@nginx.com 6481722Svbart@nginx.com<change type="feature"> 6491722Svbart@nginx.com<para> 6501722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps. 6511722Svbart@nginx.com</para> 6521722Svbart@nginx.com</change> 6531722Svbart@nginx.com 6541722Svbart@nginx.com<change type="feature"> 6551722Svbart@nginx.com<para> 6561722Svbart@nginx.comregular expressions in route matching patterns. 6571722Svbart@nginx.com</para> 6581722Svbart@nginx.com</change> 6591722Svbart@nginx.com 6601722Svbart@nginx.com<change type="feature"> 6611722Svbart@nginx.com<para> 6621722Svbart@nginx.comcompatibility with Python 3.9. 6631722Svbart@nginx.com</para> 6641722Svbart@nginx.com</change> 6651722Svbart@nginx.com 6661722Svbart@nginx.com<change type="feature"> 6671722Svbart@nginx.com<para> 6681722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications. 6691722Svbart@nginx.com</para> 6701722Svbart@nginx.com</change> 6711722Svbart@nginx.com 6721722Svbart@nginx.com<change type="feature"> 6731722Svbart@nginx.com<para> 6741722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI. 6751722Svbart@nginx.com</para> 6761722Svbart@nginx.com</change> 6771722Svbart@nginx.com 6781722Svbart@nginx.com<change type="feature"> 6791722Svbart@nginx.com<para> 6801722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and 6811722Svbart@nginx.comcontinues code execution without holding onto the client connection. 6821722Svbart@nginx.com</para> 6831722Svbart@nginx.com</change> 6841722Svbart@nginx.com 6851722Svbart@nginx.com<change type="feature"> 6861722Svbart@nginx.com<para> 6871722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header 6881722Svbart@nginx.comfields with irregular (but still valid) characters in the field name. 6891722Svbart@nginx.com</para> 6901722Svbart@nginx.com</change> 6911722Svbart@nginx.com 6921722Svbart@nginx.com<change type="feature"> 6931722Svbart@nginx.com<para> 6941722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic 6951722Svbart@nginx.commounting of eponymous filesystems. 6961722Svbart@nginx.com</para> 6971722Svbart@nginx.com</change> 6981722Svbart@nginx.com 6991722Svbart@nginx.com<change type="bugfix"> 7001722Svbart@nginx.com<para> 7011722Svbart@nginx.comthe router process could crash when running Go applications under high load; 7021722Svbart@nginx.comthe bug had appeared in 1.19.0. 7031722Svbart@nginx.com</para> 7041722Svbart@nginx.com</change> 7051722Svbart@nginx.com 7061722Svbart@nginx.com<change type="bugfix"> 7071722Svbart@nginx.com<para> 7081722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation. 7091722Svbart@nginx.com</para> 7101722Svbart@nginx.com</change> 7111722Svbart@nginx.com 7121722Svbart@nginx.com<change type="bugfix"> 7131722Svbart@nginx.com<para> 7141722Svbart@nginx.comvarious compatibility issues in Java applications. 7151722Svbart@nginx.com</para> 7161722Svbart@nginx.com</change> 7171722Svbart@nginx.com 7181722Svbart@nginx.com<change type="bugfix"> 7191722Svbart@nginx.com<para> 7201722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that 7211722Svbart@nginx.comuse "rootfs" isolation. 7221722Svbart@nginx.com</para> 7231722Svbart@nginx.com</change> 7241722Svbart@nginx.com 7251722Svbart@nginx.com</changes> 7261722Svbart@nginx.com 7271722Svbart@nginx.com 7281330Svbart@nginx.com<changes apply="unit-php 7291330Svbart@nginx.com unit-python unit-python2.7 7301330Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 7311330Svbart@nginx.com unit-python3.8 7321330Svbart@nginx.com unit-go 7331330Svbart@nginx.com unit-perl 7341330Svbart@nginx.com unit-ruby 7351330Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 7361640Svbart@nginx.com ver="1.20.0" rev="1" 7371640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 7381640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7391640Svbart@nginx.com 7401640Svbart@nginx.com<change> 7411640Svbart@nginx.com<para> 7421640Svbart@nginx.comNGINX Unit updated to 1.20.0. 7431640Svbart@nginx.com</para> 7441640Svbart@nginx.com</change> 7451640Svbart@nginx.com 7461640Svbart@nginx.com</changes> 7471640Svbart@nginx.com 7481640Svbart@nginx.com 7491640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1" 7501640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 7511640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7521640Svbart@nginx.com 7531640Svbart@nginx.com<change type="change"> 7541640Svbart@nginx.com<para> 7551640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all 7561640Svbart@nginx.comextensions from the host system. 7571640Svbart@nginx.com</para> 7581640Svbart@nginx.com</change> 7591640Svbart@nginx.com 7601640Svbart@nginx.com<change type="change"> 7611640Svbart@nginx.com<para> 7621640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list. 7631640Svbart@nginx.com</para> 7641640Svbart@nginx.com</change> 7651640Svbart@nginx.com 7661643Svbart@nginx.com<change type="change"> 7671643Svbart@nginx.com<para> 7681643Svbart@nginx.comfunctional tests migrated to the pytest framework. 7691643Svbart@nginx.com</para> 7701643Svbart@nginx.com</change> 7711643Svbart@nginx.com 7721640Svbart@nginx.com<change type="feature"> 7731640Svbart@nginx.com<para> 7741640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server 7751640Svbart@nginx.cominterface. 7761640Svbart@nginx.com</para> 7771640Svbart@nginx.com</change> 7781640Svbart@nginx.com 7791640Svbart@nginx.com<change type="feature"> 7801640Svbart@nginx.com<para> 7811640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for 7821640Svbart@nginx.comapplications, compatible with the HTTP & WebSocket ASGI Message Format 2.1 7831640Svbart@nginx.comspecification. 7841640Svbart@nginx.com</para> 7851640Svbart@nginx.com</change> 7861640Svbart@nginx.com 7871640Svbart@nginx.com<change type="feature"> 7881640Svbart@nginx.com<para> 7891640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application 7901640Svbart@nginx.comenvironments. 7911640Svbart@nginx.com</para> 7921640Svbart@nginx.com</change> 7931640Svbart@nginx.com 7941640Svbart@nginx.com<change type="feature"> 7951640Svbart@nginx.com<para> 7961640Svbart@nginx.comthe $host variable contains a normalized "Host" request value. 7971640Svbart@nginx.com</para> 7981640Svbart@nginx.com</change> 7991640Svbart@nginx.com 8001640Svbart@nginx.com<change type="feature"> 8011640Svbart@nginx.com<para> 8021640Svbart@nginx.comthe "callable" option sets Python application callable names. 8031640Svbart@nginx.com</para> 8041640Svbart@nginx.com</change> 8051640Svbart@nginx.com 8061640Svbart@nginx.com<change type="feature"> 8071640Svbart@nginx.com<para> 8081640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet. 8091640Svbart@nginx.com</para> 8101640Svbart@nginx.com</change> 8111640Svbart@nginx.com 8121640Svbart@nginx.com<change type="feature"> 8131640Svbart@nginx.com<para> 8141640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the 8151640Svbart@nginx.comautomatic mounting of language module dependencies. 8161640Svbart@nginx.com</para> 8171640Svbart@nginx.com</change> 8181640Svbart@nginx.com 8191640Svbart@nginx.com<change type="bugfix"> 8201640Svbart@nginx.com<para> 8211640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared 8221640Svbart@nginx.comin 1.19.0. Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it. 8231640Svbart@nginx.com</para> 8241640Svbart@nginx.com</change> 8251640Svbart@nginx.com 8261640Svbart@nginx.com<change type="bugfix"> 8271640Svbart@nginx.com<para> 8281640Svbart@nginx.comthe router process could crash during reconfiguration. 8291640Svbart@nginx.com</para> 8301640Svbart@nginx.com</change> 8311640Svbart@nginx.com 8321640Svbart@nginx.com<change type="bugfix"> 8331640Svbart@nginx.com<para> 8341640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0. 8351640Svbart@nginx.com</para> 8361640Svbart@nginx.com</change> 8371640Svbart@nginx.com 8381640Svbart@nginx.com<change type="bugfix"> 8391640Svbart@nginx.com<para> 8401640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly; 8411640Svbart@nginx.comthe bug had appeared in 1.19.0. 8421640Svbart@nginx.com</para> 8431640Svbart@nginx.com</change> 8441640Svbart@nginx.com 8451640Svbart@nginx.com<change type="bugfix"> 8461640Svbart@nginx.com<para> 8471640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD; 8481640Svbart@nginx.comthe bug had appeared in 1.16.0. 8491640Svbart@nginx.com</para> 8501640Svbart@nginx.com</change> 8511640Svbart@nginx.com 8521640Svbart@nginx.com</changes> 8531640Svbart@nginx.com 8541640Svbart@nginx.com 8551640Svbart@nginx.com<changes apply="unit-php 8561640Svbart@nginx.com unit-python unit-python2.7 8571640Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 8581640Svbart@nginx.com unit-python3.8 8591640Svbart@nginx.com unit-go 8601640Svbart@nginx.com unit-perl 8611640Svbart@nginx.com unit-ruby 8621640Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 8631570Svbart@nginx.com ver="1.19.0" rev="1" 8641570Svbart@nginx.com date="2020-08-13" time="18:00:00 +0300" 8651570Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8661570Svbart@nginx.com 8671570Svbart@nginx.com<change> 8681570Svbart@nginx.com<para> 8691570Svbart@nginx.comNGINX Unit updated to 1.19.0. 8701570Svbart@nginx.com</para> 8711570Svbart@nginx.com</change> 8721570Svbart@nginx.com 8731570Svbart@nginx.com</changes> 8741570Svbart@nginx.com 8751570Svbart@nginx.com 8761570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1" 8771570Svbart@nginx.com date="2020-08-13" time="18:00:00 +0300" 8781570Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8791570Svbart@nginx.com 8801570Svbart@nginx.com<change type="feature"> 8811570Svbart@nginx.com<para> 8821570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies, 8831570Svbart@nginx.comincrease performance, and improve scalability. 8841570Svbart@nginx.com</para> 8851570Svbart@nginx.com</change> 8861570Svbart@nginx.com 8871570Svbart@nginx.com<change type="feature"> 8881570Svbart@nginx.com<para> 8891570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns. 8901570Svbart@nginx.com</para> 8911570Svbart@nginx.com</change> 8921570Svbart@nginx.com 8931570Svbart@nginx.com<change type="feature"> 8941570Svbart@nginx.com<para> 8951570Svbart@nginx.comchunked transfer encoding in proxy responses. 8961570Svbart@nginx.com</para> 8971570Svbart@nginx.com</change> 8981570Svbart@nginx.com 8991570Svbart@nginx.com<change type="feature"> 9001570Svbart@nginx.com<para> 9011570Svbart@nginx.combasic variables support in the "pass" option. 9021570Svbart@nginx.com</para> 9031570Svbart@nginx.com</change> 9041570Svbart@nginx.com 9051570Svbart@nginx.com<change type="feature"> 9061570Svbart@nginx.com<para> 9071570Svbart@nginx.comcompatibility with PHP 8 Beta 1. 9081570Svbart@nginx.comThanks to Remi Collet. 9091570Svbart@nginx.com</para> 9101570Svbart@nginx.com</change> 9111570Svbart@nginx.com 9121570Svbart@nginx.com<change type="bugfix"> 9131570Svbart@nginx.com<para> 9141570Svbart@nginx.comthe router process could crash while passing requests to an application under 9151570Svbart@nginx.comhigh load. 9161570Svbart@nginx.com</para> 9171570Svbart@nginx.com</change> 9181570Svbart@nginx.com 9191570Svbart@nginx.com<change type="bugfix"> 9201570Svbart@nginx.com<para> 9211570Svbart@nginx.coma number of language modules failed to build on some systems; 9221570Svbart@nginx.comthe bug had appeared in 1.18.0. 9231570Svbart@nginx.com</para> 9241570Svbart@nginx.com</change> 9251570Svbart@nginx.com 9261570Svbart@nginx.com<change type="bugfix"> 9271570Svbart@nginx.com<para> 9281570Svbart@nginx.comtime in error log messages from PHP applications could lag. 9291570Svbart@nginx.com</para> 9301570Svbart@nginx.com</change> 9311570Svbart@nginx.com 9321570Svbart@nginx.com<change type="bugfix"> 9331570Svbart@nginx.com<para> 9341570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start; 9351570Svbart@nginx.comthe bug had appeared in 1.18.0. 9361570Svbart@nginx.com</para> 9371570Svbart@nginx.com</change> 9381570Svbart@nginx.com 9391570Svbart@nginx.com<change type="bugfix"> 9401570Svbart@nginx.com<para> 9411570Svbart@nginx.commemory leak during reconfiguration. 9421570Svbart@nginx.com</para> 9431570Svbart@nginx.com</change> 9441570Svbart@nginx.com 9451570Svbart@nginx.com<change type="bugfix"> 9461570Svbart@nginx.com<para> 9471570Svbart@nginx.comthe daemon didn't start without language modules; 9481570Svbart@nginx.comthe bug had appeared in 1.18.0. 9491570Svbart@nginx.com</para> 9501570Svbart@nginx.com</change> 9511570Svbart@nginx.com 9521570Svbart@nginx.com<change type="bugfix"> 9531570Svbart@nginx.com<para> 9541570Svbart@nginx.comthe router process could crash at exit. 9551570Svbart@nginx.com</para> 9561570Svbart@nginx.com</change> 9571570Svbart@nginx.com 9581570Svbart@nginx.com<change type="bugfix"> 9591570Svbart@nginx.com<para> 9601570Svbart@nginx.comNode.js applications could crash at exit. 9611570Svbart@nginx.com</para> 9621570Svbart@nginx.com</change> 9631570Svbart@nginx.com 9641570Svbart@nginx.com<change type="bugfix"> 9651570Svbart@nginx.com<para> 9661570Svbart@nginx.comthe Ruby module could be linked against a wrong library version. 9671570Svbart@nginx.com</para> 9681570Svbart@nginx.com</change> 9691570Svbart@nginx.com 9701570Svbart@nginx.com</changes> 9711570Svbart@nginx.com 9721570Svbart@nginx.com 9731570Svbart@nginx.com<changes apply="unit-php 9741570Svbart@nginx.com unit-python unit-python2.7 9751570Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 9761570Svbart@nginx.com unit-python3.8 9771570Svbart@nginx.com unit-go 9781570Svbart@nginx.com unit-perl 9791570Svbart@nginx.com unit-ruby 9801570Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 9811491Svbart@nginx.com ver="1.18.0" rev="1" 9821491Svbart@nginx.com date="2020-05-28" time="18:00:00 +0300" 9831491Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9841491Svbart@nginx.com 9851491Svbart@nginx.com<change> 9861491Svbart@nginx.com<para> 9871491Svbart@nginx.comNGINX Unit updated to 1.18.0. 9881491Svbart@nginx.com</para> 9891491Svbart@nginx.com</change> 9901491Svbart@nginx.com 9911491Svbart@nginx.com</changes> 9921491Svbart@nginx.com 9931491Svbart@nginx.com 9941491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1" 9951491Svbart@nginx.com date="2020-05-28" time="18:00:00 +0300" 9961491Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9971491Svbart@nginx.com 9981491Svbart@nginx.com<change type="feature"> 9991491Svbart@nginx.com<para> 10001491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application. 10011491Svbart@nginx.com</para> 10021491Svbart@nginx.com</change> 10031491Svbart@nginx.com 10041491Svbart@nginx.com<change type="feature"> 10051491Svbart@nginx.com<para> 10061491Svbart@nginx.commultiple "targets" in PHP applications. 10071491Svbart@nginx.com</para> 10081491Svbart@nginx.com</change> 10091491Svbart@nginx.com 10101491Svbart@nginx.com<change type="feature"> 10111491Svbart@nginx.com<para> 10121491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options 10131491Svbart@nginx.comand in the "pass" option. 10141491Svbart@nginx.com</para> 10151491Svbart@nginx.com</change> 10161491Svbart@nginx.com 10171491Svbart@nginx.com</changes> 10181491Svbart@nginx.com 10191491Svbart@nginx.com 10201491Svbart@nginx.com<changes apply="unit-php 10211491Svbart@nginx.com unit-python unit-python2.7 10221491Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 10231491Svbart@nginx.com unit-python3.8 10241491Svbart@nginx.com unit-go 10251491Svbart@nginx.com unit-perl 10261491Svbart@nginx.com unit-ruby 10271491Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 10281460Svbart@nginx.com ver="1.17.0" rev="1" 10291460Svbart@nginx.com date="2020-04-16" time="18:00:00 +0300" 10301460Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10311460Svbart@nginx.com 10321460Svbart@nginx.com<change> 10331460Svbart@nginx.com<para> 10341460Svbart@nginx.comNGINX Unit updated to 1.17.0. 10351460Svbart@nginx.com</para> 10361460Svbart@nginx.com</change> 10371460Svbart@nginx.com 10381460Svbart@nginx.com</changes> 10391460Svbart@nginx.com 10401460Svbart@nginx.com 10411460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1" 10421460Svbart@nginx.com date="2020-04-16" time="18:00:00 +0300" 10431460Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10441460Svbart@nginx.com 10451460Svbart@nginx.com<change type="feature"> 10461460Svbart@nginx.com<para> 10471460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external 10481460Svbart@nginx.comredirection. 10491460Svbart@nginx.com</para> 10501460Svbart@nginx.com</change> 10511460Svbart@nginx.com 10521460Svbart@nginx.com<change type="feature"> 10531460Svbart@nginx.com<para> 10541460Svbart@nginx.comfractional weights support for upstream servers. 10551460Svbart@nginx.com</para> 10561460Svbart@nginx.com</change> 10571460Svbart@nginx.com 10581460Svbart@nginx.com<change type="bugfix"> 10591460Svbart@nginx.com<para> 10601460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under 10611460Svbart@nginx.comhigh load. 10621460Svbart@nginx.com</para> 10631460Svbart@nginx.com</change> 10641460Svbart@nginx.com 10651460Svbart@nginx.com<change type="bugfix"> 10661460Svbart@nginx.com<para> 10671460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0. 10681460Svbart@nginx.com</para> 10691460Svbart@nginx.com</change> 10701460Svbart@nginx.com 10711460Svbart@nginx.com<change type="bugfix"> 10721460Svbart@nginx.com<para> 10731460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching 10741460Svbart@nginx.comopen connections limit. 10751460Svbart@nginx.com</para> 10761460Svbart@nginx.com</change> 10771460Svbart@nginx.com 10781460Svbart@nginx.com<change type="bugfix"> 10791460Svbart@nginx.com<para> 10801460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log 10811460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0. 10821460Svbart@nginx.com</para> 10831460Svbart@nginx.com</change> 10841460Svbart@nginx.com 10851460Svbart@nginx.com<change type="bugfix"> 10861460Svbart@nginx.com<para> 10871460Svbart@nginx.comexisting application processes didn't reopen the log file. 10881460Svbart@nginx.com</para> 10891460Svbart@nginx.com</change> 10901460Svbart@nginx.com 10911460Svbart@nginx.com<change type="bugfix"> 10921460Svbart@nginx.com<para> 10931460Svbart@nginx.comincompatibility with some Node.js applications. 10941460Svbart@nginx.com</para> 10951460Svbart@nginx.com</change> 10961460Svbart@nginx.com 10971460Svbart@nginx.com<change type="bugfix"> 10981460Svbart@nginx.com<para> 10991460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0. 11001460Svbart@nginx.com</para> 11011460Svbart@nginx.com</change> 11021460Svbart@nginx.com 11031460Svbart@nginx.com</changes> 11041460Svbart@nginx.com 11051460Svbart@nginx.com 11061460Svbart@nginx.com<changes apply="unit-php 11071460Svbart@nginx.com unit-python unit-python2.7 11081460Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 11091460Svbart@nginx.com unit-python3.8 11101460Svbart@nginx.com unit-go 11111460Svbart@nginx.com unit-perl 11121460Svbart@nginx.com unit-ruby 11131460Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 11141404Svbart@nginx.com ver="1.16.0" rev="1" 11151404Svbart@nginx.com date="2020-03-12" time="18:00:00 +0300" 11161404Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11171404Svbart@nginx.com 11181404Svbart@nginx.com<change> 11191404Svbart@nginx.com<para> 11201404Svbart@nginx.comNGINX Unit updated to 1.16.0. 11211404Svbart@nginx.com</para> 11221404Svbart@nginx.com</change> 11231404Svbart@nginx.com 11241404Svbart@nginx.com</changes> 11251404Svbart@nginx.com 11261404Svbart@nginx.com 11271404Svbart@nginx.com<changes apply="unit" ver="1.16.0" rev="1" 11281404Svbart@nginx.com date="2020-03-12" time="18:00:00 +0300" 11291404Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11301404Svbart@nginx.com 11311404Svbart@nginx.com<change type="feature"> 11321404Svbart@nginx.com<para> 11331404Svbart@nginx.combasic load-balancing support with round-robin. 11341404Svbart@nginx.com</para> 11351404Svbart@nginx.com</change> 11361404Svbart@nginx.com 11371404Svbart@nginx.com<change type="feature"> 11381404Svbart@nginx.com<para> 11391404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be 11401404Svbart@nginx.comserved from the "share" directory. 11411404Svbart@nginx.com</para> 11421404Svbart@nginx.com</change> 11431404Svbart@nginx.com 11441404Svbart@nginx.com<change type="feature"> 11451404Svbart@nginx.com<para> 11461404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk. 11471404Svbart@nginx.com</para> 11481404Svbart@nginx.com</change> 11491404Svbart@nginx.com 11501404Svbart@nginx.com<change type="feature"> 11511404Svbart@nginx.com<para> 11521404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON. 11531404Svbart@nginx.com</para> 11541404Svbart@nginx.com</change> 11551404Svbart@nginx.com 11561404Svbart@nginx.com<change type="bugfix"> 11571404Svbart@nginx.com<para> 11581404Svbart@nginx.comnegative address matching in router might work improperly in combination with 11591404Svbart@nginx.comnon-negative patterns. 11601404Svbart@nginx.com</para> 11611404Svbart@nginx.com</change> 11621404Svbart@nginx.com 11631404Svbart@nginx.com<change type="bugfix"> 11641404Svbart@nginx.com<para> 11651404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0. 11661404Svbart@nginx.com</para> 11671404Svbart@nginx.com</change> 11681404Svbart@nginx.com 11691404Svbart@nginx.com<change type="bugfix"> 11701404Svbart@nginx.com<para> 11711404Svbart@nginx.comPHP 7.4 was broken if it was built with thread safety enabled. 11721404Svbart@nginx.com</para> 11731404Svbart@nginx.com</change> 11741404Svbart@nginx.com 11751404Svbart@nginx.com<change type="bugfix"> 11761404Svbart@nginx.com<para> 11771404Svbart@nginx.comcompatibility issues with some Python applications. 11781404Svbart@nginx.com</para> 11791404Svbart@nginx.com</change> 11801404Svbart@nginx.com 11811404Svbart@nginx.com</changes> 11821404Svbart@nginx.com 11831404Svbart@nginx.com 11841404Svbart@nginx.com<changes apply="unit-php 1185