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 81806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1" 91806Svbart@nginx.com date="" time="" 101806Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 111806Svbart@nginx.com 121825Sthresh@nginx.com<change type="feature"> 131825Sthresh@nginx.com<para> 14*1828Sa.suvorov@f5.comsupport for multiple certificate bundles on a listener via Server Name 15*1828Sa.suvorov@f5.comIndication (SNI) TLS extension. 16*1828Sa.suvorov@f5.com</para> 17*1828Sa.suvorov@f5.com</change> 18*1828Sa.suvorov@f5.com 19*1828Sa.suvorov@f5.com<change type="feature"> 20*1828Sa.suvorov@f5.com<para> 211825Sthresh@nginx.com"--mandir" ./configure option to specify the directory for man page installation. 221825Sthresh@nginx.com</para> 231825Sthresh@nginx.com</change> 241825Sthresh@nginx.com 251811Smax.romanov@nginx.com<change type="bugfix"> 261811Smax.romanov@nginx.com<para> 271812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had 281812Svbart@nginx.comappeared in 1.17.0. 291812Svbart@nginx.com</para> 301812Svbart@nginx.com</change> 311812Svbart@nginx.com 321812Svbart@nginx.com<change type="bugfix"> 331812Svbart@nginx.com<para> 341812Svbart@nginx.coma connection leak occurring on premature TLS connection close; the bug had 351812Svbart@nginx.comappeared in 1.6. 361812Svbart@nginx.com</para> 371812Svbart@nginx.com</change> 381812Svbart@nginx.com 391812Svbart@nginx.com<change type="bugfix"> 401812Svbart@nginx.com<para> 411811Smax.romanov@nginx.coma descriptor leak occurring in the router process when removing or 421811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0. 431811Smax.romanov@nginx.com</para> 441811Smax.romanov@nginx.com</change> 451806Svbart@nginx.com 461813Svbart@nginx.com<change type="bugfix"> 471813Svbart@nginx.com<para> 481813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in 491813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart. 501813Svbart@nginx.com</para> 511813Svbart@nginx.com</change> 521813Svbart@nginx.com 531814Svbart@nginx.com<change type="bugfix"> 541814Svbart@nginx.com<para> 551820Svbart@nginx.comthe controller process could crash while requesting information about a 561820Svbart@nginx.comcertificate with a non-DNS SAN entry. 571820Svbart@nginx.com</para> 581820Svbart@nginx.com</change> 591820Svbart@nginx.com 601820Svbart@nginx.com<change type="bugfix"> 611820Svbart@nginx.com<para> 621822Svbart@nginx.comthe controller process could crash on manipulations with a certificate 631822Svbart@nginx.comcontaining a SAN and no standart name attributes in subject or issuer. 641822Svbart@nginx.com</para> 651822Svbart@nginx.com</change> 661822Svbart@nginx.com 671822Svbart@nginx.com<change type="bugfix"> 681822Svbart@nginx.com<para> 691814Svbart@nginx.comthe Ruby module didn't respect user locale for defaults in the Encoding class. 701814Svbart@nginx.com</para> 711814Svbart@nginx.com</change> 721814Svbart@nginx.com 731815Svbart@nginx.com<change type="bugfix"> 741815Svbart@nginx.com<para> 751815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had 761815Svbart@nginx.comappeared in 1.22.0. 771815Svbart@nginx.com</para> 781815Svbart@nginx.com</change> 791815Svbart@nginx.com 801806Svbart@nginx.com</changes> 811806Svbart@nginx.com 821806Svbart@nginx.com 831798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1" 841798Sdefan@nginx.com date="2021-02-04" time="18:00:00 +0300" 851798Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 861798Sdefan@nginx.com 871798Sdefan@nginx.com<change> 881798Sdefan@nginx.com<para> 891798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit. 901798Sdefan@nginx.com</para> 911798Sdefan@nginx.com</change> 921798Sdefan@nginx.com 931798Sdefan@nginx.com</changes> 941798Sdefan@nginx.com 951798Sdefan@nginx.com 961763Sdefan@nginx.com<changes apply="unit-php 971763Sdefan@nginx.com unit-python unit-python2.7 981763Sdefan@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 991763Sdefan@nginx.com unit-python3.8 1001763Sdefan@nginx.com unit-go 1011763Sdefan@nginx.com unit-perl 1021763Sdefan@nginx.com unit-ruby 1031763Sdefan@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 1041763Sdefan@nginx.com unit-jsc14 unit-jsc15" 1051763Sdefan@nginx.com ver="1.22.0" rev="1" 1061793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 1071763Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1081763Sdefan@nginx.com 1091763Sdefan@nginx.com<change> 1101763Sdefan@nginx.com<para> 1111763Sdefan@nginx.comNGINX Unit updated to 1.22.0. 1121763Sdefan@nginx.com</para> 1131763Sdefan@nginx.com</change> 1141763Sdefan@nginx.com 1151763Sdefan@nginx.com</changes> 1161763Sdefan@nginx.com 1171763Sdefan@nginx.com 1181727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1" 1191793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 1201727Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1211727Svbart@nginx.com 1221759Svbart@nginx.com<change type="feature"> 1231759Svbart@nginx.com<para> 1241792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now 1251792Svbart@nginx.comcompliant with Stream API. 1261759Svbart@nginx.com</para> 1271759Svbart@nginx.com</change> 1281759Svbart@nginx.com 1291766Smax.romanov@nginx.com<change type="feature"> 1301766Smax.romanov@nginx.com<para> 1311792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python 1321792Svbart@nginx.comapps. 1331732Svbart@nginx.com</para> 1341732Svbart@nginx.com</change> 1351732Svbart@nginx.com 1361733Svbart@nginx.com<change type="bugfix"> 1371733Svbart@nginx.com<para> 1381792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than 1391792Svbart@nginx.com128K; the bug had appeared in 1.13.0. 1401754Smax.romanov@nginx.com</para> 1411754Smax.romanov@nginx.com</change> 1421754Smax.romanov@nginx.com 1431755Smax.romanov@nginx.com<change type="bugfix"> 1441755Smax.romanov@nginx.com<para> 1451790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had 1461755Smax.romanov@nginx.comappeared in 1.19.0. 1471755Smax.romanov@nginx.com</para> 1481755Smax.romanov@nginx.com</change> 1491755Smax.romanov@nginx.com 1501756Smax.romanov@nginx.com<change type="bugfix"> 1511756Smax.romanov@nginx.com<para> 1521790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had 1531790Sartem.konev@nginx.comappeared in 1.19.0. 1541756Smax.romanov@nginx.com</para> 1551756Smax.romanov@nginx.com</change> 1561756Smax.romanov@nginx.com 1571760Smax.romanov@nginx.com<change type="bugfix"> 1581760Smax.romanov@nginx.com<para> 1591792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes. 1601792Svbart@nginx.com</para> 1611792Svbart@nginx.com</change> 1621792Svbart@nginx.com 1631792Svbart@nginx.com<change type="bugfix"> 1641792Svbart@nginx.com<para> 1651792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were 1661792Svbart@nginx.commissing in the PHP module. 1671792Svbart@nginx.com</para> 1681792Svbart@nginx.com</change> 1691792Svbart@nginx.com 1701792Svbart@nginx.com<change type="bugfix"> 1711792Svbart@nginx.com<para> 1721792Svbart@nginx.comthe router process could crash with multithreaded apps under high load. 1731792Svbart@nginx.com</para> 1741792Svbart@nginx.com</change> 1751792Svbart@nginx.com 1761792Svbart@nginx.com<change type="bugfix"> 1771792Svbart@nginx.com<para> 1781792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load. 1791792Svbart@nginx.com</para> 1801792Svbart@nginx.com</change> 1811792Svbart@nginx.com 1821792Svbart@nginx.com<change type="bugfix"> 1831792Svbart@nginx.com<para> 1841792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used; 1851792Svbart@nginx.comthe bug had appeared in 1.21.0. 1861760Smax.romanov@nginx.com</para> 1871760Smax.romanov@nginx.com</change> 1881760Smax.romanov@nginx.com 1891780Smax.romanov@nginx.com<change type="bugfix"> 1901780Smax.romanov@nginx.com<para> 1911790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used 1921790Sartem.konev@nginx.comWebSocket. 1931780Smax.romanov@nginx.com</para> 1941780Smax.romanov@nginx.com</change> 1951780Smax.romanov@nginx.com 1961789Smax.romanov@nginx.com<change type="bugfix"> 1971789Smax.romanov@nginx.com<para> 1981789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring 1991789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0. 2001789Smax.romanov@nginx.com</para> 2011789Smax.romanov@nginx.com</change> 2021789Smax.romanov@nginx.com 2031727Svbart@nginx.com</changes> 2041727Svbart@nginx.com 2051727Svbart@nginx.com 2061722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1" 2071722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 2081722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2091722Svbart@nginx.com 2101722Svbart@nginx.com<change> 2111722Svbart@nginx.com<para> 2121722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit. 2131722Svbart@nginx.com</para> 2141722Svbart@nginx.com</change> 2151722Svbart@nginx.com 2161722Svbart@nginx.com</changes> 2171722Svbart@nginx.com 2181722Svbart@nginx.com 2191722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1" 2201722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 2211722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2221722Svbart@nginx.com 2231722Svbart@nginx.com<change> 2241722Svbart@nginx.com<para> 2251722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit. 2261722Svbart@nginx.com</para> 2271722Svbart@nginx.com</change> 2281722Svbart@nginx.com 2291722Svbart@nginx.com</changes> 2301722Svbart@nginx.com 2311722Svbart@nginx.com 2321722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1" 2331722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 2341722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2351722Svbart@nginx.com 2361722Svbart@nginx.com<change> 2371722Svbart@nginx.com<para> 2381722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit. 2391722Svbart@nginx.com</para> 2401722Svbart@nginx.com</change> 2411722Svbart@nginx.com 2421722Svbart@nginx.com</changes> 2431722Svbart@nginx.com 2441722Svbart@nginx.com 2451722Svbart@nginx.com<changes apply="unit-php 2461722Svbart@nginx.com unit-python unit-python2.7 2471722Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 2481722Svbart@nginx.com unit-python3.8 2491722Svbart@nginx.com unit-go 2501722Svbart@nginx.com unit-perl 2511722Svbart@nginx.com unit-ruby 2521722Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 2531722Svbart@nginx.com ver="1.21.0" rev="1" 2541722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 2551722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2561722Svbart@nginx.com 2571722Svbart@nginx.com<change> 2581722Svbart@nginx.com<para> 2591722Svbart@nginx.comNGINX Unit updated to 1.21.0. 2601722Svbart@nginx.com</para> 2611722Svbart@nginx.com</change> 2621722Svbart@nginx.com 2631722Svbart@nginx.com</changes> 2641722Svbart@nginx.com 2651722Svbart@nginx.com 2661722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1" 2671722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 2681722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2691722Svbart@nginx.com 2701722Svbart@nginx.com<change type="change"> 2711722Svbart@nginx.com<para> 2721722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used. 2731722Svbart@nginx.com</para> 2741722Svbart@nginx.com</change> 2751722Svbart@nginx.com 2761722Svbart@nginx.com<change type="change"> 2771722Svbart@nginx.com<para> 2781722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field 2791722Svbart@nginx.comnames. 2801722Svbart@nginx.com</para> 2811722Svbart@nginx.com</change> 2821722Svbart@nginx.com 2831722Svbart@nginx.com<change type="change"> 2841722Svbart@nginx.com<para> 2851722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by 2861722Svbart@nginx.comdefault. 2871722Svbart@nginx.com</para> 2881722Svbart@nginx.com</change> 2891722Svbart@nginx.com 2901722Svbart@nginx.com<change type="feature"> 2911722Svbart@nginx.com<para> 2921722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps. 2931722Svbart@nginx.com</para> 2941722Svbart@nginx.com</change> 2951722Svbart@nginx.com 2961722Svbart@nginx.com<change type="feature"> 2971722Svbart@nginx.com<para> 2981722Svbart@nginx.comregular expressions in route matching patterns. 2991722Svbart@nginx.com</para> 3001722Svbart@nginx.com</change> 3011722Svbart@nginx.com 3021722Svbart@nginx.com<change type="feature"> 3031722Svbart@nginx.com<para> 3041722Svbart@nginx.comcompatibility with Python 3.9. 3051722Svbart@nginx.com</para> 3061722Svbart@nginx.com</change> 3071722Svbart@nginx.com 3081722Svbart@nginx.com<change type="feature"> 3091722Svbart@nginx.com<para> 3101722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications. 3111722Svbart@nginx.com</para> 3121722Svbart@nginx.com</change> 3131722Svbart@nginx.com 3141722Svbart@nginx.com<change type="feature"> 3151722Svbart@nginx.com<para> 3161722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI. 3171722Svbart@nginx.com</para> 3181722Svbart@nginx.com</change> 3191722Svbart@nginx.com 3201722Svbart@nginx.com<change type="feature"> 3211722Svbart@nginx.com<para> 3221722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and 3231722Svbart@nginx.comcontinues code execution without holding onto the client connection. 3241722Svbart@nginx.com</para> 3251722Svbart@nginx.com</change> 3261722Svbart@nginx.com 3271722Svbart@nginx.com<change type="feature"> 3281722Svbart@nginx.com<para> 3291722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header 3301722Svbart@nginx.comfields with irregular (but still valid) characters in the field name. 3311722Svbart@nginx.com</para> 3321722Svbart@nginx.com</change> 3331722Svbart@nginx.com 3341722Svbart@nginx.com<change type="feature"> 3351722Svbart@nginx.com<para> 3361722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic 3371722Svbart@nginx.commounting of eponymous filesystems. 3381722Svbart@nginx.com</para> 3391722Svbart@nginx.com</change> 3401722Svbart@nginx.com 3411722Svbart@nginx.com<change type="bugfix"> 3421722Svbart@nginx.com<para> 3431722Svbart@nginx.comthe router process could crash when running Go applications under high load; 3441722Svbart@nginx.comthe bug had appeared in 1.19.0. 3451722Svbart@nginx.com</para> 3461722Svbart@nginx.com</change> 3471722Svbart@nginx.com 3481722Svbart@nginx.com<change type="bugfix"> 3491722Svbart@nginx.com<para> 3501722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation. 3511722Svbart@nginx.com</para> 3521722Svbart@nginx.com</change> 3531722Svbart@nginx.com 3541722Svbart@nginx.com<change type="bugfix"> 3551722Svbart@nginx.com<para> 3561722Svbart@nginx.comvarious compatibility issues in Java applications. 3571722Svbart@nginx.com</para> 3581722Svbart@nginx.com</change> 3591722Svbart@nginx.com 3601722Svbart@nginx.com<change type="bugfix"> 3611722Svbart@nginx.com<para> 3621722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that 3631722Svbart@nginx.comuse "rootfs" isolation. 3641722Svbart@nginx.com</para> 3651722Svbart@nginx.com</change> 3661722Svbart@nginx.com 3671722Svbart@nginx.com</changes> 3681722Svbart@nginx.com 3691722Svbart@nginx.com 3701330Svbart@nginx.com<changes apply="unit-php 3711330Svbart@nginx.com unit-python unit-python2.7 3721330Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 3731330Svbart@nginx.com unit-python3.8 3741330Svbart@nginx.com unit-go 3751330Svbart@nginx.com unit-perl 3761330Svbart@nginx.com unit-ruby 3771330Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 3781640Svbart@nginx.com ver="1.20.0" rev="1" 3791640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 3801640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3811640Svbart@nginx.com 3821640Svbart@nginx.com<change> 3831640Svbart@nginx.com<para> 3841640Svbart@nginx.comNGINX Unit updated to 1.20.0. 3851640Svbart@nginx.com</para> 3861640Svbart@nginx.com</change> 3871640Svbart@nginx.com 3881640Svbart@nginx.com</changes> 3891640Svbart@nginx.com 3901640Svbart@nginx.com 3911640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1" 3921640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 3931640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3941640Svbart@nginx.com 3951640Svbart@nginx.com<change type="change"> 3961640Svbart@nginx.com<para> 3971640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all 3981640Svbart@nginx.comextensions from the host system. 3991640Svbart@nginx.com</para> 4001640Svbart@nginx.com</change> 4011640Svbart@nginx.com 4021640Svbart@nginx.com<change type="change"> 4031640Svbart@nginx.com<para> 4041640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list. 4051640Svbart@nginx.com</para> 4061640Svbart@nginx.com</change> 4071640Svbart@nginx.com 4081643Svbart@nginx.com<change type="change"> 4091643Svbart@nginx.com<para> 4101643Svbart@nginx.comfunctional tests migrated to the pytest framework. 4111643Svbart@nginx.com</para> 4121643Svbart@nginx.com</change> 4131643Svbart@nginx.com 4141640Svbart@nginx.com<change type="feature"> 4151640Svbart@nginx.com<para> 4161640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server 4171640Svbart@nginx.cominterface. 4181640Svbart@nginx.com</para> 4191640Svbart@nginx.com</change> 4201640Svbart@nginx.com 4211640Svbart@nginx.com<change type="feature"> 4221640Svbart@nginx.com<para> 4231640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for 4241640Svbart@nginx.comapplications, compatible with the HTTP & WebSocket ASGI Message Format 2.1 4251640Svbart@nginx.comspecification. 4261640Svbart@nginx.com</para> 4271640Svbart@nginx.com</change> 4281640Svbart@nginx.com 4291640Svbart@nginx.com<change type="feature"> 4301640Svbart@nginx.com<para> 4311640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application 4321640Svbart@nginx.comenvironments. 4331640Svbart@nginx.com</para> 4341640Svbart@nginx.com</change> 4351640Svbart@nginx.com 4361640Svbart@nginx.com<change type="feature"> 4371640Svbart@nginx.com<para> 4381640Svbart@nginx.comthe $host variable contains a normalized "Host" request value. 4391640Svbart@nginx.com</para> 4401640Svbart@nginx.com</change> 4411640Svbart@nginx.com 4421640Svbart@nginx.com<change type="feature"> 4431640Svbart@nginx.com<para> 4441640Svbart@nginx.comthe "callable" option sets Python application callable names. 4451640Svbart@nginx.com</para> 4461640Svbart@nginx.com</change> 4471640Svbart@nginx.com 4481640Svbart@nginx.com<change type="feature"> 4491640Svbart@nginx.com<para> 4501640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet. 4511640Svbart@nginx.com</para> 4521640Svbart@nginx.com</change> 4531640Svbart@nginx.com 4541640Svbart@nginx.com<change type="feature"> 4551640Svbart@nginx.com<para> 4561640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the 4571640Svbart@nginx.comautomatic mounting of language module dependencies. 4581640Svbart@nginx.com</para> 4591640Svbart@nginx.com</change> 4601640Svbart@nginx.com 4611640Svbart@nginx.com<change type="bugfix"> 4621640Svbart@nginx.com<para> 4631640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared 4641640Svbart@nginx.comin 1.19.0. Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it. 4651640Svbart@nginx.com</para> 4661640Svbart@nginx.com</change> 4671640Svbart@nginx.com 4681640Svbart@nginx.com<change type="bugfix"> 4691640Svbart@nginx.com<para> 4701640Svbart@nginx.comthe router process could crash during reconfiguration. 4711640Svbart@nginx.com</para> 4721640Svbart@nginx.com</change> 4731640Svbart@nginx.com 4741640Svbart@nginx.com<change type="bugfix"> 4751640Svbart@nginx.com<para> 4761640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0. 4771640Svbart@nginx.com</para> 4781640Svbart@nginx.com</change> 4791640Svbart@nginx.com 4801640Svbart@nginx.com<change type="bugfix"> 4811640Svbart@nginx.com<para> 4821640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly; 4831640Svbart@nginx.comthe bug had appeared in 1.19.0. 4841640Svbart@nginx.com</para> 4851640Svbart@nginx.com</change> 4861640Svbart@nginx.com 4871640Svbart@nginx.com<change type="bugfix"> 4881640Svbart@nginx.com<para> 4891640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD; 4901640Svbart@nginx.comthe bug had appeared in 1.16.0. 4911640Svbart@nginx.com</para> 4921640Svbart@nginx.com</change> 4931640Svbart@nginx.com 4941640Svbart@nginx.com</changes> 4951640Svbart@nginx.com 4961640Svbart@nginx.com 4971640Svbart@nginx.com<changes apply="unit-php 4981640Svbart@nginx.com unit-python unit-python2.7 4991640Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 5001640Svbart@nginx.com unit-python3.8 5011640Svbart@nginx.com unit-go 5021640Svbart@nginx.com unit-perl 5031640Svbart@nginx.com unit-ruby 5041640Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 5051570Svbart@nginx.com ver="1.19.0" rev="1" 5061570Svbart@nginx.com date="2020-08-13" time="18:00:00 +0300" 5071570Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5081570Svbart@nginx.com 5091570Svbart@nginx.com<change> 5101570Svbart@nginx.com<para> 5111570Svbart@nginx.comNGINX Unit updated to 1.19.0. 5121570Svbart@nginx.com</para> 5131570Svbart@nginx.com</change> 5141570Svbart@nginx.com 5151570Svbart@nginx.com</changes> 5161570Svbart@nginx.com 5171570Svbart@nginx.com 5181570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1" 5191570Svbart@nginx.com date="2020-08-13" time="18:00:00 +0300" 5201570Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5211570Svbart@nginx.com 5221570Svbart@nginx.com<change type="feature"> 5231570Svbart@nginx.com<para> 5241570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies, 5251570Svbart@nginx.comincrease performance, and improve scalability. 5261570Svbart@nginx.com</para> 5271570Svbart@nginx.com</change> 5281570Svbart@nginx.com 5291570Svbart@nginx.com<change type="feature"> 5301570Svbart@nginx.com<para> 5311570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns. 5321570Svbart@nginx.com</para> 5331570Svbart@nginx.com</change> 5341570Svbart@nginx.com 5351570Svbart@nginx.com<change type="feature"> 5361570Svbart@nginx.com<para> 5371570Svbart@nginx.comchunked transfer encoding in proxy responses. 5381570Svbart@nginx.com</para> 5391570Svbart@nginx.com</change> 5401570Svbart@nginx.com 5411570Svbart@nginx.com<change type="feature"> 5421570Svbart@nginx.com<para> 5431570Svbart@nginx.combasic variables support in the "pass" option. 5441570Svbart@nginx.com</para> 5451570Svbart@nginx.com</change> 5461570Svbart@nginx.com 5471570Svbart@nginx.com<change type="feature"> 5481570Svbart@nginx.com<para> 5491570Svbart@nginx.comcompatibility with PHP 8 Beta 1. 5501570Svbart@nginx.comThanks to Remi Collet. 5511570Svbart@nginx.com</para> 5521570Svbart@nginx.com</change> 5531570Svbart@nginx.com 5541570Svbart@nginx.com<change type="bugfix"> 5551570Svbart@nginx.com<para> 5561570Svbart@nginx.comthe router process could crash while passing requests to an application under 5571570Svbart@nginx.comhigh load. 5581570Svbart@nginx.com</para> 5591570Svbart@nginx.com</change> 5601570Svbart@nginx.com 5611570Svbart@nginx.com<change type="bugfix"> 5621570Svbart@nginx.com<para> 5631570Svbart@nginx.coma number of language modules failed to build on some systems; 5641570Svbart@nginx.comthe bug had appeared in 1.18.0. 5651570Svbart@nginx.com</para> 5661570Svbart@nginx.com</change> 5671570Svbart@nginx.com 5681570Svbart@nginx.com<change type="bugfix"> 5691570Svbart@nginx.com<para> 5701570Svbart@nginx.comtime in error log messages from PHP applications could lag. 5711570Svbart@nginx.com</para> 5721570Svbart@nginx.com</change> 5731570Svbart@nginx.com 5741570Svbart@nginx.com<change type="bugfix"> 5751570Svbart@nginx.com<para> 5761570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start; 5771570Svbart@nginx.comthe bug had appeared in 1.18.0. 5781570Svbart@nginx.com</para> 5791570Svbart@nginx.com</change> 5801570Svbart@nginx.com 5811570Svbart@nginx.com<change type="bugfix"> 5821570Svbart@nginx.com<para> 5831570Svbart@nginx.commemory leak during reconfiguration. 5841570Svbart@nginx.com</para> 5851570Svbart@nginx.com</change> 5861570Svbart@nginx.com 5871570Svbart@nginx.com<change type="bugfix"> 5881570Svbart@nginx.com<para> 5891570Svbart@nginx.comthe daemon didn't start without language modules; 5901570Svbart@nginx.comthe bug had appeared in 1.18.0. 5911570Svbart@nginx.com</para> 5921570Svbart@nginx.com</change> 5931570Svbart@nginx.com 5941570Svbart@nginx.com<change type="bugfix"> 5951570Svbart@nginx.com<para> 5961570Svbart@nginx.comthe router process could crash at exit. 5971570Svbart@nginx.com</para> 5981570Svbart@nginx.com</change> 5991570Svbart@nginx.com 6001570Svbart@nginx.com<change type="bugfix"> 6011570Svbart@nginx.com<para> 6021570Svbart@nginx.comNode.js applications could crash at exit. 6031570Svbart@nginx.com</para> 6041570Svbart@nginx.com</change> 6051570Svbart@nginx.com 6061570Svbart@nginx.com<change type="bugfix"> 6071570Svbart@nginx.com<para> 6081570Svbart@nginx.comthe Ruby module could be linked against a wrong library version. 6091570Svbart@nginx.com</para> 6101570Svbart@nginx.com</change> 6111570Svbart@nginx.com 6121570Svbart@nginx.com</changes> 6131570Svbart@nginx.com 6141570Svbart@nginx.com 6151570Svbart@nginx.com<changes apply="unit-php 6161570Svbart@nginx.com unit-python unit-python2.7 6171570Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 6181570Svbart@nginx.com unit-python3.8 6191570Svbart@nginx.com unit-go 6201570Svbart@nginx.com unit-perl 6211570Svbart@nginx.com unit-ruby 6221570Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 6231491Svbart@nginx.com ver="1.18.0" rev="1" 6241491Svbart@nginx.com date="2020-05-28" time="18:00:00 +0300" 6251491Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6261491Svbart@nginx.com 6271491Svbart@nginx.com<change> 6281491Svbart@nginx.com<para> 6291491Svbart@nginx.comNGINX Unit updated to 1.18.0. 6301491Svbart@nginx.com</para> 6311491Svbart@nginx.com</change> 6321491Svbart@nginx.com 6331491Svbart@nginx.com</changes> 6341491Svbart@nginx.com 6351491Svbart@nginx.com 6361491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1" 6371491Svbart@nginx.com date="2020-05-28" time="18:00:00 +0300" 6381491Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6391491Svbart@nginx.com 6401491Svbart@nginx.com<change type="feature"> 6411491Svbart@nginx.com<para> 6421491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application. 6431491Svbart@nginx.com</para> 6441491Svbart@nginx.com</change> 6451491Svbart@nginx.com 6461491Svbart@nginx.com<change type="feature"> 6471491Svbart@nginx.com<para> 6481491Svbart@nginx.commultiple "targets" in PHP applications. 6491491Svbart@nginx.com</para> 6501491Svbart@nginx.com</change> 6511491Svbart@nginx.com 6521491Svbart@nginx.com<change type="feature"> 6531491Svbart@nginx.com<para> 6541491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options 6551491Svbart@nginx.comand in the "pass" option. 6561491Svbart@nginx.com</para> 6571491Svbart@nginx.com</change> 6581491Svbart@nginx.com 6591491Svbart@nginx.com</changes> 6601491Svbart@nginx.com 6611491Svbart@nginx.com 6621491Svbart@nginx.com<changes apply="unit-php 6631491Svbart@nginx.com unit-python unit-python2.7 6641491Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 6651491Svbart@nginx.com unit-python3.8 6661491Svbart@nginx.com unit-go 6671491Svbart@nginx.com unit-perl 6681491Svbart@nginx.com unit-ruby 6691491Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 6701460Svbart@nginx.com ver="1.17.0" rev="1" 6711460Svbart@nginx.com date="2020-04-16" time="18:00:00 +0300" 6721460Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6731460Svbart@nginx.com 6741460Svbart@nginx.com<change> 6751460Svbart@nginx.com<para> 6761460Svbart@nginx.comNGINX Unit updated to 1.17.0. 6771460Svbart@nginx.com</para> 6781460Svbart@nginx.com</change> 6791460Svbart@nginx.com 6801460Svbart@nginx.com</changes> 6811460Svbart@nginx.com 6821460Svbart@nginx.com 6831460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1" 6841460Svbart@nginx.com date="2020-04-16" time="18:00:00 +0300" 6851460Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6861460Svbart@nginx.com 6871460Svbart@nginx.com<change type="feature"> 6881460Svbart@nginx.com<para> 6891460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external 6901460Svbart@nginx.comredirection. 6911460Svbart@nginx.com</para> 6921460Svbart@nginx.com</change> 6931460Svbart@nginx.com 6941460Svbart@nginx.com<change type="feature"> 6951460Svbart@nginx.com<para> 6961460Svbart@nginx.comfractional weights support for upstream servers. 6971460Svbart@nginx.com</para> 6981460Svbart@nginx.com</change> 6991460Svbart@nginx.com 7001460Svbart@nginx.com<change type="bugfix"> 7011460Svbart@nginx.com<para> 7021460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under 7031460Svbart@nginx.comhigh load. 7041460Svbart@nginx.com</para> 7051460Svbart@nginx.com</change> 7061460Svbart@nginx.com 7071460Svbart@nginx.com<change type="bugfix"> 7081460Svbart@nginx.com<para> 7091460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0. 7101460Svbart@nginx.com</para> 7111460Svbart@nginx.com</change> 7121460Svbart@nginx.com 7131460Svbart@nginx.com<change type="bugfix"> 7141460Svbart@nginx.com<para> 7151460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching 7161460Svbart@nginx.comopen connections limit. 7171460Svbart@nginx.com</para> 7181460Svbart@nginx.com</change> 7191460Svbart@nginx.com 7201460Svbart@nginx.com<change type="bugfix"> 7211460Svbart@nginx.com<para> 7221460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log 7231460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0. 7241460Svbart@nginx.com</para> 7251460Svbart@nginx.com</change> 7261460Svbart@nginx.com 7271460Svbart@nginx.com<change type="bugfix"> 7281460Svbart@nginx.com<para> 7291460Svbart@nginx.comexisting application processes didn't reopen the log file. 7301460Svbart@nginx.com</para> 7311460Svbart@nginx.com</change> 7321460Svbart@nginx.com 7331460Svbart@nginx.com<change type="bugfix"> 7341460Svbart@nginx.com<para> 7351460Svbart@nginx.comincompatibility with some Node.js applications. 7361460Svbart@nginx.com</para> 7371460Svbart@nginx.com</change> 7381460Svbart@nginx.com 7391460Svbart@nginx.com<change type="bugfix"> 7401460Svbart@nginx.com<para> 7411460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0. 7421460Svbart@nginx.com</para> 7431460Svbart@nginx.com</change> 7441460Svbart@nginx.com 7451460Svbart@nginx.com</changes> 7461460Svbart@nginx.com 7471460Svbart@nginx.com 7481460Svbart@nginx.com<changes apply="unit-php 7491460Svbart@nginx.com unit-python unit-python2.7 7501460Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 7511460Svbart@nginx.com unit-python3.8 7521460Svbart@nginx.com unit-go 7531460Svbart@nginx.com unit-perl 7541460Svbart@nginx.com unit-ruby 7551460Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 7561404Svbart@nginx.com ver="1.16.0" rev="1" 7571404Svbart@nginx.com date="2020-03-12" time="18:00:00 +0300" 7581404Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7591404Svbart@nginx.com 7601404Svbart@nginx.com<change> 7611404Svbart@nginx.com<para> 7621404Svbart@nginx.comNGINX Unit updated to 1.16.0. 7631404Svbart@nginx.com</para> 7641404Svbart@nginx.com</change> 7651404Svbart@nginx.com 7661404Svbart@nginx.com</changes> 7671404Svbart@nginx.com 7681404Svbart@nginx.com 7691404Svbart@nginx.com<changes apply="unit" ver="1.16.0" rev="1" 7701404Svbart@nginx.com date="2020-03-12" time="18:00:00 +0300" 7711404Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7721404Svbart@nginx.com 7731404Svbart@nginx.com<change type="feature"> 7741404Svbart@nginx.com<para> 7751404Svbart@nginx.combasic load-balancing support with round-robin. 7761404Svbart@nginx.com</para> 7771404Svbart@nginx.com</change> 7781404Svbart@nginx.com 7791404Svbart@nginx.com<change type="feature"> 7801404Svbart@nginx.com<para> 7811404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be 7821404Svbart@nginx.comserved from the "share" directory. 7831404Svbart@nginx.com</para> 7841404Svbart@nginx.com</change> 7851404Svbart@nginx.com 7861404Svbart@nginx.com<change type="feature"> 7871404Svbart@nginx.com<para> 7881404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk. 7891404Svbart@nginx.com</para> 7901404Svbart@nginx.com</change> 7911404Svbart@nginx.com 7921404Svbart@nginx.com<change type="feature"> 7931404Svbart@nginx.com<para> 7941404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON. 7951404Svbart@nginx.com</para> 7961404Svbart@nginx.com</change> 7971404Svbart@nginx.com 7981404Svbart@nginx.com<change type="bugfix"> 7991404Svbart@nginx.com<para> 8001404Svbart@nginx.comnegative address matching in router might work improperly in combination with 8011404Svbart@nginx.comnon-negative patterns. 8021404Svbart@nginx.com</para> 8031404Svbart@nginx.com</change> 8041404Svbart@nginx.com 8051404Svbart@nginx.com<change type="bugfix"> 8061404Svbart@nginx.com<para> 8071404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0. 8081404Svbart@nginx.com</para> 8091404Svbart@nginx.com</change> 8101404Svbart@nginx.com 8111404Svbart@nginx.com<change type="bugfix"> 8121404Svbart@nginx.com<para> 8131404Svbart@nginx.comPHP 7.4 was broken if it was built with thread safety enabled. 8141404Svbart@nginx.com</para> 8151404Svbart@nginx.com</change> 8161404Svbart@nginx.com 8171404Svbart@nginx.com<change type="bugfix"> 8181404Svbart@nginx.com<para> 8191404Svbart@nginx.comcompatibility issues with some Python applications. 8201404Svbart@nginx.com</para> 8211404Svbart@nginx.com</change> 8221404Svbart@nginx.com 8231404Svbart@nginx.com</changes> 8241404Svbart@nginx.com 8251404Svbart@nginx.com 8261404Svbart@nginx.com<changes apply="unit-php 8271404Svbart@nginx.com unit-python unit-python2.7 8281404Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 8291404Svbart@nginx.com unit-python3.8 8301404Svbart@nginx.com unit-go 8311404Svbart@nginx.com unit-perl 8321404Svbart@nginx.com unit-ruby 8331404Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 8341357Svbart@nginx.com ver="1.15.0" rev="1" 8351357Svbart@nginx.com date="2020-02-06" time="18:00:00 +0300" 8361357Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8371357Svbart@nginx.com 8381357Svbart@nginx.com<change> 8391357Svbart@nginx.com<para> 8401357Svbart@nginx.comNGINX Unit updated to 1.15.0. 8411357Svbart@nginx.com</para> 8421357Svbart@nginx.com</change> 8431357Svbart@nginx.com 8441357Svbart@nginx.com</changes> 8451357Svbart@nginx.com 8461357Svbart@nginx.com 8471357Svbart@nginx.com<changes apply="unit" ver="1.15.0" rev="1" 8481357Svbart@nginx.com date="2020-02-06" time="18:00:00 +0300" 8491357Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8501357Svbart@nginx.com 8511357Svbart@nginx.com<change type="change"> 8521357Svbart@nginx.com<para> 8531357Svbart@nginx.comextensions of dynamically requested PHP scripts were restricted to ".php". 8541357Svbart@nginx.com</para> 8551357Svbart@nginx.com</change> 8561357Svbart@nginx.com 8571357Svbart@nginx.com<change type="feature"> 8581357Svbart@nginx.com<para> 8591357Svbart@nginx.comcompatibility with Ruby 2.7. 8601357Svbart@nginx.com</para> 8611357Svbart@nginx.com</change> 8621357Svbart@nginx.com 8631357Svbart@nginx.com<change type="bugfix"> 8641357Svbart@nginx.com<para> 8651357Svbart@nginx.comsegmentation fault might have occurred in the router process with multiple 8661357Svbart@nginx.comapplication processes under load; the bug had appeared in 1.14.0. 8671357Svbart@nginx.com</para> 8681357Svbart@nginx.com</change> 8691357Svbart@nginx.com 8701357Svbart@nginx.com<change type="bugfix"> 8711357Svbart@nginx.com<para> 8721357Svbart@nginx.comreceiving request body over TLS connection might have stalled. 8731357Svbart@nginx.com</para> 8741357Svbart@nginx.com</change> 8751357Svbart@nginx.com 8761357Svbart@nginx.com</changes> 8771357Svbart@nginx.com 8781357Svbart@nginx.com 8791357Svbart@nginx.com<changes apply="unit-php 8801357Svbart@nginx.com unit-python unit-python2.7 8811357Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 8821357Svbart@nginx.com unit-python3.8 8831357Svbart@nginx.com unit-go 8841357Svbart@nginx.com unit-perl 8851357Svbart@nginx.com unit-ruby 8861357Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 8871330Svbart@nginx.com ver="1.14.0" rev="1" 8881330Svbart@nginx.com date="2019-12-26" time="18:00:00 +0300" 8891330Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8901330Svbart@nginx.com 8911330Svbart@nginx.com<change> 8921330Svbart@nginx.com<para> 8931330Svbart@nginx.comNGINX Unit updated to 1.14.0. 8941330Svbart@nginx.com</para> 8951330Svbart@nginx.com</change> 8961330Svbart@nginx.com 8971330Svbart@nginx.com</changes> 8981330Svbart@nginx.com 8991330Svbart@nginx.com 9001330Svbart@nginx.com<changes apply="unit" ver="1.14.0" rev="1" 9011330Svbart@nginx.com date="2019-12-26" time="18:00:00 +0300" 9021330Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9031330Svbart@nginx.com 9041330Svbart@nginx.com<change type="change"> 9051330Svbart@nginx.com<para> 9061330Svbart@nginx.comthe Go package import name changed to "unit.nginx.org/go". 9071330Svbart@nginx.com</para> 9081330Svbart@nginx.com</change> 9091330Svbart@nginx.com 9101330Svbart@nginx.com<change type="change"> 9111330Svbart@nginx.com<para> 9121330Svbart@nginx.comGo package now links to libunit instead of including library sources. 9131330Svbart@nginx.com</para> 9141330Svbart@nginx.com</change> 9151330Svbart@nginx.com 9161330Svbart@nginx.com<change type="feature"> 9171330Svbart@nginx.com<para> 9181330Svbart@nginx.comability to change user and group for isolated applications when Unit daemon 9191330Svbart@nginx.comruns as an unprivileged user. 9201330Svbart@nginx.com</para> 9211330Svbart@nginx.com</change> 9221330Svbart@nginx.com 9231330Svbart@nginx.com<change type="feature"> 9241330Svbart@nginx.com<para> 9251330Svbart@nginx.comrequest routing by source and destination addresses and ports. 9261330Svbart@nginx.com</para> 9271330Svbart@nginx.com</change> 9281330Svbart@nginx.com 9291330Svbart@nginx.com<change type="bugfix"> 9301330Svbart@nginx.com<para> 9311330Svbart@nginx.commemory bloat on large responses. 9321330Svbart@nginx.com</para> 9331330Svbart@nginx.com</change> 9341330Svbart@nginx.com 9351330Svbart@nginx.com</changes> 9361330Svbart@nginx.com 9371330Svbart@nginx.com 9381290Sdefan@nginx.com<changes apply="unit-go1.13" ver="1.13.0" rev="1" 9391290Sdefan@nginx.com date="2019-11-20" time="09:00:00 +0300" 9401290Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9411290Sdefan@nginx.com 9421290Sdefan@nginx.com<change> 9431290Sdefan@nginx.com<para> 9441290Sdefan@nginx.comInitial release of Go 1.13 module for NGINX Unit. 9451290Sdefan@nginx.com</para> 9461290Sdefan@nginx.com</change> 9471290Sdefan@nginx.com 9481290Sdefan@nginx.com</changes> 9491290Sdefan@nginx.com 9501290Sdefan@nginx.com 9511290Sdefan@nginx.com<changes apply="unit-go1.12" ver="1.13.0" rev="1" 9521290Sdefan@nginx.com date="2019-11-20" time="09:00:00 +0300" 9531290Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9541290Sdefan@nginx.com 9551290Sdefan@nginx.com<change> 9561290Sdefan@nginx.com<para> 9571290Sdefan@nginx.comInitial release of Go 1.12 module for NGINX Unit. 9581290Sdefan@nginx.com</para> 9591290Sdefan@nginx.com</change> 9601290Sdefan@nginx.com 9611290Sdefan@nginx.com</changes> 9621290Sdefan@nginx.com 9631290Sdefan@nginx.com 9641289Sdefan@nginx.com<changes apply="unit-python3.8" ver="1.13.0" rev="1" 9651289Sdefan@nginx.com date="2019-11-18" time="14:20:00 +0300" 9661289Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9671289Sdefan@nginx.com 9681289Sdefan@nginx.com<change> 9691289Sdefan@nginx.com<para> 9701289Sdefan@nginx.comInitial release of Python 3.8 module for NGINX Unit. 9711289Sdefan@nginx.com</para> 9721289Sdefan@nginx.com</change> 9731289Sdefan@nginx.com 9741289Sdefan@nginx.com</changes> 9751289Sdefan@nginx.com 9761289Sdefan@nginx.com 9771185Svbart@nginx.com<changes apply="unit-php 9781185Svbart@nginx.com unit-python unit-python2.7 9791185Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 9801185Svbart@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 9811185Svbart@nginx.com unit-perl 9821185Svbart@nginx.com unit-ruby 9831185Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 9841284Svbart@nginx.com ver="1.13.0" rev="1" 9851284Svbart@nginx.com date="2019-11-14" time="18:00:00 +0300" 9861284Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9871284Svbart@nginx.com 9881284Svbart@nginx.com<change> 9891284Svbart@nginx.com<para> 9901284Svbart@nginx.comNGINX Unit updated to 1.13.0. 9911284Svbart@nginx.com</para> 9921284Svbart@nginx.com</change> 9931284Svbart@nginx.com 9941284Svbart@nginx.com</changes> 9951284Svbart@nginx.com 9961284Svbart@nginx.com 9971284Svbart@nginx.com<changes apply="unit" ver="1.13.0" rev="1" 9981284Svbart@nginx.com date="2019-11-14" time="18:00:00 +0300" 9991284Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10001284Svbart@nginx.com 10011284Svbart@nginx.com<change type="feature"> 10021284Svbart@nginx.com<para> 10031284Svbart@nginx.combasic support for HTTP reverse proxying. 10041284Svbart@nginx.com</para> 10051284Svbart@nginx.com</change> 10061284Svbart@nginx.com 10071284Svbart@nginx.com<change type="feature"> 10081284Svbart@nginx.com<para> 10091284Svbart@nginx.comcompatibility with Python 3.8. 10101284Svbart@nginx.com</para> 10111284Svbart@nginx.com</change> 10121284Svbart@nginx.com 10131284Svbart@nginx.com<change type="bugfix"> 10141284Svbart@nginx.com<para> 10151284Svbart@nginx.commemory leak in Python application processes when the close handler was used. 10161284Svbart@nginx.com</para> 10171284Svbart@nginx.com</change> 10181284Svbart@nginx.com 10191284Svbart@nginx.com<change type="bugfix"> 10201284Svbart@nginx.com<para> 10211284Svbart@nginx.comthreads in Python applications might not work correctly. 10221284Svbart@nginx.com</para> 10231284Svbart@nginx.com</change> 10241284Svbart@nginx.com 10251284Svbart@nginx.com<change type="bugfix"> 10261284Svbart@nginx.com<para> 10271284Svbart@nginx.comRuby on Rails applications might not work on Ruby 2.6. 10281284Svbart@nginx.com</para> 10291284Svbart@nginx.com</change> 10301284Svbart@nginx.com 10311284Svbart@nginx.com<change type="bugfix"> 10321284Svbart@nginx.com<para> 10331284Svbart@nginx.combacktraces for uncaught exceptions in Python 3 might be logged with significant 10341284Svbart@nginx.comdelays. 10351284Svbart@nginx.com</para> 10361284Svbart@nginx.com</change> 10371284Svbart@nginx.com 10381284Svbart@nginx.com<change type="bugfix"> 10391284Svbart@nginx.com<para> 10401284Svbart@nginx.comexplicit setting a namespaces isolation option to false might have enabled it. 10411284Svbart@nginx.com</para> 10421284Svbart@nginx.com</change> 10431284Svbart@nginx.com 10441284Svbart@nginx.com</changes> 10451284Svbart@nginx.com 10461284Svbart@nginx.com 10471284Svbart@nginx.com<changes apply="unit-php 10481284Svbart@nginx.com unit-python unit-python2.7 10491284Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 10501284Svbart@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 10511284Svbart@nginx.com unit-perl 10521284Svbart@nginx.com unit-ruby 10531284Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 10541222Svbart@nginx.com ver="1.12.0" rev="1" 10551222Svbart@nginx.com date="2019-10-03" time="18:00:00 +0300" 10561222Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10571222Svbart@nginx.com 10581222Svbart@nginx.com<change> 10591222Svbart@nginx.com<para> 10601222Svbart@nginx.comNGINX Unit updated to 1.12.0. 10611222Svbart@nginx.com</para> 10621222Svbart@nginx.com</change> 10631222Svbart@nginx.com 10641222Svbart@nginx.com</changes> 10651222Svbart@nginx.com 10661222Svbart@nginx.com 10671222Svbart@nginx.com<changes apply="unit" ver="1.12.0" rev="1" 10681222Svbart@nginx.com date="2019-10-03" time="18:00:00 +0300" 10691222Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10701222Svbart@nginx.com 10711222Svbart@nginx.com<change type="feature"> 10721222Svbart@nginx.com<para> 10731222Svbart@nginx.comcompatibility with PHP 7.4. 10741222Svbart@nginx.com</para> 10751222Svbart@nginx.com</change> 10761222Svbart@nginx.com 10771222Svbart@nginx.com<change type="bugfix"> 10781222Svbart@nginx.com<para> 10791222Svbart@nginx.comdescriptors leak on process creation; the bug had appeared in 1.11.0. 10801222Svbart@nginx.com</para> 10811222Svbart@nginx.com</change> 10821222Svbart@nginx.com 10831222Svbart@nginx.com<change type="bugfix"> 10841222Svbart@nginx.com<para> 10851222Svbart@nginx.comTLS connection might be closed prematurely while sending response. 10861222Svbart@nginx.com</para> 10871222Svbart@nginx.com</change> 10881222Svbart@nginx.com 10891222Svbart@nginx.com<change type="bugfix"> 10901222Svbart@nginx.com<para> 10911222Svbart@nginx.comsegmentation fault might have occurred if an irregular file was requested. 10921222Svbart@nginx.com</para> 10931222Svbart@nginx.com</change> 10941222Svbart@nginx.com 10951222Svbart@nginx.com</changes> 10961222Svbart@nginx.com 10971222Svbart@nginx.com 10981222Svbart@nginx.com 10991222Svbart@nginx.com<changes apply="unit-php 11001222Svbart@nginx.com unit-python unit-python2.7 11011222Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 11021222Svbart@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 11031222Svbart@nginx.com unit-perl 11041222Svbart@nginx.com unit-ruby 11051222Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 11061185Svbart@nginx.com ver="1.11.0" rev="1" 11071185Svbart@nginx.com date="2019-09-19" time="18:00:00 +0300" 11081185Svbart@nginx.com packager="Konstantin Pavlov <thresh@nginx.com>"> 11091185Svbart@nginx.com 11101185Svbart@nginx.com<change> 11111185Svbart@nginx.com<para> 11121185Svbart@nginx.comNGINX Unit updated to 1.11.0. 11131185Svbart@nginx.com</para> 11141185Svbart@nginx.com</change> 11151185Svbart@nginx.com 11161185Svbart@nginx.com</changes> 11171185Svbart@nginx.com 11181185Svbart@nginx.com 11191185Svbart@nginx.com<changes apply="unit" ver="1.11.0" rev="1" 11201185Svbart@nginx.com date="2019-09-19" time="18:00:00 +0300" 11211185Svbart@nginx.com packager="Konstantin Pavlov <thresh@nginx.com>"> 11221185Svbart@nginx.com 11231185Svbart@nginx.com<change type="feature"> 11241185Svbart@nginx.com<para> 11251185Svbart@nginx.combasic support for serving static files. 11261185Svbart@nginx.com</para> 11271185Svbart@nginx.com</change> 11281185Svbart@nginx.com 11291185Svbart@nginx.com<change type="feature"> 11301185Svbart@nginx.com<para> 11311185Svbart@nginx.comisolation of application processes with Linux namespaces. 11321185Svbart@nginx.com</para> 11331185Svbart@nginx.com</change> 11341185Svbart@nginx.com 11351185Svbart@nginx.com<change type="feature"> 11361185Svbart@nginx.com<para> 11371185Svbart@nginx.combuilt-in WebSocket server implementation for Java Servlet Containers. 11381185Svbart@nginx.com</para> 11391185Svbart@nginx.com</change> 11401185Svbart@nginx.com 11411185Svbart@nginx.com<change type="feature"> 11421185Svbart@nginx.com<para> 11431185Svbart@nginx.comdirect addressing of API configuration options containing slashes "/" 11441185Svbart@nginx.comusing URI encoding (%2F). 11451185Svbart@nginx.com</para> 11461185Svbart@nginx.com</change> 11471185Svbart@nginx.com 11481185Svbart@nginx.com<change type="bugfix"> 11491185Svbart@nginx.com<para> 11501185Svbart@nginx.comsegmentation fault might have occurred in Go applications under high load. 11511185Svbart@nginx.com</para> 11521185Svbart@nginx.com</change> 11531185Svbart@nginx.com 11541185Svbart@nginx.com<change type="bugfix"> 11551185Svbart@nginx.com<para> 11561185Svbart@nginx.comWebSocket support was broken if Unit was built with some linkers other than 11571185Svbart@nginx.comGNU ld (e.g. gold or LLD). 11581185Svbart@nginx.com</para> 11591185Svbart@nginx.com</change> 11601185Svbart@nginx.com 11611185Svbart@nginx.com</changes> 11621185Svbart@nginx.com 11631185Svbart@nginx.com 11641142Sdefan@nginx.com<changes apply="unit 11651142Sdefan@nginx.com unit-php 11661142Sdefan@nginx.com unit-python unit-python2.7 11671142Sdefan@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 11681142Sdefan@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 11691142Sdefan@nginx.com unit-perl 11701142Sdefan@nginx.com unit-ruby 11711142Sdefan@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 11721142Sdefan@nginx.com ver="1.10.0" rev="2" 11731142Sdefan@nginx.com date="2019-08-23" time="12:00:00 +0300" 11741142Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11751142Sdefan@nginx.com 11761142Sdefan@nginx.com<change type="bugfix"> 11771142Sdefan@nginx.com<para> 11781142Sdefan@nginx.commissed header files added to unit development package. 11791142Sdefan@nginx.com</para> 11801142Sdefan@nginx.com</change> 11811142Sdefan@nginx.com 11821142Sdefan@nginx.com</changes> 11831142Sdefan@nginx.com 11841142Sdefan@nginx.com 11851134Svbart@nginx.com<changes apply="unit-php 11861134Svbart@nginx.com unit-python unit-python2.7 11871134Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 11881134Svbart@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 11891134Svbart@nginx.com unit-perl 11901134Svbart@nginx.com unit-ruby 11911134Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 11921134Svbart@nginx.com ver="1.10.0" rev="1" 11931134Svbart@nginx.com date="2019-08-22" time="18:00:00 +0300" 11941134Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11951134Svbart@nginx.com 11961134Svbart@nginx.com<change> 11971134Svbart@nginx.com<para> 11981134Svbart@nginx.comNGINX Unit updated to 1.10.0. 11991134Svbart@nginx.com</para> 12001134Svbart@nginx.com</change> 12011134Svbart@nginx.com 12021134Svbart@nginx.com</changes> 12031134Svbart@nginx.com 12041134Svbart@nginx.com 12051134Svbart@nginx.com<changes apply="unit" ver="1.10.0" rev="1" 12061134Svbart@nginx.com date="2019-08-22" time="18:00:00 +0300" 12071134Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 12081134Svbart@nginx.com 12091134Svbart@nginx.com<change type="change"> 12101134Svbart@nginx.com<para> 12111134Svbart@nginx.commatching of cookies in routes made case sensitive. 12121134Svbart@nginx.com</para> 12131134Svbart@nginx.com</change> 12141134Svbart@nginx.com 12151134Svbart@nginx.com<change type="change"> 12161134Svbart@nginx.com<para> 12171134Svbart@nginx.comdecreased log level of common errors when clients close connections. 12181134Svbart@nginx.com</para> 12191134Svbart@nginx.com</change> 12201134Svbart@nginx.com 12211134Svbart@nginx.com<change type="change"> 12221134Svbart@nginx.com<para> 12231134Svbart@nginx.comremoved the Perl module's "--include=" ./configure option. 12241134Svbart@nginx.com</para> 12251134Svbart@nginx.com</change> 12261134Svbart@nginx.com 12271134Svbart@nginx.com<change type="feature"> 12281134Svbart@nginx.com<para> 12291134Svbart@nginx.combuilt-in WebSocket server implementation for Node.js module. 12301134Svbart@nginx.com</para> 12311134Svbart@nginx.com</change> 12321134Svbart@nginx.com 12331134Svbart@nginx.com<change type="feature"> 12341134Svbart@nginx.com<para> 12351134Svbart@nginx.comsplitting PATH_INFO from request URI in PHP module. 12361134Svbart@nginx.com</para> 12371134Svbart@nginx.com</change> 12381134Svbart@nginx.com 12391134Svbart@nginx.com<change type="feature"> 12401134Svbart@nginx.com<para> 12411134Svbart@nginx.comrequest routing by scheme (HTTP or HTTPS). 12421134Svbart@nginx.com</para> 12431134Svbart@nginx.com</change> 12441134Svbart@nginx.com 12451134Svbart@nginx.com<change type="feature"> 12461134Svbart@nginx.com<para> 12471134Svbart@nginx.comsupport for multipart requests body in Java module. 12481134Svbart@nginx.com</para> 12491134Svbart@nginx.com</change> 12501134Svbart@nginx.com 12511134Svbart@nginx.com<change type="feature"> 12521134Svbart@nginx.com<para> 12531134Svbart@nginx.comimproved API compatibility with Node.js 11.10 or later. 12541134Svbart@nginx.com</para> 12551134Svbart@nginx.com</change> 12561134Svbart@nginx.com 12571134Svbart@nginx.com<change type="bugfix"> 12581134Svbart@nginx.com<para> 12591134Svbart@nginx.comreconfiguration failed if "listeners" or "applications" objects were missing. 12601134Svbart@nginx.com</para> 12611134Svbart@nginx.com</change> 12621134Svbart@nginx.com 12631134Svbart@nginx.com<change type="bugfix"> 12641134Svbart@nginx.com<para> 12651134Svbart@nginx.comapplying a large configuration might have failed. 12661134Svbart@nginx.com</para> 12671134Svbart@nginx.com</change> 12681134Svbart@nginx.com 12691134Svbart@nginx.com</changes> 12701134Svbart@nginx.com 12711134Svbart@nginx.com 12721069Svbart@nginx.com<changes apply="unit-go1.11" ver="1.9.0" rev="1" 12731069Svbart@nginx.com date="2019-05-30" time="18:00:00 +0300" 12741069Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 12751069Svbart@nginx.com 12761069Svbart@nginx.com<change> 12771069Svbart@nginx.com<para> 12781069Svbart@nginx.comInitial release of Go 1.11 module for NGINX Unit. 12791069Svbart@nginx.com</para> 12801069Svbart@nginx.com</change> 12811069Svbart@nginx.com 12821069Svbart@nginx.com</changes> 12831069Svbart@nginx.com 12841069Svbart@nginx.com 12851069Svbart@nginx.com<changes apply="unit-php 12861069Svbart@nginx.com unit-python unit-python2.7 12871069Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 12881069Svbart@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 12891069Svbart@nginx.com unit-perl 12901069Svbart@nginx.com unit-ruby 12911069Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 12921069Svbart@nginx.com ver="1.9.0" rev="1" 12931069Svbart@nginx.com date="2019-05-30" time="18:00:00 +0300" 12941069Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 12951069Svbart@nginx.com 12961069Svbart@nginx.com<change> 12971069Svbart@nginx.com<para> 12981069Svbart@nginx.comNGINX Unit updated to 1.9.0. 12991069Svbart@nginx.com</para> 13001069Svbart@nginx.com</change> 13011069Svbart@nginx.com 13021069Svbart@nginx.com</changes> 13031069Svbart@nginx.com 13041069Svbart@nginx.com 13051069Svbart@nginx.com<changes apply="unit" ver="1.9.0" rev="1" 13061069Svbart@nginx.com date="2019-05-30" time="18:00:00 +0300" 13071069Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 13081069Svbart@nginx.com 13091069Svbart@nginx.com<change type="feature"> 13101069Svbart@nginx.com<para> 13111069Svbart@nginx.comrequest routing by arguments, headers, and cookies. 13121069Svbart@nginx.com</para> 13131069Svbart@nginx.com</change> 13141069Svbart@nginx.com 13151069Svbart@nginx.com<change type="feature"> 13161069Svbart@nginx.com<para> 13171069Svbart@nginx.comroute matching patterns allow a wildcard in the middle. 13181069Svbart@nginx.com</para> 13191069Svbart@nginx.com</change> 13201069Svbart@nginx.com 13211069Svbart@nginx.com<change type="feature"> 13221069Svbart@nginx.com<para> 13231069Svbart@nginx.comPOST operation for appending elements to arrays in configuration. 13241069Svbart@nginx.com</para> 13251069Svbart@nginx.com</change> 13261069Svbart@nginx.com 13271069Svbart@nginx.com<change type="feature"> 13281069Svbart@nginx.com<para> 13291069Svbart@nginx.comsupport for changing credentials using CAP_SETUID and CAP_SETGID capabilities 13301069Svbart@nginx.comon Linux without running main process as privileged user. 13311069Svbart@nginx.com</para> 13321069Svbart@nginx.com</change> 13331069Svbart@nginx.com 13341069Svbart@nginx.com<change type="bugfix"> 13351069Svbart@nginx.com<para> 13361069Svbart@nginx.commemory leak in the router process might have happened when a client 13371069Svbart@nginx.comprematurely closed the connection. 13381069Svbart@nginx.com</para> 13391069Svbart@nginx.com</change> 13401069Svbart@nginx.com 13411069Svbart@nginx.com<change type="bugfix"> 13421069Svbart@nginx.com<para> 13431069Svbart@nginx.comapplying a large configuration might have failed. 13441069Svbart@nginx.com</para> 13451069Svbart@nginx.com</change> 13461069Svbart@nginx.com 13471069Svbart@nginx.com<change type="bugfix"> 13481069Svbart@nginx.com<para> 13491069Svbart@nginx.comPUT and DELETE operations on array elements in configuration did not work. 13501069Svbart@nginx.com</para> 13511069Svbart@nginx.com</change> 13521069Svbart@nginx.com 13531069Svbart@nginx.com<change type="bugfix"> 13541069Svbart@nginx.com<para> 13551069Svbart@nginx.comrequest schema in applications did not reflect TLS connections. 13561069