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 121811Smax.romanov@nginx.com<change type="bugfix"> 131811Smax.romanov@nginx.com<para> 141812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had 151812Svbart@nginx.comappeared in 1.17.0. 161812Svbart@nginx.com</para> 171812Svbart@nginx.com</change> 181812Svbart@nginx.com 191812Svbart@nginx.com<change type="bugfix"> 201812Svbart@nginx.com<para> 211812Svbart@nginx.coma connection leak occurring on premature TLS connection close; the bug had 221812Svbart@nginx.comappeared in 1.6. 231812Svbart@nginx.com</para> 241812Svbart@nginx.com</change> 251812Svbart@nginx.com 261812Svbart@nginx.com<change type="bugfix"> 271812Svbart@nginx.com<para> 281811Smax.romanov@nginx.coma descriptor leak occurring in the router process when removing or 291811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0. 301811Smax.romanov@nginx.com</para> 311811Smax.romanov@nginx.com</change> 321806Svbart@nginx.com 331813Svbart@nginx.com<change type="bugfix"> 341813Svbart@nginx.com<para> 351813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in 361813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart. 371813Svbart@nginx.com</para> 381813Svbart@nginx.com</change> 391813Svbart@nginx.com 401814Svbart@nginx.com<change type="bugfix"> 411814Svbart@nginx.com<para> 421820Svbart@nginx.comthe controller process could crash while requesting information about a 431820Svbart@nginx.comcertificate with a non-DNS SAN entry. 441820Svbart@nginx.com</para> 451820Svbart@nginx.com</change> 461820Svbart@nginx.com 471820Svbart@nginx.com<change type="bugfix"> 481820Svbart@nginx.com<para> 49*1822Svbart@nginx.comthe controller process could crash on manipulations with a certificate 50*1822Svbart@nginx.comcontaining a SAN and no standart name attributes in subject or issuer. 51*1822Svbart@nginx.com</para> 52*1822Svbart@nginx.com</change> 53*1822Svbart@nginx.com 54*1822Svbart@nginx.com<change type="bugfix"> 55*1822Svbart@nginx.com<para> 561814Svbart@nginx.comthe Ruby module didn't respect user locale for defaults in the Encoding class. 571814Svbart@nginx.com</para> 581814Svbart@nginx.com</change> 591814Svbart@nginx.com 601815Svbart@nginx.com<change type="bugfix"> 611815Svbart@nginx.com<para> 621815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had 631815Svbart@nginx.comappeared in 1.22.0. 641815Svbart@nginx.com</para> 651815Svbart@nginx.com</change> 661815Svbart@nginx.com 671806Svbart@nginx.com</changes> 681806Svbart@nginx.com 691806Svbart@nginx.com 701798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1" 711798Sdefan@nginx.com date="2021-02-04" time="18:00:00 +0300" 721798Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 731798Sdefan@nginx.com 741798Sdefan@nginx.com<change> 751798Sdefan@nginx.com<para> 761798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit. 771798Sdefan@nginx.com</para> 781798Sdefan@nginx.com</change> 791798Sdefan@nginx.com 801798Sdefan@nginx.com</changes> 811798Sdefan@nginx.com 821798Sdefan@nginx.com 831763Sdefan@nginx.com<changes apply="unit-php 841763Sdefan@nginx.com unit-python unit-python2.7 851763Sdefan@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 861763Sdefan@nginx.com unit-python3.8 871763Sdefan@nginx.com unit-go 881763Sdefan@nginx.com unit-perl 891763Sdefan@nginx.com unit-ruby 901763Sdefan@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 911763Sdefan@nginx.com unit-jsc14 unit-jsc15" 921763Sdefan@nginx.com ver="1.22.0" rev="1" 931793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 941763Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 951763Sdefan@nginx.com 961763Sdefan@nginx.com<change> 971763Sdefan@nginx.com<para> 981763Sdefan@nginx.comNGINX Unit updated to 1.22.0. 991763Sdefan@nginx.com</para> 1001763Sdefan@nginx.com</change> 1011763Sdefan@nginx.com 1021763Sdefan@nginx.com</changes> 1031763Sdefan@nginx.com 1041763Sdefan@nginx.com 1051727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1" 1061793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 1071727Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1081727Svbart@nginx.com 1091759Svbart@nginx.com<change type="feature"> 1101759Svbart@nginx.com<para> 1111792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now 1121792Svbart@nginx.comcompliant with Stream API. 1131759Svbart@nginx.com</para> 1141759Svbart@nginx.com</change> 1151759Svbart@nginx.com 1161766Smax.romanov@nginx.com<change type="feature"> 1171766Smax.romanov@nginx.com<para> 1181792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python 1191792Svbart@nginx.comapps. 1201732Svbart@nginx.com</para> 1211732Svbart@nginx.com</change> 1221732Svbart@nginx.com 1231733Svbart@nginx.com<change type="bugfix"> 1241733Svbart@nginx.com<para> 1251792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than 1261792Svbart@nginx.com128K; the bug had appeared in 1.13.0. 1271754Smax.romanov@nginx.com</para> 1281754Smax.romanov@nginx.com</change> 1291754Smax.romanov@nginx.com 1301755Smax.romanov@nginx.com<change type="bugfix"> 1311755Smax.romanov@nginx.com<para> 1321790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had 1331755Smax.romanov@nginx.comappeared in 1.19.0. 1341755Smax.romanov@nginx.com</para> 1351755Smax.romanov@nginx.com</change> 1361755Smax.romanov@nginx.com 1371756Smax.romanov@nginx.com<change type="bugfix"> 1381756Smax.romanov@nginx.com<para> 1391790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had 1401790Sartem.konev@nginx.comappeared in 1.19.0. 1411756Smax.romanov@nginx.com</para> 1421756Smax.romanov@nginx.com</change> 1431756Smax.romanov@nginx.com 1441760Smax.romanov@nginx.com<change type="bugfix"> 1451760Smax.romanov@nginx.com<para> 1461792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes. 1471792Svbart@nginx.com</para> 1481792Svbart@nginx.com</change> 1491792Svbart@nginx.com 1501792Svbart@nginx.com<change type="bugfix"> 1511792Svbart@nginx.com<para> 1521792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were 1531792Svbart@nginx.commissing in the PHP module. 1541792Svbart@nginx.com</para> 1551792Svbart@nginx.com</change> 1561792Svbart@nginx.com 1571792Svbart@nginx.com<change type="bugfix"> 1581792Svbart@nginx.com<para> 1591792Svbart@nginx.comthe router process could crash with multithreaded apps under high load. 1601792Svbart@nginx.com</para> 1611792Svbart@nginx.com</change> 1621792Svbart@nginx.com 1631792Svbart@nginx.com<change type="bugfix"> 1641792Svbart@nginx.com<para> 1651792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load. 1661792Svbart@nginx.com</para> 1671792Svbart@nginx.com</change> 1681792Svbart@nginx.com 1691792Svbart@nginx.com<change type="bugfix"> 1701792Svbart@nginx.com<para> 1711792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used; 1721792Svbart@nginx.comthe bug had appeared in 1.21.0. 1731760Smax.romanov@nginx.com</para> 1741760Smax.romanov@nginx.com</change> 1751760Smax.romanov@nginx.com 1761780Smax.romanov@nginx.com<change type="bugfix"> 1771780Smax.romanov@nginx.com<para> 1781790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used 1791790Sartem.konev@nginx.comWebSocket. 1801780Smax.romanov@nginx.com</para> 1811780Smax.romanov@nginx.com</change> 1821780Smax.romanov@nginx.com 1831789Smax.romanov@nginx.com<change type="bugfix"> 1841789Smax.romanov@nginx.com<para> 1851789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring 1861789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0. 1871789Smax.romanov@nginx.com</para> 1881789Smax.romanov@nginx.com</change> 1891789Smax.romanov@nginx.com 1901727Svbart@nginx.com</changes> 1911727Svbart@nginx.com 1921727Svbart@nginx.com 1931722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1" 1941722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 1951722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1961722Svbart@nginx.com 1971722Svbart@nginx.com<change> 1981722Svbart@nginx.com<para> 1991722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit. 2001722Svbart@nginx.com</para> 2011722Svbart@nginx.com</change> 2021722Svbart@nginx.com 2031722Svbart@nginx.com</changes> 2041722Svbart@nginx.com 2051722Svbart@nginx.com 2061722Svbart@nginx.com<changes apply="unit-jsc14" 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 14 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-jsc13" 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 13 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-php 2331722Svbart@nginx.com unit-python unit-python2.7 2341722Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 2351722Svbart@nginx.com unit-python3.8 2361722Svbart@nginx.com unit-go 2371722Svbart@nginx.com unit-perl 2381722Svbart@nginx.com unit-ruby 2391722Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 2401722Svbart@nginx.com ver="1.21.0" rev="1" 2411722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 2421722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2431722Svbart@nginx.com 2441722Svbart@nginx.com<change> 2451722Svbart@nginx.com<para> 2461722Svbart@nginx.comNGINX Unit updated to 1.21.0. 2471722Svbart@nginx.com</para> 2481722Svbart@nginx.com</change> 2491722Svbart@nginx.com 2501722Svbart@nginx.com</changes> 2511722Svbart@nginx.com 2521722Svbart@nginx.com 2531722Svbart@nginx.com<changes apply="unit" 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 type="change"> 2581722Svbart@nginx.com<para> 2591722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used. 2601722Svbart@nginx.com</para> 2611722Svbart@nginx.com</change> 2621722Svbart@nginx.com 2631722Svbart@nginx.com<change type="change"> 2641722Svbart@nginx.com<para> 2651722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field 2661722Svbart@nginx.comnames. 2671722Svbart@nginx.com</para> 2681722Svbart@nginx.com</change> 2691722Svbart@nginx.com 2701722Svbart@nginx.com<change type="change"> 2711722Svbart@nginx.com<para> 2721722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by 2731722Svbart@nginx.comdefault. 2741722Svbart@nginx.com</para> 2751722Svbart@nginx.com</change> 2761722Svbart@nginx.com 2771722Svbart@nginx.com<change type="feature"> 2781722Svbart@nginx.com<para> 2791722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps. 2801722Svbart@nginx.com</para> 2811722Svbart@nginx.com</change> 2821722Svbart@nginx.com 2831722Svbart@nginx.com<change type="feature"> 2841722Svbart@nginx.com<para> 2851722Svbart@nginx.comregular expressions in route matching patterns. 2861722Svbart@nginx.com</para> 2871722Svbart@nginx.com</change> 2881722Svbart@nginx.com 2891722Svbart@nginx.com<change type="feature"> 2901722Svbart@nginx.com<para> 2911722Svbart@nginx.comcompatibility with Python 3.9. 2921722Svbart@nginx.com</para> 2931722Svbart@nginx.com</change> 2941722Svbart@nginx.com 2951722Svbart@nginx.com<change type="feature"> 2961722Svbart@nginx.com<para> 2971722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications. 2981722Svbart@nginx.com</para> 2991722Svbart@nginx.com</change> 3001722Svbart@nginx.com 3011722Svbart@nginx.com<change type="feature"> 3021722Svbart@nginx.com<para> 3031722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI. 3041722Svbart@nginx.com</para> 3051722Svbart@nginx.com</change> 3061722Svbart@nginx.com 3071722Svbart@nginx.com<change type="feature"> 3081722Svbart@nginx.com<para> 3091722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and 3101722Svbart@nginx.comcontinues code execution without holding onto the client connection. 3111722Svbart@nginx.com</para> 3121722Svbart@nginx.com</change> 3131722Svbart@nginx.com 3141722Svbart@nginx.com<change type="feature"> 3151722Svbart@nginx.com<para> 3161722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header 3171722Svbart@nginx.comfields with irregular (but still valid) characters in the field name. 3181722Svbart@nginx.com</para> 3191722Svbart@nginx.com</change> 3201722Svbart@nginx.com 3211722Svbart@nginx.com<change type="feature"> 3221722Svbart@nginx.com<para> 3231722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic 3241722Svbart@nginx.commounting of eponymous filesystems. 3251722Svbart@nginx.com</para> 3261722Svbart@nginx.com</change> 3271722Svbart@nginx.com 3281722Svbart@nginx.com<change type="bugfix"> 3291722Svbart@nginx.com<para> 3301722Svbart@nginx.comthe router process could crash when running Go applications under high load; 3311722Svbart@nginx.comthe bug had appeared in 1.19.0. 3321722Svbart@nginx.com</para> 3331722Svbart@nginx.com</change> 3341722Svbart@nginx.com 3351722Svbart@nginx.com<change type="bugfix"> 3361722Svbart@nginx.com<para> 3371722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation. 3381722Svbart@nginx.com</para> 3391722Svbart@nginx.com</change> 3401722Svbart@nginx.com 3411722Svbart@nginx.com<change type="bugfix"> 3421722Svbart@nginx.com<para> 3431722Svbart@nginx.comvarious compatibility issues in Java applications. 3441722Svbart@nginx.com</para> 3451722Svbart@nginx.com</change> 3461722Svbart@nginx.com 3471722Svbart@nginx.com<change type="bugfix"> 3481722Svbart@nginx.com<para> 3491722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that 3501722Svbart@nginx.comuse "rootfs" isolation. 3511722Svbart@nginx.com</para> 3521722Svbart@nginx.com</change> 3531722Svbart@nginx.com 3541722Svbart@nginx.com</changes> 3551722Svbart@nginx.com 3561722Svbart@nginx.com 3571330Svbart@nginx.com<changes apply="unit-php 3581330Svbart@nginx.com unit-python unit-python2.7 3591330Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 3601330Svbart@nginx.com unit-python3.8 3611330Svbart@nginx.com unit-go 3621330Svbart@nginx.com unit-perl 3631330Svbart@nginx.com unit-ruby 3641330Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 3651640Svbart@nginx.com ver="1.20.0" rev="1" 3661640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 3671640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3681640Svbart@nginx.com 3691640Svbart@nginx.com<change> 3701640Svbart@nginx.com<para> 3711640Svbart@nginx.comNGINX Unit updated to 1.20.0. 3721640Svbart@nginx.com</para> 3731640Svbart@nginx.com</change> 3741640Svbart@nginx.com 3751640Svbart@nginx.com</changes> 3761640Svbart@nginx.com 3771640Svbart@nginx.com 3781640Svbart@nginx.com<changes apply="unit" 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 type="change"> 3831640Svbart@nginx.com<para> 3841640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all 3851640Svbart@nginx.comextensions from the host system. 3861640Svbart@nginx.com</para> 3871640Svbart@nginx.com</change> 3881640Svbart@nginx.com 3891640Svbart@nginx.com<change type="change"> 3901640Svbart@nginx.com<para> 3911640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list. 3921640Svbart@nginx.com</para> 3931640Svbart@nginx.com</change> 3941640Svbart@nginx.com 3951643Svbart@nginx.com<change type="change"> 3961643Svbart@nginx.com<para> 3971643Svbart@nginx.comfunctional tests migrated to the pytest framework. 3981643Svbart@nginx.com</para> 3991643Svbart@nginx.com</change> 4001643Svbart@nginx.com 4011640Svbart@nginx.com<change type="feature"> 4021640Svbart@nginx.com<para> 4031640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server 4041640Svbart@nginx.cominterface. 4051640Svbart@nginx.com</para> 4061640Svbart@nginx.com</change> 4071640Svbart@nginx.com 4081640Svbart@nginx.com<change type="feature"> 4091640Svbart@nginx.com<para> 4101640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for 4111640Svbart@nginx.comapplications, compatible with the HTTP & WebSocket ASGI Message Format 2.1 4121640Svbart@nginx.comspecification. 4131640Svbart@nginx.com</para> 4141640Svbart@nginx.com</change> 4151640Svbart@nginx.com 4161640Svbart@nginx.com<change type="feature"> 4171640Svbart@nginx.com<para> 4181640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application 4191640Svbart@nginx.comenvironments. 4201640Svbart@nginx.com</para> 4211640Svbart@nginx.com</change> 4221640Svbart@nginx.com 4231640Svbart@nginx.com<change type="feature"> 4241640Svbart@nginx.com<para> 4251640Svbart@nginx.comthe $host variable contains a normalized "Host" request value. 4261640Svbart@nginx.com</para> 4271640Svbart@nginx.com</change> 4281640Svbart@nginx.com 4291640Svbart@nginx.com<change type="feature"> 4301640Svbart@nginx.com<para> 4311640Svbart@nginx.comthe "callable" option sets Python application callable names. 4321640Svbart@nginx.com</para> 4331640Svbart@nginx.com</change> 4341640Svbart@nginx.com 4351640Svbart@nginx.com<change type="feature"> 4361640Svbart@nginx.com<para> 4371640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet. 4381640Svbart@nginx.com</para> 4391640Svbart@nginx.com</change> 4401640Svbart@nginx.com 4411640Svbart@nginx.com<change type="feature"> 4421640Svbart@nginx.com<para> 4431640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the 4441640Svbart@nginx.comautomatic mounting of language module dependencies. 4451640Svbart@nginx.com</para> 4461640Svbart@nginx.com</change> 4471640Svbart@nginx.com 4481640Svbart@nginx.com<change type="bugfix"> 4491640Svbart@nginx.com<para> 4501640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared 4511640Svbart@nginx.comin 1.19.0. Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it. 4521640Svbart@nginx.com</para> 4531640Svbart@nginx.com</change> 4541640Svbart@nginx.com 4551640Svbart@nginx.com<change type="bugfix"> 4561640Svbart@nginx.com<para> 4571640Svbart@nginx.comthe router process could crash during reconfiguration. 4581640Svbart@nginx.com</para> 4591640Svbart@nginx.com</change> 4601640Svbart@nginx.com 4611640Svbart@nginx.com<change type="bugfix"> 4621640Svbart@nginx.com<para> 4631640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0. 4641640Svbart@nginx.com</para> 4651640Svbart@nginx.com</change> 4661640Svbart@nginx.com 4671640Svbart@nginx.com<change type="bugfix"> 4681640Svbart@nginx.com<para> 4691640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly; 4701640Svbart@nginx.comthe bug had appeared in 1.19.0. 4711640Svbart@nginx.com</para> 4721640Svbart@nginx.com</change> 4731640Svbart@nginx.com 4741640Svbart@nginx.com<change type="bugfix"> 4751640Svbart@nginx.com<para> 4761640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD; 4771640Svbart@nginx.comthe bug had appeared in 1.16.0. 4781640Svbart@nginx.com</para> 4791640Svbart@nginx.com</change> 4801640Svbart@nginx.com 4811640Svbart@nginx.com</changes> 4821640Svbart@nginx.com 4831640Svbart@nginx.com 4841640Svbart@nginx.com<changes apply="unit-php 4851640Svbart@nginx.com unit-python unit-python2.7 4861640Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 4871640Svbart@nginx.com unit-python3.8 4881640Svbart@nginx.com unit-go 4891640Svbart@nginx.com unit-perl 4901640Svbart@nginx.com unit-ruby 4911640Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 4921570Svbart@nginx.com ver="1.19.0" rev="1" 4931570Svbart@nginx.com date="2020-08-13" time="18:00:00 +0300" 4941570Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4951570Svbart@nginx.com 4961570Svbart@nginx.com<change> 4971570Svbart@nginx.com<para> 4981570Svbart@nginx.comNGINX Unit updated to 1.19.0. 4991570Svbart@nginx.com</para> 5001570Svbart@nginx.com</change> 5011570Svbart@nginx.com 5021570Svbart@nginx.com</changes> 5031570Svbart@nginx.com 5041570Svbart@nginx.com 5051570Svbart@nginx.com<changes apply="unit" 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 type="feature"> 5101570Svbart@nginx.com<para> 5111570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies, 5121570Svbart@nginx.comincrease performance, and improve scalability. 5131570Svbart@nginx.com</para> 5141570Svbart@nginx.com</change> 5151570Svbart@nginx.com 5161570Svbart@nginx.com<change type="feature"> 5171570Svbart@nginx.com<para> 5181570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns. 5191570Svbart@nginx.com</para> 5201570Svbart@nginx.com</change> 5211570Svbart@nginx.com 5221570Svbart@nginx.com<change type="feature"> 5231570Svbart@nginx.com<para> 5241570Svbart@nginx.comchunked transfer encoding in proxy responses. 5251570Svbart@nginx.com</para> 5261570Svbart@nginx.com</change> 5271570Svbart@nginx.com 5281570Svbart@nginx.com<change type="feature"> 5291570Svbart@nginx.com<para> 5301570Svbart@nginx.combasic variables support in the "pass" option. 5311570Svbart@nginx.com</para> 5321570Svbart@nginx.com</change> 5331570Svbart@nginx.com 5341570Svbart@nginx.com<change type="feature"> 5351570Svbart@nginx.com<para> 5361570Svbart@nginx.comcompatibility with PHP 8 Beta 1. 5371570Svbart@nginx.comThanks to Remi Collet. 5381570Svbart@nginx.com</para> 5391570Svbart@nginx.com</change> 5401570Svbart@nginx.com 5411570Svbart@nginx.com<change type="bugfix"> 5421570Svbart@nginx.com<para> 5431570Svbart@nginx.comthe router process could crash while passing requests to an application under 5441570Svbart@nginx.comhigh load. 5451570Svbart@nginx.com</para> 5461570Svbart@nginx.com</change> 5471570Svbart@nginx.com 5481570Svbart@nginx.com<change type="bugfix"> 5491570Svbart@nginx.com<para> 5501570Svbart@nginx.coma number of language modules failed to build on some systems; 5511570Svbart@nginx.comthe bug had appeared in 1.18.0. 5521570Svbart@nginx.com</para> 5531570Svbart@nginx.com</change> 5541570Svbart@nginx.com 5551570Svbart@nginx.com<change type="bugfix"> 5561570Svbart@nginx.com<para> 5571570Svbart@nginx.comtime in error log messages from PHP applications could lag. 5581570Svbart@nginx.com</para> 5591570Svbart@nginx.com</change> 5601570Svbart@nginx.com 5611570Svbart@nginx.com<change type="bugfix"> 5621570Svbart@nginx.com<para> 5631570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start; 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.commemory leak during reconfiguration. 5711570Svbart@nginx.com</para> 5721570Svbart@nginx.com</change> 5731570Svbart@nginx.com 5741570Svbart@nginx.com<change type="bugfix"> 5751570Svbart@nginx.com<para> 5761570Svbart@nginx.comthe daemon didn't start without language modules; 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.comthe router process could crash at exit. 5841570Svbart@nginx.com</para> 5851570Svbart@nginx.com</change> 5861570Svbart@nginx.com 5871570Svbart@nginx.com<change type="bugfix"> 5881570Svbart@nginx.com<para> 5891570Svbart@nginx.comNode.js applications could crash at exit. 5901570Svbart@nginx.com</para> 5911570Svbart@nginx.com</change> 5921570Svbart@nginx.com 5931570Svbart@nginx.com<change type="bugfix"> 5941570Svbart@nginx.com<para> 5951570Svbart@nginx.comthe Ruby module could be linked against a wrong library version. 5961570Svbart@nginx.com</para> 5971570Svbart@nginx.com</change> 5981570Svbart@nginx.com 5991570Svbart@nginx.com</changes> 6001570Svbart@nginx.com 6011570Svbart@nginx.com 6021570Svbart@nginx.com<changes apply="unit-php 6031570Svbart@nginx.com unit-python unit-python2.7 6041570Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 6051570Svbart@nginx.com unit-python3.8 6061570Svbart@nginx.com unit-go 6071570Svbart@nginx.com unit-perl 6081570Svbart@nginx.com unit-ruby 6091570Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 6101491Svbart@nginx.com ver="1.18.0" rev="1" 6111491Svbart@nginx.com date="2020-05-28" time="18:00:00 +0300" 6121491Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6131491Svbart@nginx.com 6141491Svbart@nginx.com<change> 6151491Svbart@nginx.com<para> 6161491Svbart@nginx.comNGINX Unit updated to 1.18.0. 6171491Svbart@nginx.com</para> 6181491Svbart@nginx.com</change> 6191491Svbart@nginx.com 6201491Svbart@nginx.com</changes> 6211491Svbart@nginx.com 6221491Svbart@nginx.com 6231491Svbart@nginx.com<changes apply="unit" 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 type="feature"> 6281491Svbart@nginx.com<para> 6291491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application. 6301491Svbart@nginx.com</para> 6311491Svbart@nginx.com</change> 6321491Svbart@nginx.com 6331491Svbart@nginx.com<change type="feature"> 6341491Svbart@nginx.com<para> 6351491Svbart@nginx.commultiple "targets" in PHP applications. 6361491Svbart@nginx.com</para> 6371491Svbart@nginx.com</change> 6381491Svbart@nginx.com 6391491Svbart@nginx.com<change type="feature"> 6401491Svbart@nginx.com<para> 6411491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options 6421491Svbart@nginx.comand in the "pass" option. 6431491Svbart@nginx.com</para> 6441491Svbart@nginx.com</change> 6451491Svbart@nginx.com 6461491Svbart@nginx.com</changes> 6471491Svbart@nginx.com 6481491Svbart@nginx.com 6491491Svbart@nginx.com<changes apply="unit-php 6501491Svbart@nginx.com unit-python unit-python2.7 6511491Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 6521491Svbart@nginx.com unit-python3.8 6531491Svbart@nginx.com unit-go 6541491Svbart@nginx.com unit-perl 6551491Svbart@nginx.com unit-ruby 6561491Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 6571460Svbart@nginx.com ver="1.17.0" rev="1" 6581460Svbart@nginx.com date="2020-04-16" time="18:00:00 +0300" 6591460Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6601460Svbart@nginx.com 6611460Svbart@nginx.com<change> 6621460Svbart@nginx.com<para> 6631460Svbart@nginx.comNGINX Unit updated to 1.17.0. 6641460Svbart@nginx.com</para> 6651460Svbart@nginx.com</change> 6661460Svbart@nginx.com 6671460Svbart@nginx.com</changes> 6681460Svbart@nginx.com 6691460Svbart@nginx.com 6701460Svbart@nginx.com<changes apply="unit" 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 type="feature"> 6751460Svbart@nginx.com<para> 6761460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external 6771460Svbart@nginx.comredirection. 6781460Svbart@nginx.com</para> 6791460Svbart@nginx.com</change> 6801460Svbart@nginx.com 6811460Svbart@nginx.com<change type="feature"> 6821460Svbart@nginx.com<para> 6831460Svbart@nginx.comfractional weights support for upstream servers. 6841460Svbart@nginx.com</para> 6851460Svbart@nginx.com</change> 6861460Svbart@nginx.com 6871460Svbart@nginx.com<change type="bugfix"> 6881460Svbart@nginx.com<para> 6891460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under 6901460Svbart@nginx.comhigh load. 6911460Svbart@nginx.com</para> 6921460Svbart@nginx.com</change> 6931460Svbart@nginx.com 6941460Svbart@nginx.com<change type="bugfix"> 6951460Svbart@nginx.com<para> 6961460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0. 6971460Svbart@nginx.com</para> 6981460Svbart@nginx.com</change> 6991460Svbart@nginx.com 7001460Svbart@nginx.com<change type="bugfix"> 7011460Svbart@nginx.com<para> 7021460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching 7031460Svbart@nginx.comopen connections limit. 7041460Svbart@nginx.com</para> 7051460Svbart@nginx.com</change> 7061460Svbart@nginx.com 7071460Svbart@nginx.com<change type="bugfix"> 7081460Svbart@nginx.com<para> 7091460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log 7101460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0. 7111460Svbart@nginx.com</para> 7121460Svbart@nginx.com</change> 7131460Svbart@nginx.com 7141460Svbart@nginx.com<change type="bugfix"> 7151460Svbart@nginx.com<para> 7161460Svbart@nginx.comexisting application processes didn't reopen the log file. 7171460Svbart@nginx.com</para> 7181460Svbart@nginx.com</change> 7191460Svbart@nginx.com 7201460Svbart@nginx.com<change type="bugfix"> 7211460Svbart@nginx.com<para> 7221460Svbart@nginx.comincompatibility with some Node.js applications. 7231460Svbart@nginx.com</para> 7241460Svbart@nginx.com</change> 7251460Svbart@nginx.com 7261460Svbart@nginx.com<change type="bugfix"> 7271460Svbart@nginx.com<para> 7281460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0. 7291460Svbart@nginx.com</para> 7301460Svbart@nginx.com</change> 7311460Svbart@nginx.com 7321460Svbart@nginx.com</changes> 7331460Svbart@nginx.com 7341460Svbart@nginx.com 7351460Svbart@nginx.com<changes apply="unit-php 7361460Svbart@nginx.com unit-python unit-python2.7 7371460Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 7381460Svbart@nginx.com unit-python3.8 7391460Svbart@nginx.com unit-go 7401460Svbart@nginx.com unit-perl 7411460Svbart@nginx.com unit-ruby 7421460Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 7431404Svbart@nginx.com ver="1.16.0" rev="1" 7441404Svbart@nginx.com date="2020-03-12" time="18:00:00 +0300" 7451404Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7461404Svbart@nginx.com 7471404Svbart@nginx.com<change> 7481404Svbart@nginx.com<para> 7491404Svbart@nginx.comNGINX Unit updated to 1.16.0. 7501404Svbart@nginx.com</para> 7511404Svbart@nginx.com</change> 7521404Svbart@nginx.com 7531404Svbart@nginx.com</changes> 7541404Svbart@nginx.com 7551404Svbart@nginx.com 7561404Svbart@nginx.com<changes apply="unit" 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 type="feature"> 7611404Svbart@nginx.com<para> 7621404Svbart@nginx.combasic load-balancing support with round-robin. 7631404Svbart@nginx.com</para> 7641404Svbart@nginx.com</change> 7651404Svbart@nginx.com 7661404Svbart@nginx.com<change type="feature"> 7671404Svbart@nginx.com<para> 7681404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be 7691404Svbart@nginx.comserved from the "share" directory. 7701404Svbart@nginx.com</para> 7711404Svbart@nginx.com</change> 7721404Svbart@nginx.com 7731404Svbart@nginx.com<change type="feature"> 7741404Svbart@nginx.com<para> 7751404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk. 7761404Svbart@nginx.com</para> 7771404Svbart@nginx.com</change> 7781404Svbart@nginx.com 7791404Svbart@nginx.com<change type="feature"> 7801404Svbart@nginx.com<para> 7811404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON. 7821404Svbart@nginx.com</para> 7831404Svbart@nginx.com</change> 7841404Svbart@nginx.com 7851404Svbart@nginx.com<change type="bugfix"> 7861404Svbart@nginx.com<para> 7871404Svbart@nginx.comnegative address matching in router might work improperly in combination with 7881404Svbart@nginx.comnon-negative patterns. 7891404Svbart@nginx.com</para> 7901404Svbart@nginx.com</change> 7911404Svbart@nginx.com 7921404Svbart@nginx.com<change type="bugfix"> 7931404Svbart@nginx.com<para> 7941404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0. 7951404Svbart@nginx.com</para> 7961404Svbart@nginx.com</change> 7971404Svbart@nginx.com 7981404Svbart@nginx.com<change type="bugfix"> 7991404Svbart@nginx.com<para> 8001404Svbart@nginx.comPHP 7.4 was broken if it was built with thread safety enabled. 8011404Svbart@nginx.com</para> 8021404Svbart@nginx.com</change> 8031404Svbart@nginx.com 8041404Svbart@nginx.com<change type="bugfix"> 8051404Svbart@nginx.com<para> 8061404Svbart@nginx.comcompatibility issues with some Python applications. 8071404Svbart@nginx.com</para> 8081404Svbart@nginx.com</change> 8091404Svbart@nginx.com 8101404Svbart@nginx.com</changes> 8111404Svbart@nginx.com 8121404Svbart@nginx.com 8131404Svbart@nginx.com<changes apply="unit-php 8141404Svbart@nginx.com unit-python unit-python2.7 8151404Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 8161404Svbart@nginx.com unit-python3.8 8171404Svbart@nginx.com unit-go 8181404Svbart@nginx.com unit-perl 8191404Svbart@nginx.com unit-ruby 8201404Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 8211357Svbart@nginx.com ver="1.15.0" rev="1" 8221357Svbart@nginx.com date="2020-02-06" time="18:00:00 +0300" 8231357Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8241357Svbart@nginx.com 8251357Svbart@nginx.com<change> 8261357Svbart@nginx.com<para> 8271357Svbart@nginx.comNGINX Unit updated to 1.15.0. 8281357Svbart@nginx.com</para> 8291357Svbart@nginx.com</change> 8301357Svbart@nginx.com 8311357Svbart@nginx.com</changes> 8321357Svbart@nginx.com 8331357Svbart@nginx.com 8341357Svbart@nginx.com<changes apply="unit" 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 type="change"> 8391357Svbart@nginx.com<para> 8401357Svbart@nginx.comextensions of dynamically requested PHP scripts were restricted to ".php". 8411357Svbart@nginx.com</para> 8421357Svbart@nginx.com</change> 8431357Svbart@nginx.com 8441357Svbart@nginx.com<change type="feature"> 8451357Svbart@nginx.com<para> 8461357Svbart@nginx.comcompatibility with Ruby 2.7. 8471357Svbart@nginx.com</para> 8481357Svbart@nginx.com</change> 8491357Svbart@nginx.com 8501357Svbart@nginx.com<change type="bugfix"> 8511357Svbart@nginx.com<para> 8521357Svbart@nginx.comsegmentation fault might have occurred in the router process with multiple 8531357Svbart@nginx.comapplication processes under load; the bug had appeared in 1.14.0. 8541357Svbart@nginx.com</para> 8551357Svbart@nginx.com</change> 8561357Svbart@nginx.com 8571357Svbart@nginx.com<change type="bugfix"> 8581357Svbart@nginx.com<para> 8591357Svbart@nginx.comreceiving request body over TLS connection might have stalled. 8601357Svbart@nginx.com</para> 8611357Svbart@nginx.com</change> 8621357Svbart@nginx.com 8631357Svbart@nginx.com</changes> 8641357Svbart@nginx.com 8651357Svbart@nginx.com 8661357Svbart@nginx.com<changes apply="unit-php 8671357Svbart@nginx.com unit-python unit-python2.7 8681357Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 8691357Svbart@nginx.com unit-python3.8 8701357Svbart@nginx.com unit-go 8711357Svbart@nginx.com unit-perl 8721357Svbart@nginx.com unit-ruby 8731357Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 8741330Svbart@nginx.com ver="1.14.0" rev="1" 8751330Svbart@nginx.com date="2019-12-26" time="18:00:00 +0300" 8761330Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8771330Svbart@nginx.com 8781330Svbart@nginx.com<change> 8791330Svbart@nginx.com<para> 8801330Svbart@nginx.comNGINX Unit updated to 1.14.0. 8811330Svbart@nginx.com</para> 8821330Svbart@nginx.com</change> 8831330Svbart@nginx.com 8841330Svbart@nginx.com</changes> 8851330Svbart@nginx.com 8861330Svbart@nginx.com 8871330Svbart@nginx.com<changes apply="unit" 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 type="change"> 8921330Svbart@nginx.com<para> 8931330Svbart@nginx.comthe Go package import name changed to "unit.nginx.org/go". 8941330Svbart@nginx.com</para> 8951330Svbart@nginx.com</change> 8961330Svbart@nginx.com 8971330Svbart@nginx.com<change type="change"> 8981330Svbart@nginx.com<para> 8991330Svbart@nginx.comGo package now links to libunit instead of including library sources. 9001330Svbart@nginx.com</para> 9011330Svbart@nginx.com</change> 9021330Svbart@nginx.com 9031330Svbart@nginx.com<change type="feature"> 9041330Svbart@nginx.com<para> 9051330Svbart@nginx.comability to change user and group for isolated applications when Unit daemon 9061330Svbart@nginx.comruns as an unprivileged user. 9071330Svbart@nginx.com</para> 9081330Svbart@nginx.com</change> 9091330Svbart@nginx.com 9101330Svbart@nginx.com<change type="feature"> 9111330Svbart@nginx.com<para> 9121330Svbart@nginx.comrequest routing by source and destination addresses and ports. 9131330Svbart@nginx.com</para> 9141330Svbart@nginx.com</change> 9151330Svbart@nginx.com 9161330Svbart@nginx.com<change type="bugfix"> 9171330Svbart@nginx.com<para> 9181330Svbart@nginx.commemory bloat on large responses. 9191330Svbart@nginx.com</para> 9201330Svbart@nginx.com</change> 9211330Svbart@nginx.com 9221330Svbart@nginx.com</changes> 9231330Svbart@nginx.com 9241330Svbart@nginx.com 9251290Sdefan@nginx.com<changes apply="unit-go1.13" ver="1.13.0" rev="1" 9261290Sdefan@nginx.com date="2019-11-20" time="09:00:00 +0300" 9271290Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9281290Sdefan@nginx.com 9291290Sdefan@nginx.com<change> 9301290Sdefan@nginx.com<para> 9311290Sdefan@nginx.comInitial release of Go 1.13 module for NGINX Unit. 9321290Sdefan@nginx.com</para> 9331290Sdefan@nginx.com</change> 9341290Sdefan@nginx.com 9351290Sdefan@nginx.com</changes> 9361290Sdefan@nginx.com 9371290Sdefan@nginx.com 9381290Sdefan@nginx.com<changes apply="unit-go1.12" 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.12 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 9511289Sdefan@nginx.com<changes apply="unit-python3.8" ver="1.13.0" rev="1" 9521289Sdefan@nginx.com date="2019-11-18" time="14:20:00 +0300" 9531289Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9541289Sdefan@nginx.com 9551289Sdefan@nginx.com<change> 9561289Sdefan@nginx.com<para> 9571289Sdefan@nginx.comInitial release of Python 3.8 module for NGINX Unit. 9581289Sdefan@nginx.com</para> 9591289Sdefan@nginx.com</change> 9601289Sdefan@nginx.com 9611289Sdefan@nginx.com</changes> 9621289Sdefan@nginx.com 9631289Sdefan@nginx.com 9641185Svbart@nginx.com<changes apply="unit-php 9651185Svbart@nginx.com unit-python unit-python2.7 9661185Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 9671185Svbart@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 9681185Svbart@nginx.com unit-perl 9691185Svbart@nginx.com unit-ruby 9701185Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 9711284Svbart@nginx.com ver="1.13.0" rev="1" 9721284Svbart@nginx.com date="2019-11-14" time="18:00:00 +0300" 9731284Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9741284Svbart@nginx.com 9751284Svbart@nginx.com<change> 9761284Svbart@nginx.com<para> 9771284Svbart@nginx.comNGINX Unit updated to 1.13.0. 9781284Svbart@nginx.com</para> 9791284Svbart@nginx.com</change> 9801284Svbart@nginx.com 9811284Svbart@nginx.com</changes> 9821284Svbart@nginx.com 9831284Svbart@nginx.com 9841284Svbart@nginx.com<changes apply="unit" 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 type="feature"> 9891284Svbart@nginx.com<para> 9901284Svbart@nginx.combasic support for HTTP reverse proxying. 9911284Svbart@nginx.com</para> 9921284Svbart@nginx.com</change> 9931284Svbart@nginx.com 9941284Svbart@nginx.com<change type="feature"> 9951284Svbart@nginx.com<para> 9961284Svbart@nginx.comcompatibility with Python 3.8. 9971284Svbart@nginx.com</para> 9981284Svbart@nginx.com</change> 9991284Svbart@nginx.com 10001284Svbart@nginx.com<change type="bugfix"> 10011284Svbart@nginx.com<para> 10021284Svbart@nginx.commemory leak in Python application processes when the close handler was used. 10031284Svbart@nginx.com</para> 10041284Svbart@nginx.com</change> 10051284Svbart@nginx.com 10061284Svbart@nginx.com<change type="bugfix"> 10071284Svbart@nginx.com<para> 10081284Svbart@nginx.comthreads in Python applications might not work correctly. 10091284Svbart@nginx.com</para> 10101284Svbart@nginx.com</change> 10111284Svbart@nginx.com 10121284Svbart@nginx.com<change type="bugfix"> 10131284Svbart@nginx.com<para> 10141284Svbart@nginx.comRuby on Rails applications might not work on Ruby 2.6. 10151284Svbart@nginx.com</para> 10161284Svbart@nginx.com</change> 10171284Svbart@nginx.com 10181284Svbart@nginx.com<change type="bugfix"> 10191284Svbart@nginx.com<para> 10201284Svbart@nginx.combacktraces for uncaught exceptions in Python 3 might be logged with significant 10211284Svbart@nginx.comdelays. 10221284Svbart@nginx.com</para> 10231284Svbart@nginx.com</change> 10241284Svbart@nginx.com 10251284Svbart@nginx.com<change type="bugfix"> 10261284Svbart@nginx.com<para> 10271284Svbart@nginx.comexplicit setting a namespaces isolation option to false might have enabled it. 10281284Svbart@nginx.com</para> 10291284Svbart@nginx.com</change> 10301284Svbart@nginx.com 10311284Svbart@nginx.com</changes> 10321284Svbart@nginx.com 10331284Svbart@nginx.com 10341284Svbart@nginx.com<changes apply="unit-php 10351284Svbart@nginx.com unit-python unit-python2.7 10361284Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 10371284Svbart@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 10381284Svbart@nginx.com unit-perl 10391284Svbart@nginx.com unit-ruby 10401284Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 10411222Svbart@nginx.com ver="1.12.0" rev="1" 10421222Svbart@nginx.com date="2019-10-03" time="18:00:00 +0300" 10431222Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10441222Svbart@nginx.com 10451222Svbart@nginx.com<change> 10461222Svbart@nginx.com<para> 10471222Svbart@nginx.comNGINX Unit updated to 1.12.0. 10481222Svbart@nginx.com</para> 10491222Svbart@nginx.com</change> 10501222Svbart@nginx.com 10511222Svbart@nginx.com</changes> 10521222Svbart@nginx.com 10531222Svbart@nginx.com 10541222Svbart@nginx.com<changes apply="unit" 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 type="feature"> 10591222Svbart@nginx.com<para> 10601222Svbart@nginx.comcompatibility with PHP 7.4. 10611222Svbart@nginx.com</para> 10621222Svbart@nginx.com</change> 10631222Svbart@nginx.com 10641222Svbart@nginx.com<change type="bugfix"> 10651222Svbart@nginx.com<para> 10661222Svbart@nginx.comdescriptors leak on process creation; the bug had appeared in 1.11.0. 10671222Svbart@nginx.com</para> 10681222Svbart@nginx.com</change> 10691222Svbart@nginx.com 10701222Svbart@nginx.com<change type="bugfix"> 10711222Svbart@nginx.com<para> 10721222Svbart@nginx.comTLS connection might be closed prematurely while sending response. 10731222Svbart@nginx.com</para> 10741222Svbart@nginx.com</change> 10751222Svbart@nginx.com 10761222Svbart@nginx.com<change type="bugfix"> 10771222Svbart@nginx.com<para> 10781222Svbart@nginx.comsegmentation fault might have occurred if an irregular file was requested. 10791222Svbart@nginx.com</para> 10801222Svbart@nginx.com</change> 10811222Svbart@nginx.com 10821222Svbart@nginx.com</changes> 10831222Svbart@nginx.com 10841222Svbart@nginx.com 10851222Svbart@nginx.com 10861222Svbart@nginx.com<changes apply="unit-php 10871222Svbart@nginx.com unit-python unit-python2.7 10881222Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 10891222Svbart@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 10901222Svbart@nginx.com unit-perl 10911222Svbart@nginx.com unit-ruby 10921222Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 10931185Svbart@nginx.com ver="1.11.0" rev="1" 10941185Svbart@nginx.com date="2019-09-19" time="18:00:00 +0300" 10951185Svbart@nginx.com packager="Konstantin Pavlov <thresh@nginx.com>"> 10961185Svbart@nginx.com 10971185Svbart@nginx.com<change> 10981185Svbart@nginx.com<para> 10991185Svbart@nginx.comNGINX Unit updated to 1.11.0. 11001185Svbart@nginx.com</para> 11011185Svbart@nginx.com</change> 11021185Svbart@nginx.com 11031185Svbart@nginx.com</changes> 11041185Svbart@nginx.com 11051185Svbart@nginx.com 11061185Svbart@nginx.com<changes apply="unit" 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 type="feature"> 11111185Svbart@nginx.com<para> 11121185Svbart@nginx.combasic support for serving static files. 11131185Svbart@nginx.com</para> 11141185Svbart@nginx.com</change> 11151185Svbart@nginx.com 11161185Svbart@nginx.com<change type="feature"> 11171185Svbart@nginx.com<para> 11181185Svbart@nginx.comisolation of application processes with Linux namespaces. 11191185Svbart@nginx.com</para> 11201185Svbart@nginx.com</change> 11211185Svbart@nginx.com 11221185Svbart@nginx.com<change type="feature"> 11231185Svbart@nginx.com<para> 11241185Svbart@nginx.combuilt-in WebSocket server implementation for Java Servlet Containers. 11251185Svbart@nginx.com</para> 11261185Svbart@nginx.com</change> 11271185Svbart@nginx.com 11281185Svbart@nginx.com<change type="feature"> 11291185Svbart@nginx.com<para> 11301185Svbart@nginx.comdirect addressing of API configuration options containing slashes "/" 11311185Svbart@nginx.comusing URI encoding (%2F). 11321185Svbart@nginx.com</para> 11331185Svbart@nginx.com</change> 11341185Svbart@nginx.com 11351185Svbart@nginx.com<change type="bugfix"> 11361185Svbart@nginx.com<para> 11371185Svbart@nginx.comsegmentation fault might have occurred in Go applications under high load. 11381185Svbart@nginx.com</para> 11391185Svbart@nginx.com</change> 11401185Svbart@nginx.com 11411185Svbart@nginx.com<change type="bugfix"> 11421185Svbart@nginx.com<para> 11431185Svbart@nginx.comWebSocket support was broken if Unit was built with some linkers other than 11441185Svbart@nginx.comGNU ld (e.g. gold or LLD). 11451185Svbart@nginx.com</para> 11461185Svbart@nginx.com</change> 11471185Svbart@nginx.com 11481185Svbart@nginx.com</changes> 11491185Svbart@nginx.com 11501185Svbart@nginx.com 11511142Sdefan@nginx.com<changes apply="unit 11521142Sdefan@nginx.com unit-php 11531142Sdefan@nginx.com unit-python unit-python2.7 11541142Sdefan@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 11551142Sdefan@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 11561142Sdefan@nginx.com unit-perl 11571142Sdefan@nginx.com unit-ruby 11581142Sdefan@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 11591142Sdefan@nginx.com ver="1.10.0" rev="2" 11601142Sdefan@nginx.com date="2019-08-23" time="12:00:00 +0300" 11611142Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11621142Sdefan@nginx.com 11631142Sdefan@nginx.com<change type="bugfix"> 11641142Sdefan@nginx.com<para> 11651142Sdefan@nginx.commissed header files added to unit development package. 11661142Sdefan@nginx.com</para> 11671142Sdefan@nginx.com</change> 11681142Sdefan@nginx.com 11691142Sdefan@nginx.com</changes> 11701142Sdefan@nginx.com 11711142Sdefan@nginx.com 11721134Svbart@nginx.com<changes apply="unit-php 11731134Svbart@nginx.com unit-python unit-python2.7 11741134Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 11751134Svbart@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 11761134Svbart@nginx.com unit-perl 11771134Svbart@nginx.com unit-ruby 11781134Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 11791134Svbart@nginx.com ver="1.10.0" rev="1" 11801134Svbart@nginx.com date="2019-08-22" time="18:00:00 +0300" 11811134Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11821134Svbart@nginx.com 11831134Svbart@nginx.com<change> 11841134Svbart@nginx.com<para> 11851134Svbart@nginx.comNGINX Unit updated to 1.10.0. 11861134Svbart@nginx.com</para> 11871134Svbart@nginx.com</change> 11881134Svbart@nginx.com 11891134Svbart@nginx.com</changes> 11901134Svbart@nginx.com 11911134Svbart@nginx.com 11921134Svbart@nginx.com<changes apply="unit" 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 type="change"> 11971134Svbart@nginx.com<para> 11981134Svbart@nginx.commatching of cookies in routes made case sensitive. 11991134Svbart@nginx.com</para> 12001134Svbart@nginx.com</change> 12011134Svbart@nginx.com 12021134Svbart@nginx.com<change type="change"> 12031134Svbart@nginx.com<para> 12041134Svbart@nginx.comdecreased log level of common errors when clients close connections. 12051134Svbart@nginx.com</para> 12061134Svbart@nginx.com</change> 12071134Svbart@nginx.com 12081134Svbart@nginx.com<change type="change"> 12091134Svbart@nginx.com<para> 12101134Svbart@nginx.comremoved the Perl module's "--include=" ./configure option. 12111134Svbart@nginx.com</para> 12121134Svbart@nginx.com</change> 12131134Svbart@nginx.com 12141134Svbart@nginx.com<change type="feature"> 12151134Svbart@nginx.com<para> 12161134Svbart@nginx.combuilt-in WebSocket server implementation for Node.js module. 12171134Svbart@nginx.com</para> 12181134Svbart@nginx.com</change> 12191134Svbart@nginx.com 12201134Svbart@nginx.com<change type="feature"> 12211134Svbart@nginx.com<para> 12221134Svbart@nginx.comsplitting PATH_INFO from request URI in PHP module. 12231134Svbart@nginx.com</para> 12241134Svbart@nginx.com</change> 12251134Svbart@nginx.com 12261134Svbart@nginx.com<change type="feature"> 12271134Svbart@nginx.com<para> 12281134Svbart@nginx.comrequest routing by scheme (HTTP or HTTPS). 12291134Svbart@nginx.com</para> 12301134Svbart@nginx.com</change> 12311134Svbart@nginx.com 12321134Svbart@nginx.com<change type="feature"> 12331134Svbart@nginx.com<para> 12341134Svbart@nginx.comsupport for multipart requests body in Java module. 12351134Svbart@nginx.com</para> 12361134Svbart@nginx.com</change> 12371134Svbart@nginx.com 12381134Svbart@nginx.com<change type="feature"> 12391134Svbart@nginx.com<para> 12401134Svbart@nginx.comimproved API compatibility with Node.js 11.10 or later. 12411134Svbart@nginx.com</para> 12421134Svbart@nginx.com</change> 12431134Svbart@nginx.com 12441134Svbart@nginx.com<change type="bugfix"> 12451134Svbart@nginx.com<para> 12461134Svbart@nginx.comreconfiguration failed if "listeners" or "applications" objects were missing. 12471134Svbart@nginx.com</para> 12481134Svbart@nginx.com</change> 12491134Svbart@nginx.com 12501134Svbart@nginx.com<change type="bugfix"> 12511134Svbart@nginx.com<para> 12521134Svbart@nginx.comapplying a large configuration might have failed. 12531134Svbart@nginx.com</para> 12541134Svbart@nginx.com</change> 12551134Svbart@nginx.com 12561134Svbart@nginx.com</changes> 12571134Svbart@nginx.com 12581134Svbart@nginx.com 12591069Svbart@nginx.com<changes apply="unit-go1.11" ver="1.9.0" rev="1" 12601069Svbart@nginx.com date="2019-05-30" time="18:00:00 +0300" 12611069Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 12621069Svbart@nginx.com 12631069Svbart@nginx.com<change> 12641069Svbart@nginx.com<para> 12651069Svbart@nginx.comInitial release of Go 1.11 module for NGINX Unit. 12661069Svbart@nginx.com</para> 12671069Svbart@nginx.com</change> 12681069Svbart@nginx.com 12691069Svbart@nginx.com</changes> 12701069Svbart@nginx.com 12711069Svbart@nginx.com 12721069Svbart@nginx.com<changes apply="unit-php 12731069Svbart@nginx.com unit-python unit-python2.7 12741069Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 12751069Svbart@nginx.com unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 12761069Svbart@nginx.com unit-perl 12771069Svbart@nginx.com unit-ruby 12781069Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 12791069Svbart@nginx.com ver="1.9.0" rev="1" 12801069Svbart@nginx.com date="2019-05-30" time="18:00:00 +0300" 12811069Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 12821069Svbart@nginx.com 12831069Svbart@nginx.com<change> 12841069Svbart@nginx.com<para> 12851069Svbart@nginx.comNGINX Unit updated to 1.9.0. 12861069Svbart@nginx.com</para> 12871069Svbart@nginx.com</change> 12881069Svbart@nginx.com 12891069Svbart@nginx.com</changes> 12901069Svbart@nginx.com 12911069Svbart@nginx.com 12921069Svbart@nginx.com<changes apply="unit" 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 type="feature"> 12971069Svbart@nginx.com<para> 12981069Svbart@nginx.comrequest routing by arguments, headers, and cookies. 12991069Svbart@nginx.com</para> 13001069Svbart@nginx.com</change> 13011069Svbart@nginx.com 13021069Svbart@nginx.com<change type="feature"> 13031069Svbart@nginx.com<para> 13041069Svbart@nginx.comroute matching patterns allow a wildcard in the middle. 13051069Svbart@nginx.com</para> 13061069Svbart@nginx.com</change> 13071069Svbart@nginx.com 13081069Svbart@nginx.com<change type="feature"> 13091069Svbart@nginx.com<para> 13101069Svbart@nginx.comPOST operation for appending elements to arrays in configuration. 13111069Svbart@nginx.com</para> 13121069Svbart@nginx.com</change> 13131069Svbart@nginx.com 13141069Svbart@nginx.com<change type="feature"> 13151069Svbart@nginx.com<para> 13161069Svbart@nginx.comsupport for changing credentials using CAP_SETUID and CAP_SETGID capabilities 13171069Svbart@nginx.comon Linux without running main process as privileged user. 13181069Svbart@nginx.com</para> 13191069Svbart@nginx.com</change> 13201069Svbart@nginx.com 13211069Svbart@nginx.com<change type="bugfix"> 13221069Svbart@nginx.com<para> 13231069Svbart@nginx.commemory leak in the router process might have happened when a client 13241069Svbart@nginx.comprematurely closed the connection. 13251069Svbart@nginx.com</para> 13261069Svbart@nginx.com</change> 13271069Svbart@nginx.com 13281069Svbart@nginx.com<change type="bugfix"> 13291069Svbart@nginx.com<para> 13301069Svbart@nginx.comapplying a large configuration might have failed. 13311069Svbart@nginx.com</para> 13321069Svbart@nginx.com</change> 13331069Svbart@nginx.com 13341069Svbart@nginx.com<change type="bugfix"> 13351069Svbart@nginx.com<para> 13361069Svbart@nginx.comPUT and DELETE operations on array elements in configuration did not work. 13371069Svbart@nginx.com</para> 13381069Svbart@nginx.com</change> 13391069Svbart@nginx.com 13401069Svbart@nginx.com<change type="bugfix"> 13411069Svbart@nginx.com<para> 13421069Svbart@nginx.comrequest schema in applications did not reflect TLS connections. 13431069Svbart@nginx.com</para> 13441069Svbart@nginx.com</change> 13451069Svbart@nginx.com 13461069Svbart@nginx.com<change type="bugfix"> 13471069Svbart@nginx.com<para> 13481069Svbart@nginx.comrestored compatibility with Node.js applications that use 13491069Svbart@nginx.comServerResponse._implicitHeader() function; the bug had appeared in 1.7. 13501069Svbart@nginx.com</para> 13511069Svbart@nginx.com</change> 13521069Svbart@nginx.com 13531069Svbart@nginx.com<change type="bugfix"> 13541069Svbart@nginx.com<para> 13551069Svbart@nginx.comvarious compatibility issues with Node.js applications. 13561069Svbart@nginx.com</para> 13571069Svbart@nginx.com</change> 13581069Svbart@nginx.com 13591069Svbart@nginx.com</changes> 13601069Svbart@nginx.com 1361