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 81887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1" 9*1891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 101887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 111887Sdefan@nginx.com 121887Sdefan@nginx.com<change> 131887Sdefan@nginx.com<para> 141887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit. 151887Sdefan@nginx.com</para> 161887Sdefan@nginx.com</change> 171887Sdefan@nginx.com 181887Sdefan@nginx.com</changes> 191887Sdefan@nginx.com 201887Sdefan@nginx.com 211887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1" 22*1891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 231887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 241887Sdefan@nginx.com 251887Sdefan@nginx.com<change> 261887Sdefan@nginx.com<para> 271887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit. 281887Sdefan@nginx.com</para> 291887Sdefan@nginx.com</change> 301887Sdefan@nginx.com 311887Sdefan@nginx.com</changes> 321887Sdefan@nginx.com 331887Sdefan@nginx.com 341834Svbart@nginx.com<changes apply="unit-php 351834Svbart@nginx.com unit-python unit-python2.7 361834Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 371834Svbart@nginx.com unit-python3.8 unit-python3.9 381834Svbart@nginx.com unit-go 391834Svbart@nginx.com unit-perl 401834Svbart@nginx.com unit-ruby 411834Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 421834Svbart@nginx.com unit-jsc14 unit-jsc15" 431839Svbart@nginx.com ver="1.24.0" rev="1" 44*1891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 451839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 461839Svbart@nginx.com 471839Svbart@nginx.com<change> 481839Svbart@nginx.com<para> 491839Svbart@nginx.comNGINX Unit updated to 1.24.0. 501839Svbart@nginx.com</para> 511839Svbart@nginx.com</change> 521839Svbart@nginx.com 531839Svbart@nginx.com</changes> 541839Svbart@nginx.com 551839Svbart@nginx.com 561839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1" 57*1891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 581839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 591839Svbart@nginx.com 601882So.canty@f5.com<change type="change"> 611882So.canty@f5.com<para> 621882So.canty@f5.comPHP added to the default MIME type list. 631882So.canty@f5.com</para> 641882So.canty@f5.com</change> 651882So.canty@f5.com 661855Sz.hong@f5.com<change type="feature"> 671855Sz.hong@f5.com<para> 681885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands. 691885Sa.suvorov@f5.com</para> 701885Sa.suvorov@f5.com</change> 711885Sa.suvorov@f5.com 721885Sa.suvorov@f5.com<change type="feature"> 731885Sa.suvorov@f5.com<para> 741890Svbart@nginx.comthe ability to limit static file serving by MIME types. 751890Svbart@nginx.com</para> 761890Svbart@nginx.com</change> 771890Svbart@nginx.com 781890Svbart@nginx.com<change type="feature"> 791890Svbart@nginx.com<para> 801890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount 811890Svbart@nginx.compoint traversal on a per-request basis when serving static files. 821872So.canty@f5.com</para> 831872So.canty@f5.com</change> 841872So.canty@f5.com 851872So.canty@f5.com<change type="feature"> 861872So.canty@f5.com<para> 871889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in 881889Sartem.konev@nginx.comNode.js. 891865So.canty@f5.com</para> 901865So.canty@f5.com</change> 911865So.canty@f5.com 921865So.canty@f5.com<change type="feature"> 931865So.canty@f5.com<para> 941890Svbart@nginx.commultiple "targets" in Python applications. 951855Sz.hong@f5.com</para> 961855Sz.hong@f5.com</change> 971855Sz.hong@f5.com 981870So.canty@f5.com<change type="feature"> 991870So.canty@f5.com<para> 1001870So.canty@f5.comcompatibility with Ruby 3.0. 1011870So.canty@f5.com</para> 1021870So.canty@f5.com</change> 1031870So.canty@f5.com 1041861Svbart@nginx.com<change type="bugfix"> 1051861Svbart@nginx.com<para> 1061889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection. 1071884Sa.suvorov@f5.com</para> 1081884Sa.suvorov@f5.com</change> 1091884Sa.suvorov@f5.com 1101884Sa.suvorov@f5.com<change type="bugfix"> 1111884Sa.suvorov@f5.com<para> 1121861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if 1131861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled. 1141861Svbart@nginx.com</para> 1151861Svbart@nginx.com</change> 1161861Svbart@nginx.com 1171839Svbart@nginx.com</changes> 1181839Svbart@nginx.com 1191839Svbart@nginx.com 1201839Svbart@nginx.com<changes apply="unit-php 1211839Svbart@nginx.com unit-python unit-python2.7 1221839Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 1231839Svbart@nginx.com unit-python3.8 unit-python3.9 1241839Svbart@nginx.com unit-go 1251839Svbart@nginx.com unit-perl 1261839Svbart@nginx.com unit-ruby 1271839Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 1281839Svbart@nginx.com unit-jsc14 unit-jsc15" 1291834Svbart@nginx.com ver="1.23.0" rev="1" 1301834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 1311834Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1321834Svbart@nginx.com 1331834Svbart@nginx.com<change> 1341834Svbart@nginx.com<para> 1351834Svbart@nginx.comNGINX Unit updated to 1.23.0. 1361834Svbart@nginx.com</para> 1371834Svbart@nginx.com</change> 1381834Svbart@nginx.com 1391834Svbart@nginx.com</changes> 1401834Svbart@nginx.com 1411834Svbart@nginx.com 1421806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1" 1431834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 1441806Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1451806Svbart@nginx.com 1461825Sthresh@nginx.com<change type="feature"> 1471825Sthresh@nginx.com<para> 1481833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name 1491828Sa.suvorov@f5.comIndication (SNI) TLS extension. 1501828Sa.suvorov@f5.com</para> 1511828Sa.suvorov@f5.com</change> 1521828Sa.suvorov@f5.com 1531828Sa.suvorov@f5.com<change type="feature"> 1541828Sa.suvorov@f5.com<para> 1551833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page 1561833Sartem.konev@nginx.cominstallation. 1571825Sthresh@nginx.com</para> 1581825Sthresh@nginx.com</change> 1591825Sthresh@nginx.com 1601811Smax.romanov@nginx.com<change type="bugfix"> 1611811Smax.romanov@nginx.com<para> 1621812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had 1631812Svbart@nginx.comappeared in 1.17.0. 1641812Svbart@nginx.com</para> 1651812Svbart@nginx.com</change> 1661812Svbart@nginx.com 1671812Svbart@nginx.com<change type="bugfix"> 1681812Svbart@nginx.com<para> 1691833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had 1701812Svbart@nginx.comappeared in 1.6. 1711812Svbart@nginx.com</para> 1721812Svbart@nginx.com</change> 1731812Svbart@nginx.com 1741812Svbart@nginx.com<change type="bugfix"> 1751812Svbart@nginx.com<para> 1761833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing 1771832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0. 1781832Smax.romanov@nginx.com</para> 1791832Smax.romanov@nginx.com</change> 1801832Smax.romanov@nginx.com 1811832Smax.romanov@nginx.com<change type="bugfix"> 1821832Smax.romanov@nginx.com<para> 1831833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or 1841811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0. 1851811Smax.romanov@nginx.com</para> 1861811Smax.romanov@nginx.com</change> 1871806Svbart@nginx.com 1881813Svbart@nginx.com<change type="bugfix"> 1891813Svbart@nginx.com<para> 1901813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in 1911813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart. 1921813Svbart@nginx.com</para> 1931813Svbart@nginx.com</change> 1941813Svbart@nginx.com 1951814Svbart@nginx.com<change type="bugfix"> 1961814Svbart@nginx.com<para> 1971820Svbart@nginx.comthe controller process could crash while requesting information about a 1981820Svbart@nginx.comcertificate with a non-DNS SAN entry. 1991820Svbart@nginx.com</para> 2001820Svbart@nginx.com</change> 2011820Svbart@nginx.com 2021820Svbart@nginx.com<change type="bugfix"> 2031820Svbart@nginx.com<para> 2041822Svbart@nginx.comthe controller process could crash on manipulations with a certificate 2051833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer. 2061822Svbart@nginx.com</para> 2071822Svbart@nginx.com</change> 2081822Svbart@nginx.com 2091822Svbart@nginx.com<change type="bugfix"> 2101822Svbart@nginx.com<para> 2111833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding 2121833Sartem.konev@nginx.comclass. 2131814Svbart@nginx.com</para> 2141814Svbart@nginx.com</change> 2151814Svbart@nginx.com 2161815Svbart@nginx.com<change type="bugfix"> 2171815Svbart@nginx.com<para> 2181815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had 2191815Svbart@nginx.comappeared in 1.22.0. 2201815Svbart@nginx.com</para> 2211815Svbart@nginx.com</change> 2221815Svbart@nginx.com 2231806Svbart@nginx.com</changes> 2241806Svbart@nginx.com 2251806Svbart@nginx.com 2261798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1" 2271798Sdefan@nginx.com date="2021-02-04" time="18:00:00 +0300" 2281798Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2291798Sdefan@nginx.com 2301798Sdefan@nginx.com<change> 2311798Sdefan@nginx.com<para> 2321798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit. 2331798Sdefan@nginx.com</para> 2341798Sdefan@nginx.com</change> 2351798Sdefan@nginx.com 2361798Sdefan@nginx.com</changes> 2371798Sdefan@nginx.com 2381798Sdefan@nginx.com 2391763Sdefan@nginx.com<changes apply="unit-php 2401763Sdefan@nginx.com unit-python unit-python2.7 2411763Sdefan@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 2421763Sdefan@nginx.com unit-python3.8 2431763Sdefan@nginx.com unit-go 2441763Sdefan@nginx.com unit-perl 2451763Sdefan@nginx.com unit-ruby 2461763Sdefan@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 2471763Sdefan@nginx.com unit-jsc14 unit-jsc15" 2481763Sdefan@nginx.com ver="1.22.0" rev="1" 2491793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 2501763Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2511763Sdefan@nginx.com 2521763Sdefan@nginx.com<change> 2531763Sdefan@nginx.com<para> 2541763Sdefan@nginx.comNGINX Unit updated to 1.22.0. 2551763Sdefan@nginx.com</para> 2561763Sdefan@nginx.com</change> 2571763Sdefan@nginx.com 2581763Sdefan@nginx.com</changes> 2591763Sdefan@nginx.com 2601763Sdefan@nginx.com 2611727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1" 2621793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 2631727Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2641727Svbart@nginx.com 2651759Svbart@nginx.com<change type="feature"> 2661759Svbart@nginx.com<para> 2671792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now 2681792Svbart@nginx.comcompliant with Stream API. 2691759Svbart@nginx.com</para> 2701759Svbart@nginx.com</change> 2711759Svbart@nginx.com 2721766Smax.romanov@nginx.com<change type="feature"> 2731766Smax.romanov@nginx.com<para> 2741792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python 2751792Svbart@nginx.comapps. 2761732Svbart@nginx.com</para> 2771732Svbart@nginx.com</change> 2781732Svbart@nginx.com 2791733Svbart@nginx.com<change type="bugfix"> 2801733Svbart@nginx.com<para> 2811792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than 2821792Svbart@nginx.com128K; the bug had appeared in 1.13.0. 2831754Smax.romanov@nginx.com</para> 2841754Smax.romanov@nginx.com</change> 2851754Smax.romanov@nginx.com 2861755Smax.romanov@nginx.com<change type="bugfix"> 2871755Smax.romanov@nginx.com<para> 2881790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had 2891755Smax.romanov@nginx.comappeared in 1.19.0. 2901755Smax.romanov@nginx.com</para> 2911755Smax.romanov@nginx.com</change> 2921755Smax.romanov@nginx.com 2931756Smax.romanov@nginx.com<change type="bugfix"> 2941756Smax.romanov@nginx.com<para> 2951790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had 2961790Sartem.konev@nginx.comappeared in 1.19.0. 2971756Smax.romanov@nginx.com</para> 2981756Smax.romanov@nginx.com</change> 2991756Smax.romanov@nginx.com 3001760Smax.romanov@nginx.com<change type="bugfix"> 3011760Smax.romanov@nginx.com<para> 3021792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes. 3031792Svbart@nginx.com</para> 3041792Svbart@nginx.com</change> 3051792Svbart@nginx.com 3061792Svbart@nginx.com<change type="bugfix"> 3071792Svbart@nginx.com<para> 3081792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were 3091792Svbart@nginx.commissing in the PHP module. 3101792Svbart@nginx.com</para> 3111792Svbart@nginx.com</change> 3121792Svbart@nginx.com 3131792Svbart@nginx.com<change type="bugfix"> 3141792Svbart@nginx.com<para> 3151792Svbart@nginx.comthe router process could crash with multithreaded apps under high load. 3161792Svbart@nginx.com</para> 3171792Svbart@nginx.com</change> 3181792Svbart@nginx.com 3191792Svbart@nginx.com<change type="bugfix"> 3201792Svbart@nginx.com<para> 3211792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load. 3221792Svbart@nginx.com</para> 3231792Svbart@nginx.com</change> 3241792Svbart@nginx.com 3251792Svbart@nginx.com<change type="bugfix"> 3261792Svbart@nginx.com<para> 3271792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used; 3281792Svbart@nginx.comthe bug had appeared in 1.21.0. 3291760Smax.romanov@nginx.com</para> 3301760Smax.romanov@nginx.com</change> 3311760Smax.romanov@nginx.com 3321780Smax.romanov@nginx.com<change type="bugfix"> 3331780Smax.romanov@nginx.com<para> 3341790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used 3351790Sartem.konev@nginx.comWebSocket. 3361780Smax.romanov@nginx.com</para> 3371780Smax.romanov@nginx.com</change> 3381780Smax.romanov@nginx.com 3391789Smax.romanov@nginx.com<change type="bugfix"> 3401789Smax.romanov@nginx.com<para> 3411789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring 3421789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0. 3431789Smax.romanov@nginx.com</para> 3441789Smax.romanov@nginx.com</change> 3451789Smax.romanov@nginx.com 3461727Svbart@nginx.com</changes> 3471727Svbart@nginx.com 3481727Svbart@nginx.com 3491722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1" 3501722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 3511722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3521722Svbart@nginx.com 3531722Svbart@nginx.com<change> 3541722Svbart@nginx.com<para> 3551722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit. 3561722Svbart@nginx.com</para> 3571722Svbart@nginx.com</change> 3581722Svbart@nginx.com 3591722Svbart@nginx.com</changes> 3601722Svbart@nginx.com 3611722Svbart@nginx.com 3621722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1" 3631722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 3641722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3651722Svbart@nginx.com 3661722Svbart@nginx.com<change> 3671722Svbart@nginx.com<para> 3681722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit. 3691722Svbart@nginx.com</para> 3701722Svbart@nginx.com</change> 3711722Svbart@nginx.com 3721722Svbart@nginx.com</changes> 3731722Svbart@nginx.com 3741722Svbart@nginx.com 3751722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1" 3761722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 3771722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3781722Svbart@nginx.com 3791722Svbart@nginx.com<change> 3801722Svbart@nginx.com<para> 3811722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit. 3821722Svbart@nginx.com</para> 3831722Svbart@nginx.com</change> 3841722Svbart@nginx.com 3851722Svbart@nginx.com</changes> 3861722Svbart@nginx.com 3871722Svbart@nginx.com 3881722Svbart@nginx.com<changes apply="unit-php 3891722Svbart@nginx.com unit-python unit-python2.7 3901722Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 3911722Svbart@nginx.com unit-python3.8 3921722Svbart@nginx.com unit-go 3931722Svbart@nginx.com unit-perl 3941722Svbart@nginx.com unit-ruby 3951722Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 3961722Svbart@nginx.com ver="1.21.0" rev="1" 3971722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 3981722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3991722Svbart@nginx.com 4001722Svbart@nginx.com<change> 4011722Svbart@nginx.com<para> 4021722Svbart@nginx.comNGINX Unit updated to 1.21.0. 4031722Svbart@nginx.com</para> 4041722Svbart@nginx.com</change> 4051722Svbart@nginx.com 4061722Svbart@nginx.com</changes> 4071722Svbart@nginx.com 4081722Svbart@nginx.com 4091722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1" 4101722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 4111722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4121722Svbart@nginx.com 4131722Svbart@nginx.com<change type="change"> 4141722Svbart@nginx.com<para> 4151722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used. 4161722Svbart@nginx.com</para> 4171722Svbart@nginx.com</change> 4181722Svbart@nginx.com 4191722Svbart@nginx.com<change type="change"> 4201722Svbart@nginx.com<para> 4211722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field 4221722Svbart@nginx.comnames. 4231722Svbart@nginx.com</para> 4241722Svbart@nginx.com</change> 4251722Svbart@nginx.com 4261722Svbart@nginx.com<change type="change"> 4271722Svbart@nginx.com<para> 4281722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by 4291722Svbart@nginx.comdefault. 4301722Svbart@nginx.com</para> 4311722Svbart@nginx.com</change> 4321722Svbart@nginx.com 4331722Svbart@nginx.com<change type="feature"> 4341722Svbart@nginx.com<para> 4351722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps. 4361722Svbart@nginx.com</para> 4371722Svbart@nginx.com</change> 4381722Svbart@nginx.com 4391722Svbart@nginx.com<change type="feature"> 4401722Svbart@nginx.com<para> 4411722Svbart@nginx.comregular expressions in route matching patterns. 4421722Svbart@nginx.com</para> 4431722Svbart@nginx.com</change> 4441722Svbart@nginx.com 4451722Svbart@nginx.com<change type="feature"> 4461722Svbart@nginx.com<para> 4471722Svbart@nginx.comcompatibility with Python 3.9. 4481722Svbart@nginx.com</para> 4491722Svbart@nginx.com</change> 4501722Svbart@nginx.com 4511722Svbart@nginx.com<change type="feature"> 4521722Svbart@nginx.com<para> 4531722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications. 4541722Svbart@nginx.com</para> 4551722Svbart@nginx.com</change> 4561722Svbart@nginx.com 4571722Svbart@nginx.com<change type="feature"> 4581722Svbart@nginx.com<para> 4591722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI. 4601722Svbart@nginx.com</para> 4611722Svbart@nginx.com</change> 4621722Svbart@nginx.com 4631722Svbart@nginx.com<change type="feature"> 4641722Svbart@nginx.com<para> 4651722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and 4661722Svbart@nginx.comcontinues code execution without holding onto the client connection. 4671722Svbart@nginx.com</para> 4681722Svbart@nginx.com</change> 4691722Svbart@nginx.com 4701722Svbart@nginx.com<change type="feature"> 4711722Svbart@nginx.com<para> 4721722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header 4731722Svbart@nginx.comfields with irregular (but still valid) characters in the field name. 4741722Svbart@nginx.com</para> 4751722Svbart@nginx.com</change> 4761722Svbart@nginx.com 4771722Svbart@nginx.com<change type="feature"> 4781722Svbart@nginx.com<para> 4791722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic 4801722Svbart@nginx.commounting of eponymous filesystems. 4811722Svbart@nginx.com</para> 4821722Svbart@nginx.com</change> 4831722Svbart@nginx.com 4841722Svbart@nginx.com<change type="bugfix"> 4851722Svbart@nginx.com<para> 4861722Svbart@nginx.comthe router process could crash when running Go applications under high load; 4871722Svbart@nginx.comthe bug had appeared in 1.19.0. 4881722Svbart@nginx.com</para> 4891722Svbart@nginx.com</change> 4901722Svbart@nginx.com 4911722Svbart@nginx.com<change type="bugfix"> 4921722Svbart@nginx.com<para> 4931722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation. 4941722Svbart@nginx.com</para> 4951722Svbart@nginx.com</change> 4961722Svbart@nginx.com 4971722Svbart@nginx.com<change type="bugfix"> 4981722Svbart@nginx.com<para> 4991722Svbart@nginx.comvarious compatibility issues in Java applications. 5001722Svbart@nginx.com</para> 5011722Svbart@nginx.com</change> 5021722Svbart@nginx.com 5031722Svbart@nginx.com<change type="bugfix"> 5041722Svbart@nginx.com<para> 5051722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that 5061722Svbart@nginx.comuse "rootfs" isolation. 5071722Svbart@nginx.com</para> 5081722Svbart@nginx.com</change> 5091722Svbart@nginx.com 5101722Svbart@nginx.com</changes> 5111722Svbart@nginx.com 5121722Svbart@nginx.com 5131330Svbart@nginx.com<changes apply="unit-php 5141330Svbart@nginx.com unit-python unit-python2.7 5151330Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 5161330Svbart@nginx.com unit-python3.8 5171330Svbart@nginx.com unit-go 5181330Svbart@nginx.com unit-perl 5191330Svbart@nginx.com unit-ruby 5201330Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 5211640Svbart@nginx.com ver="1.20.0" rev="1" 5221640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 5231640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5241640Svbart@nginx.com 5251640Svbart@nginx.com<change> 5261640Svbart@nginx.com<para> 5271640Svbart@nginx.comNGINX Unit updated to 1.20.0. 5281640Svbart@nginx.com</para> 5291640Svbart@nginx.com</change> 5301640Svbart@nginx.com 5311640Svbart@nginx.com</changes> 5321640Svbart@nginx.com 5331640Svbart@nginx.com 5341640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1" 5351640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 5361640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5371640Svbart@nginx.com 5381640Svbart@nginx.com<change type="change"> 5391640Svbart@nginx.com<para> 5401640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all 5411640Svbart@nginx.comextensions from the host system. 5421640Svbart@nginx.com</para> 5431640Svbart@nginx.com</change> 5441640Svbart@nginx.com 5451640Svbart@nginx.com<change type="change"> 5461640Svbart@nginx.com<para> 5471640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list. 5481640Svbart@nginx.com</para> 5491640Svbart@nginx.com</change> 5501640Svbart@nginx.com 5511643Svbart@nginx.com<change type="change"> 5521643Svbart@nginx.com<para> 5531643Svbart@nginx.comfunctional tests migrated to the pytest framework. 5541643Svbart@nginx.com</para> 5551643Svbart@nginx.com</change> 5561643Svbart@nginx.com 5571640Svbart@nginx.com<change type="feature"> 5581640Svbart@nginx.com<para> 5591640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server 5601640Svbart@nginx.cominterface. 5611640Svbart@nginx.com</para> 5621640Svbart@nginx.com</change> 5631640Svbart@nginx.com 5641640Svbart@nginx.com<change type="feature"> 5651640Svbart@nginx.com<para> 5661640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for 5671640Svbart@nginx.comapplications, compatible with the HTTP & WebSocket ASGI Message Format 2.1 5681640Svbart@nginx.comspecification. 5691640Svbart@nginx.com</para> 5701640Svbart@nginx.com</change> 5711640Svbart@nginx.com 5721640Svbart@nginx.com<change type="feature"> 5731640Svbart@nginx.com<para> 5741640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application 5751640Svbart@nginx.comenvironments. 5761640Svbart@nginx.com</para> 5771640Svbart@nginx.com</change> 5781640Svbart@nginx.com 5791640Svbart@nginx.com<change type="feature"> 5801640Svbart@nginx.com<para> 5811640Svbart@nginx.comthe $host variable contains a normalized "Host" request value. 5821640Svbart@nginx.com</para> 5831640Svbart@nginx.com</change> 5841640Svbart@nginx.com 5851640Svbart@nginx.com<change type="feature"> 5861640Svbart@nginx.com<para> 5871640Svbart@nginx.comthe "callable" option sets Python application callable names. 5881640Svbart@nginx.com</para> 5891640Svbart@nginx.com</change> 5901640Svbart@nginx.com 5911640Svbart@nginx.com<change type="feature"> 5921640Svbart@nginx.com<para> 5931640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet. 5941640Svbart@nginx.com</para> 5951640Svbart@nginx.com</change> 5961640Svbart@nginx.com 5971640Svbart@nginx.com<change type="feature"> 5981640Svbart@nginx.com<para> 5991640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the 6001640Svbart@nginx.comautomatic mounting of language module dependencies. 6011640Svbart@nginx.com</para> 6021640Svbart@nginx.com</change> 6031640Svbart@nginx.com 6041640Svbart@nginx.com<change type="bugfix"> 6051640Svbart@nginx.com<para> 6061640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared 6071640Svbart@nginx.comin 1.19.0. Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it. 6081640Svbart@nginx.com</para> 6091640Svbart@nginx.com</change> 6101640Svbart@nginx.com 6111640Svbart@nginx.com<change type="bugfix"> 6121640Svbart@nginx.com<para> 6131640Svbart@nginx.comthe router process could crash during reconfiguration. 6141640Svbart@nginx.com</para> 6151640Svbart@nginx.com</change> 6161640Svbart@nginx.com 6171640Svbart@nginx.com<change type="bugfix"> 6181640Svbart@nginx.com<para> 6191640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0. 6201640Svbart@nginx.com</para> 6211640Svbart@nginx.com</change> 6221640Svbart@nginx.com 6231640Svbart@nginx.com<change type="bugfix"> 6241640Svbart@nginx.com<para> 6251640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly; 6261640Svbart@nginx.comthe bug had appeared in 1.19.0. 6271640Svbart@nginx.com</para> 6281640Svbart@nginx.com</change> 6291640Svbart@nginx.com 6301640Svbart@nginx.com<change type="bugfix"> 6311640Svbart@nginx.com<para> 6321640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD; 6331640Svbart@nginx.comthe bug had appeared in 1.16.0. 6341640Svbart@nginx.com</para> 6351640Svbart@nginx.com</change> 6361640Svbart@nginx.com 6371640Svbart@nginx.com</changes> 6381640Svbart@nginx.com 6391640Svbart@nginx.com 6401640Svbart@nginx.com<changes apply="unit-php 6411640Svbart@nginx.com unit-python unit-python2.7 6421640Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 6431640Svbart@nginx.com unit-python3.8 6441640Svbart@nginx.com unit-go 6451640Svbart@nginx.com unit-perl 6461640Svbart@nginx.com unit-ruby 6471640Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 6481570Svbart@nginx.com ver="1.19.0" rev="1" 6491570Svbart@nginx.com date="2020-08-13" time="18:00:00 +0300" 6501570Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6511570Svbart@nginx.com 6521570Svbart@nginx.com<change> 6531570Svbart@nginx.com<para> 6541570Svbart@nginx.comNGINX Unit updated to 1.19.0. 6551570Svbart@nginx.com</para> 6561570Svbart@nginx.com</change> 6571570Svbart@nginx.com 6581570Svbart@nginx.com</changes> 6591570Svbart@nginx.com 6601570Svbart@nginx.com 6611570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1" 6621570Svbart@nginx.com date="2020-08-13" time="18:00:00 +0300" 6631570Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6641570Svbart@nginx.com 6651570Svbart@nginx.com<change type="feature"> 6661570Svbart@nginx.com<para> 6671570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies, 6681570Svbart@nginx.comincrease performance, and improve scalability. 6691570Svbart@nginx.com</para> 6701570Svbart@nginx.com</change> 6711570Svbart@nginx.com 6721570Svbart@nginx.com<change type="feature"> 6731570Svbart@nginx.com<para> 6741570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns. 6751570Svbart@nginx.com</para> 6761570Svbart@nginx.com</change> 6771570Svbart@nginx.com 6781570Svbart@nginx.com<change type="feature"> 6791570Svbart@nginx.com<para> 6801570Svbart@nginx.comchunked transfer encoding in proxy responses. 6811570Svbart@nginx.com</para> 6821570Svbart@nginx.com</change> 6831570Svbart@nginx.com 6841570Svbart@nginx.com<change type="feature"> 6851570Svbart@nginx.com<para> 6861570Svbart@nginx.combasic variables support in the "pass" option. 6871570Svbart@nginx.com</para> 6881570Svbart@nginx.com</change> 6891570Svbart@nginx.com 6901570Svbart@nginx.com<change type="feature"> 6911570Svbart@nginx.com<para> 6921570Svbart@nginx.comcompatibility with PHP 8 Beta 1. 6931570Svbart@nginx.comThanks to Remi Collet. 6941570Svbart@nginx.com</para> 6951570Svbart@nginx.com</change> 6961570Svbart@nginx.com 6971570Svbart@nginx.com<change type="bugfix"> 6981570Svbart@nginx.com<para> 6991570Svbart@nginx.comthe router process could crash while passing requests to an application under 7001570Svbart@nginx.comhigh load. 7011570Svbart@nginx.com</para> 7021570Svbart@nginx.com</change> 7031570Svbart@nginx.com 7041570Svbart@nginx.com<change type="bugfix"> 7051570Svbart@nginx.com<para> 7061570Svbart@nginx.coma number of language modules failed to build on some systems; 7071570Svbart@nginx.comthe bug had appeared in 1.18.0. 7081570Svbart@nginx.com</para> 7091570Svbart@nginx.com</change> 7101570Svbart@nginx.com 7111570Svbart@nginx.com<change type="bugfix"> 7121570Svbart@nginx.com<para> 7131570Svbart@nginx.comtime in error log messages from PHP applications could lag. 7141570Svbart@nginx.com</para> 7151570Svbart@nginx.com</change> 7161570Svbart@nginx.com 7171570Svbart@nginx.com<change type="bugfix"> 7181570Svbart@nginx.com<para> 7191570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start; 7201570Svbart@nginx.comthe bug had appeared in 1.18.0. 7211570Svbart@nginx.com</para> 7221570Svbart@nginx.com</change> 7231570Svbart@nginx.com 7241570Svbart@nginx.com<change type="bugfix"> 7251570Svbart@nginx.com<para> 7261570Svbart@nginx.commemory leak during reconfiguration. 7271570Svbart@nginx.com</para> 7281570Svbart@nginx.com</change> 7291570Svbart@nginx.com 7301570Svbart@nginx.com<change type="bugfix"> 7311570Svbart@nginx.com<para> 7321570Svbart@nginx.comthe daemon didn't start without language modules; 7331570Svbart@nginx.comthe bug had appeared in 1.18.0. 7341570Svbart@nginx.com</para> 7351570Svbart@nginx.com</change> 7361570Svbart@nginx.com 7371570Svbart@nginx.com<change type="bugfix"> 7381570Svbart@nginx.com<para> 7391570Svbart@nginx.comthe router process could crash at exit. 7401570Svbart@nginx.com</para> 7411570Svbart@nginx.com</change> 7421570Svbart@nginx.com 7431570Svbart@nginx.com<change type="bugfix"> 7441570Svbart@nginx.com<para> 7451570Svbart@nginx.comNode.js applications could crash at exit. 7461570Svbart@nginx.com</para> 7471570Svbart@nginx.com</change> 7481570Svbart@nginx.com 7491570Svbart@nginx.com<change type="bugfix"> 7501570Svbart@nginx.com<para> 7511570Svbart@nginx.comthe Ruby module could be linked against a wrong library version. 7521570Svbart@nginx.com</para> 7531570Svbart@nginx.com</change> 7541570Svbart@nginx.com 7551570Svbart@nginx.com</changes> 7561570Svbart@nginx.com 7571570Svbart@nginx.com 7581570Svbart@nginx.com<changes apply="unit-php 7591570Svbart@nginx.com unit-python unit-python2.7 7601570Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 7611570Svbart@nginx.com unit-python3.8 7621570Svbart@nginx.com unit-go 7631570Svbart@nginx.com unit-perl 7641570Svbart@nginx.com unit-ruby 7651570Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 7661491Svbart@nginx.com ver="1.18.0" rev="1" 7671491Svbart@nginx.com date="2020-05-28" time="18:00:00 +0300" 7681491Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7691491Svbart@nginx.com 7701491Svbart@nginx.com<change> 7711491Svbart@nginx.com<para> 7721491Svbart@nginx.comNGINX Unit updated to 1.18.0. 7731491Svbart@nginx.com</para> 7741491Svbart@nginx.com</change> 7751491Svbart@nginx.com 7761491Svbart@nginx.com</changes> 7771491Svbart@nginx.com 7781491Svbart@nginx.com 7791491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1" 7801491Svbart@nginx.com date="2020-05-28" time="18:00:00 +0300" 7811491Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7821491Svbart@nginx.com 7831491Svbart@nginx.com<change type="feature"> 7841491Svbart@nginx.com<para> 7851491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application. 7861491Svbart@nginx.com</para> 7871491Svbart@nginx.com</change> 7881491Svbart@nginx.com 7891491Svbart@nginx.com<change type="feature"> 7901491Svbart@nginx.com<para> 7911491Svbart@nginx.commultiple "targets" in PHP applications. 7921491Svbart@nginx.com</para> 7931491Svbart@nginx.com</change> 7941491Svbart@nginx.com 7951491Svbart@nginx.com<change type="feature"> 7961491Svbart@nginx.com<para> 7971491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options 7981491Svbart@nginx.comand in the "pass" option. 7991491Svbart@nginx.com</para> 8001491Svbart@nginx.com</change> 8011491Svbart@nginx.com 8021491Svbart@nginx.com</changes> 8031491Svbart@nginx.com 8041491Svbart@nginx.com 8051491Svbart@nginx.com<changes apply="unit-php 8061491Svbart@nginx.com unit-python unit-python2.7 8071491Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 8081491Svbart@nginx.com unit-python3.8 8091491Svbart@nginx.com unit-go 8101491Svbart@nginx.com unit-perl 8111491Svbart@nginx.com unit-ruby 8121491Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 8131460Svbart@nginx.com ver="1.17.0" rev="1" 8141460Svbart@nginx.com date="2020-04-16" time="18:00:00 +0300" 8151460Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8161460Svbart@nginx.com 8171460Svbart@nginx.com<change> 8181460Svbart@nginx.com<para> 8191460Svbart@nginx.comNGINX Unit updated to 1.17.0. 8201460Svbart@nginx.com</para> 8211460Svbart@nginx.com</change> 8221460Svbart@nginx.com 8231460Svbart@nginx.com</changes> 8241460Svbart@nginx.com 8251460Svbart@nginx.com 8261460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1" 8271460Svbart@nginx.com date="2020-04-16" time="18:00:00 +0300" 8281460Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8291460Svbart@nginx.com 8301460Svbart@nginx.com<change type="feature"> 8311460Svbart@nginx.com<para> 8321460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external 8331460Svbart@nginx.comredirection. 8341460Svbart@nginx.com</para> 8351460Svbart@nginx.com</change> 8361460Svbart@nginx.com 8371460Svbart@nginx.com<change type="feature"> 8381460Svbart@nginx.com<para> 8391460Svbart@nginx.comfractional weights support for upstream servers. 8401460Svbart@nginx.com</para> 8411460Svbart@nginx.com</change> 8421460Svbart@nginx.com 8431460Svbart@nginx.com<change type="bugfix"> 8441460Svbart@nginx.com<para> 8451460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under 8461460Svbart@nginx.comhigh load. 8471460Svbart@nginx.com</para> 8481460Svbart@nginx.com</change> 8491460Svbart@nginx.com 8501460Svbart@nginx.com<change type="bugfix"> 8511460Svbart@nginx.com<para> 8521460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0. 8531460Svbart@nginx.com</para> 8541460Svbart@nginx.com</change> 8551460Svbart@nginx.com 8561460Svbart@nginx.com<change type="bugfix"> 8571460Svbart@nginx.com<para> 8581460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching 8591460Svbart@nginx.comopen connections limit. 8601460Svbart@nginx.com</para> 8611460Svbart@nginx.com</change> 8621460Svbart@nginx.com 8631460Svbart@nginx.com<change type="bugfix"> 8641460Svbart@nginx.com<para> 8651460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log 8661460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0. 8671460Svbart@nginx.com</para> 8681460Svbart@nginx.com</change> 8691460Svbart@nginx.com 8701460Svbart@nginx.com<change type="bugfix"> 8711460Svbart@nginx.com<para> 8721460Svbart@nginx.comexisting application processes didn't reopen the log file. 8731460Svbart@nginx.com</para> 8741460Svbart@nginx.com</change> 8751460Svbart@nginx.com 8761460Svbart@nginx.com<change type="bugfix"> 8771460Svbart@nginx.com<para> 8781460Svbart@nginx.comincompatibility with some Node.js applications. 8791460Svbart@nginx.com</para> 8801460Svbart@nginx.com</change> 8811460Svbart@nginx.com 8821460Svbart@nginx.com<change type="bugfix"> 8831460Svbart@nginx.com<para> 8841460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0. 8851460Svbart@nginx.com</para> 8861460Svbart@nginx.com</change> 8871460Svbart@nginx.com 8881460Svbart@nginx.com</changes> 8891460Svbart@nginx.com 8901460Svbart@nginx.com 8911460Svbart@nginx.com<changes apply="unit-php 8921460Svbart@nginx.com unit-python unit-python2.7 8931460Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 8941460Svbart@nginx.com unit-python3.8 8951460Svbart@nginx.com unit-go 8961460Svbart@nginx.com unit-perl 8971460Svbart@nginx.com unit-ruby 8981460Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 8991404Svbart@nginx.com ver="1.16.0" rev="1" 9001404Svbart@nginx.com date="2020-03-12" time="18:00:00 +0300" 9011404Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9021404Svbart@nginx.com 9031404Svbart@nginx.com<change> 9041404Svbart@nginx.com<para> 9051404Svbart@nginx.comNGINX Unit updated to 1.16.0. 9061404Svbart@nginx.com</para> 9071404Svbart@nginx.com</change> 9081404Svbart@nginx.com 9091404Svbart@nginx.com</changes> 9101404Svbart@nginx.com 9111404Svbart@nginx.com 9121404Svbart@nginx.com<changes apply="unit" ver="1.16.0" rev="1" 9131404Svbart@nginx.com date="2020-03-12" time="18:00:00 +0300" 9141404Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9151404Svbart@nginx.com 9161404Svbart@nginx.com<change type="feature"> 9171404Svbart@nginx.com<para> 9181404Svbart@nginx.combasic load-balancing support with round-robin. 9191404Svbart@nginx.com</para> 9201404Svbart@nginx.com</change> 9211404Svbart@nginx.com 9221404Svbart@nginx.com<change type="feature"> 9231404Svbart@nginx.com<para> 9241404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be 9251404Svbart@nginx.comserved from the "share" directory. 9261404Svbart@nginx.com</para> 9271404Svbart@nginx.com</change> 9281404Svbart@nginx.com 9291404Svbart@nginx.com<change type="feature"> 9301404Svbart@nginx.com<para> 9311404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk. 9321404Svbart@nginx.com</para> 9331404Svbart@nginx.com</change> 9341404Svbart@nginx.com 9351404Svbart@nginx.com<change type="feature"> 9361404Svbart@nginx.com<para> 9371404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON. 9381404Svbart@nginx.com</para> 9391404Svbart@nginx.com</change> 9401404Svbart@nginx.com 9411404Svbart@nginx.com<change type="bugfix"> 9421404Svbart@nginx.com<para> 9431404Svbart@nginx.comnegative address matching in router might work improperly in combination with 9441404Svbart@nginx.comnon-negative patterns. 9451404Svbart@nginx.com</para> 9461404Svbart@nginx.com</change> 9471404Svbart@nginx.com 9481404Svbart@nginx.com<change type="bugfix"> 9491404Svbart@nginx.com<para> 9501404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0. 9511404Svbart@nginx.com</para> 9521404Svbart@nginx.com</change> 9531404Svbart@nginx.com 9541404Svbart@nginx.com<change type="bugfix"> 9551404Svbart@nginx.com<para> 9561404Svbart@nginx.comPHP 7.4 was broken if it was built with thread safety enabled. 9571404Svbart@nginx.com</para> 9581404Svbart@nginx.com</change> 9591404Svbart@nginx.com 9601404Svbart@nginx.com<change type="bugfix"> 9611404Svbart@nginx.com<para> 9621404Svbart@nginx.comcompatibility issues with some Python applications. 9631404Svbart@nginx.com</para> 9641404Svbart@nginx.com</change> 9651404Svbart@nginx.com 9661404Svbart@nginx.com</changes> 9671404Svbart@nginx.com 9681404Svbart@nginx.com 9691404Svbart@nginx.com<changes apply="unit-php 9701404Svbart@nginx.com unit-python unit-python2.7 9711404Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 9721404Svbart@nginx.com unit-python3.8 9731404Svbart@nginx.com unit-go 9741404Svbart@nginx.com unit-perl 9751404Svbart@nginx.com unit-ruby 9761404Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 9771357Svbart@nginx.com ver="1.15.0" rev="1" 9781357Svbart@nginx.com date="2020-02-06" time="18:00:00 +0300" 9791357Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9801357Svbart@nginx.com 9811357Svbart@nginx.com<change> 9821357Svbart@nginx.com<para> 9831357Svbart@nginx.comNGINX Unit updated to 1.15.0. 9841357Svbart@nginx.com</para> 9851357Svbart@nginx.com</change> 9861357Svbart@nginx.com 9871357Svbart@nginx.com</changes> 9881357Svbart@nginx.com 9891357Svbart@nginx.com 9901357Svbart@nginx.com<changes apply="unit" ver="1.15.0" rev="1" 9911357Svbart@nginx.com date="2020-02-06" time="18:00:00 +0300" 9921357Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9931357Svbart@nginx.com 9941357Svbart@nginx.com<change type="change"> 9951357Svbart@nginx.com<para> 9961357Svbart@nginx.comextensions of dynamically requested PHP scripts were restricted to ".php". 9971357Svbart@nginx.com</para> 9981357Svbart@nginx.com</change> 9991357Svbart@nginx.com 10001357Svbart@nginx.com<change type="feature"> 10011357Svbart@nginx.com<para> 10021357Svbart@nginx.comcompatibility with Ruby 2.7. 10031357Svbart@nginx.com</para> 10041357Svbart@nginx.com</change> 10051357Svbart@nginx.com 10061357Svbart@nginx.com<change type="bugfix"> 10071357Svbart@nginx.com<para> 10081357Svbart@nginx.comsegmentation fault might have occurred in the router process with multiple 10091357Svbart@nginx.comapplication processes under load; the bug had appeared in 1.14.0. 10101357Svbart@nginx.com</para> 10111357Svbart@nginx.com</change> 10121357Svbart@nginx.com 10131357Svbart@nginx.com<change type="bugfix"> 10141357Svbart@nginx.com<para> 10151357Svbart@nginx.comreceiving request body over TLS connection might have stalled. 10161357Svbart@nginx.com</para> 10171357Svbart@nginx.com</change> 10181357Svbart@nginx.com 10191357Svbart@nginx.com</changes> 10201357Svbart@nginx.com 10211357Svbart@nginx.com 10221357Svbart@nginx.com<changes apply="unit-php 10231357Svbart@nginx.com unit-python unit-python2.7 10241357Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 10251357Svbart@nginx.com unit-python3.8 10261357Svbart@nginx.com unit-go 10271357Svbart@nginx.com unit-perl 10281357Svbart@nginx.com unit-ruby 10291357Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 10301330Svbart@nginx.com ver="1.14.0" rev="1" 10311330Svbart@nginx.com date="2019-12-26" time="18:00:00 +0300" 10321330Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10331330Svbart@nginx.com 10341330Svbart@nginx.com<change> 10351330Svbart@nginx.com<para> 10361330Svbart@nginx.comNGINX Unit updated to 1.14.0. 10371330Svbart@nginx.com</para> 10381330Svbart@nginx.com</change> 10391330Svbart@nginx.com 10401330Svbart@nginx.com</changes> 10411330Svbart@nginx.com 10421330Svbart@nginx.com 10431330Svbart@nginx.com<changes apply="unit" ver="1.14.0" rev="1" 10441330Svbart@nginx.com date="2019-12-26" time="18:00:00 +0300" 10451330Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10461330Svbart@nginx.com 10471330Svbart@nginx.com<change type="change"> 10481330Svbart@nginx.com<para> 10491330Svbart@nginx.comthe Go package import name changed to "unit.nginx.org/go". 10501330Svbart@nginx.com</para> 10511330Svbart@nginx.com</change> 10521330Svbart@nginx.com 10531330Svbart@nginx.com<change type="change"> 10541330Svbart@nginx.com<para> 10551330Svbart@nginx.comGo package now links to libunit instead of including library sources. 10561330Svbart@nginx.com</para> 10571330Svbart@nginx.com</change> 10581330Svbart@nginx.com 10591330Svbart@nginx.com<change type="feature"> 10601330Svbart@nginx.com<para> 10611330Svbart@nginx.comability to change user and group for isolated applications when Unit daemon 10621330Svbart@nginx.comruns as an unprivileged user. 10631330Svbart@nginx.com</para> 10641330Svbart@nginx.com</change> 10651330Svbart@nginx.com 10661330Svbart@nginx.com<change type="feature"> 10671330Svbart@nginx.com<para> 10681330Svbart@nginx.comrequest routing by source and destination addresses and ports. 10691330Svbart@nginx.com</para> 10701330Svbart@nginx.com</change> 10711330Svbart@nginx.com 10721330Svbart@nginx.com<change type="bugfix"> 10731330Svbart@nginx.com<para> 10741330Svbart@nginx.commemory bloat on large responses. 10751330Svbart@nginx.com</para> 10761330Svbart@nginx.com</change> 10771330Svbart@nginx.com 10781330Svbart@nginx.com</changes> 10791330Svbart@nginx.com 10801330Svbart@nginx.com 10811290Sdefan@nginx.com<changes apply="unit-go1.13" ver="1.13.0" rev="1" 10821290Sdefan@nginx.com date="2019-11-20" time="09:00:00 +0300" 10831290Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10841290Sdefan@nginx.com 10851290Sdefan@nginx.com<change> 10861290Sdefan@nginx.com<para> 10871290Sdefan@nginx.comInitial release of Go 1.13 module for NGINX Unit. 10881290Sdefan@nginx.com</para> 10891290Sdefan@nginx.com</change> 10901290Sdefan@nginx.com 10911290Sdefan@nginx.com</changes> 10921290Sdefan@nginx.com 10931290Sdefan@nginx.com 10941290Sdefan@nginx.com<changes apply="unit-go1.12" ver="1.13.0" rev="1" 10951290Sdefan@nginx.com date="2019-11-20" time="09:00:00 +0300" 10961290Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10971290Sdefan@nginx.com 10981290Sdefan@nginx.com<change> 10991290Sdefan@nginx.com<para> 11001290Sdefan@nginx.comInitial release of Go 1.12 module for NGINX Unit. 11011290Sdefan@nginx.com</para> 11021290Sdefan@nginx.com</change> 11031290Sdefan@nginx.com 11041290Sdefan@nginx.com</changes> 11051290Sdefan@nginx.com 11061290Sdefan@nginx.com 11071289Sdefan@nginx.com<changes apply="unit-python3.8" ver="1.13.0" rev="1" 11081289Sdefan@nginx.com date="2019-11-18" time="14:20:00 +0300" 11091289Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11101289Sdefan@nginx.com 11111289Sdefan@nginx.com<change> 11121289Sdefan@nginx.com<para> 11131289Sdefan@nginx.comInitial release of Python 3.8 module for NGINX Unit. 11141289Sdefan@nginx.com</para> 11151289Sdefan@nginx.com</change> 11161289Sdefan@nginx.com 11171289Sdefan@nginx.com</changes> 11181289Sdefan@nginx.com 11191289Sdefan@nginx.com 11201185Svbart@nginx.com<changes apply="unit-php 11211185Svbart@nginx.com unit-python unit-python2.7 11221185Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 11231185Svbart@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 11241185Svbart@nginx.com unit-perl 11251185Svbart@nginx.com unit-ruby 11261185Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 11271284Svbart@nginx.com ver="1.13.0" rev="1" 11281284Svbart@nginx.com date="2019-11-14" time="18:00:00 +0300" 11291284Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11301284Svbart@nginx.com 11311284Svbart@nginx.com<change> 11321284Svbart@nginx.com<para> 11331284Svbart@nginx.comNGINX Unit updated to 1.13.0. 11341284Svbart@nginx.com</para> 11351284Svbart@nginx.com</change> 11361284Svbart@nginx.com 11371284Svbart@nginx.com</changes> 11381284Svbart@nginx.com 11391284Svbart@nginx.com 11401284Svbart@nginx.com<changes apply="unit" ver="1.13.0" rev="1" 11411284Svbart@nginx.com date="2019-11-14" time="18:00:00 +0300" 11421284Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11431284Svbart@nginx.com 11441284Svbart@nginx.com<change type="feature"> 11451284Svbart@nginx.com<para> 11461284Svbart@nginx.combasic support for HTTP reverse proxying. 11471284Svbart@nginx.com</para> 11481284Svbart@nginx.com</change> 11491284Svbart@nginx.com 11501284Svbart@nginx.com<change type="feature"> 11511284Svbart@nginx.com<para> 11521284Svbart@nginx.comcompatibility with Python 3.8. 11531284Svbart@nginx.com</para> 11541284Svbart@nginx.com</change> 11551284Svbart@nginx.com 11561284Svbart@nginx.com<change type="bugfix"> 11571284Svbart@nginx.com<para> 11581284Svbart@nginx.commemory leak in Python application processes when the close handler was used. 11591284Svbart@nginx.com</para> 11601284Svbart@nginx.com</change> 11611284Svbart@nginx.com 11621284Svbart@nginx.com<change type="bugfix"> 11631284Svbart@nginx.com<para> 11641284Svbart@nginx.comthreads in Python applications might not work correctly. 11651284Svbart@nginx.com</para> 11661284Svbart@nginx.com</change> 11671284Svbart@nginx.com 11681284Svbart@nginx.com<change type="bugfix"> 11691284Svbart@nginx.com<para> 11701284Svbart@nginx.comRuby on Rails applications might not work on Ruby 2.6. 11711284Svbart@nginx.com</para> 11721284Svbart@nginx.com</change> 11731284Svbart@nginx.com 11741284Svbart@nginx.com<change type="bugfix"> 11751284Svbart@nginx.com<para> 11761284Svbart@nginx.combacktraces for uncaught exceptions in Python 3 might be logged with significant 11771284Svbart@nginx.comdelays. 11781284Svbart@nginx.com</para> 11791284Svbart@nginx.com</change> 11801284Svbart@nginx.com 11811284Svbart@nginx.com<change type="bugfix"> 11821284Svbart@nginx.com<para> 11831284Svbart@nginx.comexplicit setting a namespaces isolation option to false might have enabled it. 11841284Svbart@nginx.com</para> 11851284Svbart@nginx.com</change> 11861284Svbart@nginx.com 11871284Svbart@nginx.com</changes> 11881284Svbart@nginx.com 11891284Svbart@nginx.com 11901284Svbart@nginx.com<changes apply="unit-php 11911284Svbart@nginx.com unit-python unit-python2.7 11921284Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 11931284Svbart@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 11941284Svbart@nginx.com unit-perl 11951284Svbart@nginx.com unit-ruby 11961284Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 11971222Svbart@nginx.com ver="1.12.0" rev="1" 11981222Svbart@nginx.com date="2019-10-03" time="18:00:00 +0300" 11991222Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 12001222Svbart@nginx.com 12011222Svbart@nginx.com<change> 12021222Svbart@nginx.com<para> 12031222Svbart@nginx.comNGINX Unit updated to 1.12.0. 12041222Svbart@nginx.com</para> 12051222Svbart@nginx.com</change> 12061222Svbart@nginx.com 12071222Svbart@nginx.com</changes> 12081222Svbart@nginx.com 12091222Svbart@nginx.com 12101222Svbart@nginx.com<changes apply="unit" ver="1.12.0" rev="1" 12111222Svbart@nginx.com date="2019-10-03" time="18:00:00 +0300" 12121222Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 12131222Svbart@nginx.com 12141222Svbart@nginx.com<change type="feature"> 12151222Svbart@nginx.com<para> 12161222Svbart@nginx.comcompatibility with PHP 7.4. 12171222Svbart@nginx.com</para> 12181222Svbart@nginx.com</change> 12191222Svbart@nginx.com 12201222Svbart@nginx.com<change type="bugfix"> 12211222Svbart@nginx.com<para> 12221222Svbart@nginx.comdescriptors leak on process creation; the bug had appeared in 1.11.0. 12231222Svbart@nginx.com</para> 12241222Svbart@nginx.com</change> 12251222Svbart@nginx.com 12261222Svbart@nginx.com<change type="bugfix"> 12271222Svbart@nginx.com<para> 12281222Svbart@nginx.comTLS connection might be closed prematurely while sending response. 12291222Svbart@nginx.com</para> 12301222Svbart@nginx.com</change> 12311222Svbart@nginx.com 12321222Svbart@nginx.com<change type="bugfix"> 12331222Svbart@nginx.com<para> 12341222Svbart@nginx.comsegmentation fault might have occurred if an irregular file was requested. 12351222Svbart@nginx.com</para> 12361222Svbart@nginx.com</change> 12371222Svbart@nginx.com 12381222Svbart@nginx.com</changes> 12391222Svbart@nginx.com 12401222Svbart@nginx.com 12411222Svbart@nginx.com 12421222Svbart@nginx.com<changes apply="unit-php 12431222Svbart@nginx.com unit-python unit-python2.7 12441222Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 12451222Svbart@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 12461222Svbart@nginx.com unit-perl 12471222Svbart@nginx.com unit-ruby 12481222Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 12491185Svbart@nginx.com ver="1.11.0" rev="1" 12501185Svbart@nginx.com date="2019-09-19" time="18:00:00 +0300" 12511185Svbart@nginx.com packager="Konstantin Pavlov <thresh@nginx.com>"> 12521185Svbart@nginx.com 12531185Svbart@nginx.com<change> 12541185Svbart@nginx.com<para> 12551185Svbart@nginx.comNGINX Unit updated to 1.11.0. 12561185Svbart@nginx.com</para> 12571185Svbart@nginx.com</change> 12581185Svbart@nginx.com 12591185Svbart@nginx.com</changes> 12601185Svbart@nginx.com 12611185Svbart@nginx.com 12621185Svbart@nginx.com<changes apply="unit" ver="1.11.0" rev="1" 12631185Svbart@nginx.com date="2019-09-19" time="18:00:00 +0300" 12641185Svbart@nginx.com packager="Konstantin Pavlov <thresh@nginx.com>"> 12651185Svbart@nginx.com 12661185Svbart@nginx.com<change type="feature"> 12671185Svbart@nginx.com<para> 12681185Svbart@nginx.combasic support for serving static files. 12691185Svbart@nginx.com</para> 12701185Svbart@nginx.com</change> 12711185Svbart@nginx.com 12721185Svbart@nginx.com<change type="feature"> 12731185Svbart@nginx.com<para> 12741185Svbart@nginx.comisolation of application processes with Linux namespaces. 12751185Svbart@nginx.com</para> 12761185Svbart@nginx.com</change> 12771185Svbart@nginx.com 12781185Svbart@nginx.com<change type="feature"> 12791185Svbart@nginx.com<para> 12801185Svbart@nginx.combuilt-in WebSocket server implementation for Java Servlet Containers. 12811185Svbart@nginx.com</para> 12821185Svbart@nginx.com</change> 12831185Svbart@nginx.com 12841185Svbart@nginx.com<change type="feature"> 12851185Svbart@nginx.com<para> 12861185Svbart@nginx.comdirect addressing of API configuration options containing slashes "/" 12871185Svbart@nginx.comusing URI encoding (%2F). 12881185Svbart@nginx.com</para> 12891185Svbart@nginx.com</change> 12901185Svbart@nginx.com 12911185Svbart@nginx.com<change type="bugfix"> 12921185Svbart@nginx.com<para> 12931185Svbart@nginx.comsegmentation fault might have occurred in Go applications under high load. 12941185Svbart@nginx.com</para> 12951185Svbart@nginx.com</change> 12961185Svbart@nginx.com 12971185Svbart@nginx.com<change type="bugfix"> 12981185Svbart@nginx.com<para> 12991185Svbart@nginx.comWebSocket support was broken if Unit was built with some linkers other than 13001185Svbart@nginx.comGNU ld (e.g. gold or LLD). 13011185Svbart@nginx.com</para> 13021185Svbart@nginx.com</change> 13031185Svbart@nginx.com 13041185Svbart@nginx.com</changes> 13051185Svbart@nginx.com 13061185Svbart@nginx.com 13071142Sdefan@nginx.com<changes apply="unit 13081142Sdefan@nginx.com unit-php 13091142Sdefan@nginx.com unit-python unit-python2.7 13101142Sdefan@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 13111142Sdefan@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.