1369Sdefan@nginx.com<?xml version="1.0" ?> 2369Sdefan@nginx.com<!DOCTYPE change_log SYSTEM "changes.dtd" > 3369Sdefan@nginx.com 4369Sdefan@nginx.com 5369Sdefan@nginx.com<change_log title="unit"> 6369Sdefan@nginx.com 7369Sdefan@nginx.com 81896Svbart@nginx.com<changes apply="unit-php 91896Svbart@nginx.com unit-python unit-python2.7 101896Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 111896Svbart@nginx.com unit-python3.8 unit-python3.9 121896Svbart@nginx.com unit-go 131896Svbart@nginx.com unit-perl 141896Svbart@nginx.com unit-ruby 151896Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 161896Svbart@nginx.com unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17" 171896Svbart@nginx.com ver="1.25.0" rev="1" 181896Svbart@nginx.com date="" time="" 191896Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 201896Svbart@nginx.com 211896Svbart@nginx.com<change> 221896Svbart@nginx.com<para> 231896Svbart@nginx.comNGINX Unit updated to 1.25.0. 241896Svbart@nginx.com</para> 251896Svbart@nginx.com</change> 261896Svbart@nginx.com 271896Svbart@nginx.com</changes> 281896Svbart@nginx.com 291896Svbart@nginx.com 301896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1" 311896Svbart@nginx.com date="" time="" 321896Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 331896Svbart@nginx.com 341910So.canty@f5.com<change type="feature"> 351910So.canty@f5.com<para> 361920Sa.suvorov@f5.comTLS sessions cache. 371920Sa.suvorov@f5.com</para> 381920Sa.suvorov@f5.com</change> 391920Sa.suvorov@f5.com 401920Sa.suvorov@f5.com<change type="feature"> 411920Sa.suvorov@f5.com<para> 421910So.canty@f5.comprocess and thread lifecycle hooks in Ruby. 431910So.canty@f5.com</para> 441910So.canty@f5.com</change> 451910So.canty@f5.com 461926Smax.romanov@nginx.com<change type="feature"> 471926Smax.romanov@nginx.com<para> 481926Smax.romanov@nginx.comapplication restart control. 491926Smax.romanov@nginx.com</para> 501926Smax.romanov@nginx.com</change> 511926Smax.romanov@nginx.com 521907Smax.romanov@nginx.com<change type="bugfix"> 531907Smax.romanov@nginx.com<para> 541921Sa.suvorov@f5.comTLS connection was rejected for configuration with more than one 551921Sa.suvorov@f5.comcertificate bundle in a listener if a client did not use SNI. 561921Sa.suvorov@f5.com</para> 571921Sa.suvorov@f5.com</change> 581921Sa.suvorov@f5.com 591921Sa.suvorov@f5.com 601921Sa.suvorov@f5.com<change type="bugfix"> 611921Sa.suvorov@f5.com<para> 621907Smax.romanov@nginx.comthe router process could crash on TLS connection open when multiple listeners 631907Smax.romanov@nginx.comwith TLS certificate configured; the bug had appeared in 1.23.0. 641907Smax.romanov@nginx.com</para> 651907Smax.romanov@nginx.com</change> 661907Smax.romanov@nginx.com 671907Smax.romanov@nginx.com<change type="bugfix"> 681907Smax.romanov@nginx.com<para> 691915Smax.romanov@nginx.comthe router process could crash on rapid mutithreaded application 701915Smax.romanov@nginx.comreconfiguration. 711915Smax.romanov@nginx.com</para> 721915Smax.romanov@nginx.com</change> 731915Smax.romanov@nginx.com 741915Smax.romanov@nginx.com<change type="bugfix"> 751915Smax.romanov@nginx.com<para> 761907Smax.romanov@nginx.coma descriptor and memory leak occurred in the router process when an app 771907Smax.romanov@nginx.comprocess stopped or crashed. 781907Smax.romanov@nginx.com</para> 791907Smax.romanov@nginx.com</change> 801907Smax.romanov@nginx.com 811909So.canty@f5.com<change type="bugfix"> 821909So.canty@f5.com<para> 831909So.canty@f5.comthe controller or router process could crash if the configuration contained 841909So.canty@f5.coma full-form IPv6 in a listener address. 851909So.canty@f5.com</para> 861909So.canty@f5.com</change> 871909So.canty@f5.com 881916Smax.romanov@nginx.com<change type="bugfix"> 891916Smax.romanov@nginx.com<para> 901916Smax.romanov@nginx.comcompatibility issues with some Python ASGI apps, notably based on Starlette 911916Smax.romanov@nginx.comframework. 921916Smax.romanov@nginx.com</para> 931916Smax.romanov@nginx.com</change> 941916Smax.romanov@nginx.com 951929Sz.hong@f5.com<change type="bugfix"> 961929Sz.hong@f5.com<para> 971929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes" 981929Sz.hong@f5.comor "upstreams" using a variable "pass" option. 991929Sz.hong@f5.com</para> 1001929Sz.hong@f5.com</change> 1011929Sz.hong@f5.com 102*1930So.canty@f5.com<change type="bugfix"> 103*1930So.canty@f5.com<para> 104*1930So.canty@f5.comthe router process crashed while matching a request to an empty array of 105*1930So.canty@f5.comsource or destination address patterns. 106*1930So.canty@f5.com</para> 107*1930So.canty@f5.com</change> 108*1930So.canty@f5.com 1091896Svbart@nginx.com</changes> 1101896Svbart@nginx.com 1111896Svbart@nginx.com 1121887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1" 1131891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 1141887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1151887Sdefan@nginx.com 1161887Sdefan@nginx.com<change> 1171887Sdefan@nginx.com<para> 1181887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit. 1191887Sdefan@nginx.com</para> 1201887Sdefan@nginx.com</change> 1211887Sdefan@nginx.com 1221887Sdefan@nginx.com</changes> 1231887Sdefan@nginx.com 1241887Sdefan@nginx.com 1251887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1" 1261891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 1271887Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1281887Sdefan@nginx.com 1291887Sdefan@nginx.com<change> 1301887Sdefan@nginx.com<para> 1311887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit. 1321887Sdefan@nginx.com</para> 1331887Sdefan@nginx.com</change> 1341887Sdefan@nginx.com 1351887Sdefan@nginx.com</changes> 1361887Sdefan@nginx.com 1371887Sdefan@nginx.com 1381834Svbart@nginx.com<changes apply="unit-php 1391834Svbart@nginx.com unit-python unit-python2.7 1401834Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 1411834Svbart@nginx.com unit-python3.8 unit-python3.9 1421834Svbart@nginx.com unit-go 1431834Svbart@nginx.com unit-perl 1441834Svbart@nginx.com unit-ruby 1451834Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 1461834Svbart@nginx.com unit-jsc14 unit-jsc15" 1471839Svbart@nginx.com ver="1.24.0" rev="1" 1481891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 1491839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1501839Svbart@nginx.com 1511839Svbart@nginx.com<change> 1521839Svbart@nginx.com<para> 1531839Svbart@nginx.comNGINX Unit updated to 1.24.0. 1541839Svbart@nginx.com</para> 1551839Svbart@nginx.com</change> 1561839Svbart@nginx.com 1571839Svbart@nginx.com</changes> 1581839Svbart@nginx.com 1591839Svbart@nginx.com 1601839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1" 1611891Svbart@nginx.com date="2021-05-27" time="18:00:00 +0300" 1621839Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 1631839Svbart@nginx.com 1641882So.canty@f5.com<change type="change"> 1651882So.canty@f5.com<para> 1661882So.canty@f5.comPHP added to the default MIME type list. 1671882So.canty@f5.com</para> 1681882So.canty@f5.com</change> 1691882So.canty@f5.com 1701855Sz.hong@f5.com<change type="feature"> 1711855Sz.hong@f5.com<para> 1721885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands. 1731885Sa.suvorov@f5.com</para> 1741885Sa.suvorov@f5.com</change> 1751885Sa.suvorov@f5.com 1761885Sa.suvorov@f5.com<change type="feature"> 1771885Sa.suvorov@f5.com<para> 1781890Svbart@nginx.comthe ability to limit static file serving by MIME types. 1791890Svbart@nginx.com</para> 1801890Svbart@nginx.com</change> 1811890Svbart@nginx.com 1821890Svbart@nginx.com<change type="feature"> 1831890Svbart@nginx.com<para> 1841890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount 1851890Svbart@nginx.compoint traversal on a per-request basis when serving static files. 1861872So.canty@f5.com</para> 1871872So.canty@f5.com</change> 1881872So.canty@f5.com 1891872So.canty@f5.com<change type="feature"> 1901872So.canty@f5.com<para> 1911889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in 1921889Sartem.konev@nginx.comNode.js. 1931865So.canty@f5.com</para> 1941865So.canty@f5.com</change> 1951865So.canty@f5.com 1961865So.canty@f5.com<change type="feature"> 1971865So.canty@f5.com<para> 1981890Svbart@nginx.commultiple "targets" in Python applications. 1991855Sz.hong@f5.com</para> 2001855Sz.hong@f5.com</change> 2011855Sz.hong@f5.com 2021870So.canty@f5.com<change type="feature"> 2031870So.canty@f5.com<para> 2041870So.canty@f5.comcompatibility with Ruby 3.0. 2051870So.canty@f5.com</para> 2061870So.canty@f5.com</change> 2071870So.canty@f5.com 2081861Svbart@nginx.com<change type="bugfix"> 2091861Svbart@nginx.com<para> 2101889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection. 2111884Sa.suvorov@f5.com</para> 2121884Sa.suvorov@f5.com</change> 2131884Sa.suvorov@f5.com 2141884Sa.suvorov@f5.com<change type="bugfix"> 2151884Sa.suvorov@f5.com<para> 2161861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if 2171861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled. 2181861Svbart@nginx.com</para> 2191861Svbart@nginx.com</change> 2201861Svbart@nginx.com 2211839Svbart@nginx.com</changes> 2221839Svbart@nginx.com 2231839Svbart@nginx.com 2241839Svbart@nginx.com<changes apply="unit-php 2251839Svbart@nginx.com unit-python unit-python2.7 2261839Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 2271839Svbart@nginx.com unit-python3.8 unit-python3.9 2281839Svbart@nginx.com unit-go 2291839Svbart@nginx.com unit-perl 2301839Svbart@nginx.com unit-ruby 2311839Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 2321839Svbart@nginx.com unit-jsc14 unit-jsc15" 2331834Svbart@nginx.com ver="1.23.0" rev="1" 2341834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 2351834Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2361834Svbart@nginx.com 2371834Svbart@nginx.com<change> 2381834Svbart@nginx.com<para> 2391834Svbart@nginx.comNGINX Unit updated to 1.23.0. 2401834Svbart@nginx.com</para> 2411834Svbart@nginx.com</change> 2421834Svbart@nginx.com 2431834Svbart@nginx.com</changes> 2441834Svbart@nginx.com 2451834Svbart@nginx.com 2461806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1" 2471834Svbart@nginx.com date="2021-03-25" time="18:00:00 +0300" 2481806Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 2491806Svbart@nginx.com 2501825Sthresh@nginx.com<change type="feature"> 2511825Sthresh@nginx.com<para> 2521833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name 2531828Sa.suvorov@f5.comIndication (SNI) TLS extension. 2541828Sa.suvorov@f5.com</para> 2551828Sa.suvorov@f5.com</change> 2561828Sa.suvorov@f5.com 2571828Sa.suvorov@f5.com<change type="feature"> 2581828Sa.suvorov@f5.com<para> 2591833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page 2601833Sartem.konev@nginx.cominstallation. 2611825Sthresh@nginx.com</para> 2621825Sthresh@nginx.com</change> 2631825Sthresh@nginx.com 2641811Smax.romanov@nginx.com<change type="bugfix"> 2651811Smax.romanov@nginx.com<para> 2661812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had 2671812Svbart@nginx.comappeared in 1.17.0. 2681812Svbart@nginx.com</para> 2691812Svbart@nginx.com</change> 2701812Svbart@nginx.com 2711812Svbart@nginx.com<change type="bugfix"> 2721812Svbart@nginx.com<para> 2731833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had 2741812Svbart@nginx.comappeared in 1.6. 2751812Svbart@nginx.com</para> 2761812Svbart@nginx.com</change> 2771812Svbart@nginx.com 2781812Svbart@nginx.com<change type="bugfix"> 2791812Svbart@nginx.com<para> 2801833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing 2811832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0. 2821832Smax.romanov@nginx.com</para> 2831832Smax.romanov@nginx.com</change> 2841832Smax.romanov@nginx.com 2851832Smax.romanov@nginx.com<change type="bugfix"> 2861832Smax.romanov@nginx.com<para> 2871833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or 2881811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0. 2891811Smax.romanov@nginx.com</para> 2901811Smax.romanov@nginx.com</change> 2911806Svbart@nginx.com 2921813Svbart@nginx.com<change type="bugfix"> 2931813Svbart@nginx.com<para> 2941813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in 2951813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart. 2961813Svbart@nginx.com</para> 2971813Svbart@nginx.com</change> 2981813Svbart@nginx.com 2991814Svbart@nginx.com<change type="bugfix"> 3001814Svbart@nginx.com<para> 3011820Svbart@nginx.comthe controller process could crash while requesting information about a 3021820Svbart@nginx.comcertificate with a non-DNS SAN entry. 3031820Svbart@nginx.com</para> 3041820Svbart@nginx.com</change> 3051820Svbart@nginx.com 3061820Svbart@nginx.com<change type="bugfix"> 3071820Svbart@nginx.com<para> 3081822Svbart@nginx.comthe controller process could crash on manipulations with a certificate 3091833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer. 3101822Svbart@nginx.com</para> 3111822Svbart@nginx.com</change> 3121822Svbart@nginx.com 3131822Svbart@nginx.com<change type="bugfix"> 3141822Svbart@nginx.com<para> 3151833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding 3161833Sartem.konev@nginx.comclass. 3171814Svbart@nginx.com</para> 3181814Svbart@nginx.com</change> 3191814Svbart@nginx.com 3201815Svbart@nginx.com<change type="bugfix"> 3211815Svbart@nginx.com<para> 3221815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had 3231815Svbart@nginx.comappeared in 1.22.0. 3241815Svbart@nginx.com</para> 3251815Svbart@nginx.com</change> 3261815Svbart@nginx.com 3271806Svbart@nginx.com</changes> 3281806Svbart@nginx.com 3291806Svbart@nginx.com 3301798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1" 3311798Sdefan@nginx.com date="2021-02-04" time="18:00:00 +0300" 3321798Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3331798Sdefan@nginx.com 3341798Sdefan@nginx.com<change> 3351798Sdefan@nginx.com<para> 3361798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit. 3371798Sdefan@nginx.com</para> 3381798Sdefan@nginx.com</change> 3391798Sdefan@nginx.com 3401798Sdefan@nginx.com</changes> 3411798Sdefan@nginx.com 3421798Sdefan@nginx.com 3431763Sdefan@nginx.com<changes apply="unit-php 3441763Sdefan@nginx.com unit-python unit-python2.7 3451763Sdefan@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 3461763Sdefan@nginx.com unit-python3.8 3471763Sdefan@nginx.com unit-go 3481763Sdefan@nginx.com unit-perl 3491763Sdefan@nginx.com unit-ruby 3501763Sdefan@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13 3511763Sdefan@nginx.com unit-jsc14 unit-jsc15" 3521763Sdefan@nginx.com ver="1.22.0" rev="1" 3531793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 3541763Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3551763Sdefan@nginx.com 3561763Sdefan@nginx.com<change> 3571763Sdefan@nginx.com<para> 3581763Sdefan@nginx.comNGINX Unit updated to 1.22.0. 3591763Sdefan@nginx.com</para> 3601763Sdefan@nginx.com</change> 3611763Sdefan@nginx.com 3621763Sdefan@nginx.com</changes> 3631763Sdefan@nginx.com 3641763Sdefan@nginx.com 3651727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1" 3661793Svbart@nginx.com date="2021-02-04" time="18:00:00 +0300" 3671727Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 3681727Svbart@nginx.com 3691759Svbart@nginx.com<change type="feature"> 3701759Svbart@nginx.com<para> 3711792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now 3721792Svbart@nginx.comcompliant with Stream API. 3731759Svbart@nginx.com</para> 3741759Svbart@nginx.com</change> 3751759Svbart@nginx.com 3761766Smax.romanov@nginx.com<change type="feature"> 3771766Smax.romanov@nginx.com<para> 3781792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python 3791792Svbart@nginx.comapps. 3801732Svbart@nginx.com</para> 3811732Svbart@nginx.com</change> 3821732Svbart@nginx.com 3831733Svbart@nginx.com<change type="bugfix"> 3841733Svbart@nginx.com<para> 3851792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than 3861792Svbart@nginx.com128K; the bug had appeared in 1.13.0. 3871754Smax.romanov@nginx.com</para> 3881754Smax.romanov@nginx.com</change> 3891754Smax.romanov@nginx.com 3901755Smax.romanov@nginx.com<change type="bugfix"> 3911755Smax.romanov@nginx.com<para> 3921790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had 3931755Smax.romanov@nginx.comappeared in 1.19.0. 3941755Smax.romanov@nginx.com</para> 3951755Smax.romanov@nginx.com</change> 3961755Smax.romanov@nginx.com 3971756Smax.romanov@nginx.com<change type="bugfix"> 3981756Smax.romanov@nginx.com<para> 3991790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had 4001790Sartem.konev@nginx.comappeared in 1.19.0. 4011756Smax.romanov@nginx.com</para> 4021756Smax.romanov@nginx.com</change> 4031756Smax.romanov@nginx.com 4041760Smax.romanov@nginx.com<change type="bugfix"> 4051760Smax.romanov@nginx.com<para> 4061792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes. 4071792Svbart@nginx.com</para> 4081792Svbart@nginx.com</change> 4091792Svbart@nginx.com 4101792Svbart@nginx.com<change type="bugfix"> 4111792Svbart@nginx.com<para> 4121792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were 4131792Svbart@nginx.commissing in the PHP module. 4141792Svbart@nginx.com</para> 4151792Svbart@nginx.com</change> 4161792Svbart@nginx.com 4171792Svbart@nginx.com<change type="bugfix"> 4181792Svbart@nginx.com<para> 4191792Svbart@nginx.comthe router process could crash with multithreaded apps under high load. 4201792Svbart@nginx.com</para> 4211792Svbart@nginx.com</change> 4221792Svbart@nginx.com 4231792Svbart@nginx.com<change type="bugfix"> 4241792Svbart@nginx.com<para> 4251792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load. 4261792Svbart@nginx.com</para> 4271792Svbart@nginx.com</change> 4281792Svbart@nginx.com 4291792Svbart@nginx.com<change type="bugfix"> 4301792Svbart@nginx.com<para> 4311792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used; 4321792Svbart@nginx.comthe bug had appeared in 1.21.0. 4331760Smax.romanov@nginx.com</para> 4341760Smax.romanov@nginx.com</change> 4351760Smax.romanov@nginx.com 4361780Smax.romanov@nginx.com<change type="bugfix"> 4371780Smax.romanov@nginx.com<para> 4381790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used 4391790Sartem.konev@nginx.comWebSocket. 4401780Smax.romanov@nginx.com</para> 4411780Smax.romanov@nginx.com</change> 4421780Smax.romanov@nginx.com 4431789Smax.romanov@nginx.com<change type="bugfix"> 4441789Smax.romanov@nginx.com<para> 4451789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring 4461789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0. 4471789Smax.romanov@nginx.com</para> 4481789Smax.romanov@nginx.com</change> 4491789Smax.romanov@nginx.com 4501727Svbart@nginx.com</changes> 4511727Svbart@nginx.com 4521727Svbart@nginx.com 4531722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1" 4541722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 4551722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4561722Svbart@nginx.com 4571722Svbart@nginx.com<change> 4581722Svbart@nginx.com<para> 4591722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit. 4601722Svbart@nginx.com</para> 4611722Svbart@nginx.com</change> 4621722Svbart@nginx.com 4631722Svbart@nginx.com</changes> 4641722Svbart@nginx.com 4651722Svbart@nginx.com 4661722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1" 4671722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 4681722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4691722Svbart@nginx.com 4701722Svbart@nginx.com<change> 4711722Svbart@nginx.com<para> 4721722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit. 4731722Svbart@nginx.com</para> 4741722Svbart@nginx.com</change> 4751722Svbart@nginx.com 4761722Svbart@nginx.com</changes> 4771722Svbart@nginx.com 4781722Svbart@nginx.com 4791722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1" 4801722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 4811722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 4821722Svbart@nginx.com 4831722Svbart@nginx.com<change> 4841722Svbart@nginx.com<para> 4851722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit. 4861722Svbart@nginx.com</para> 4871722Svbart@nginx.com</change> 4881722Svbart@nginx.com 4891722Svbart@nginx.com</changes> 4901722Svbart@nginx.com 4911722Svbart@nginx.com 4921722Svbart@nginx.com<changes apply="unit-php 4931722Svbart@nginx.com unit-python unit-python2.7 4941722Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 4951722Svbart@nginx.com unit-python3.8 4961722Svbart@nginx.com unit-go 4971722Svbart@nginx.com unit-perl 4981722Svbart@nginx.com unit-ruby 4991722Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 5001722Svbart@nginx.com ver="1.21.0" rev="1" 5011722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 5021722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5031722Svbart@nginx.com 5041722Svbart@nginx.com<change> 5051722Svbart@nginx.com<para> 5061722Svbart@nginx.comNGINX Unit updated to 1.21.0. 5071722Svbart@nginx.com</para> 5081722Svbart@nginx.com</change> 5091722Svbart@nginx.com 5101722Svbart@nginx.com</changes> 5111722Svbart@nginx.com 5121722Svbart@nginx.com 5131722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1" 5141722Svbart@nginx.com date="2020-11-19" time="18:00:00 +0300" 5151722Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 5161722Svbart@nginx.com 5171722Svbart@nginx.com<change type="change"> 5181722Svbart@nginx.com<para> 5191722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used. 5201722Svbart@nginx.com</para> 5211722Svbart@nginx.com</change> 5221722Svbart@nginx.com 5231722Svbart@nginx.com<change type="change"> 5241722Svbart@nginx.com<para> 5251722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field 5261722Svbart@nginx.comnames. 5271722Svbart@nginx.com</para> 5281722Svbart@nginx.com</change> 5291722Svbart@nginx.com 5301722Svbart@nginx.com<change type="change"> 5311722Svbart@nginx.com<para> 5321722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by 5331722Svbart@nginx.comdefault. 5341722Svbart@nginx.com</para> 5351722Svbart@nginx.com</change> 5361722Svbart@nginx.com 5371722Svbart@nginx.com<change type="feature"> 5381722Svbart@nginx.com<para> 5391722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps. 5401722Svbart@nginx.com</para> 5411722Svbart@nginx.com</change> 5421722Svbart@nginx.com 5431722Svbart@nginx.com<change type="feature"> 5441722Svbart@nginx.com<para> 5451722Svbart@nginx.comregular expressions in route matching patterns. 5461722Svbart@nginx.com</para> 5471722Svbart@nginx.com</change> 5481722Svbart@nginx.com 5491722Svbart@nginx.com<change type="feature"> 5501722Svbart@nginx.com<para> 5511722Svbart@nginx.comcompatibility with Python 3.9. 5521722Svbart@nginx.com</para> 5531722Svbart@nginx.com</change> 5541722Svbart@nginx.com 5551722Svbart@nginx.com<change type="feature"> 5561722Svbart@nginx.com<para> 5571722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications. 5581722Svbart@nginx.com</para> 5591722Svbart@nginx.com</change> 5601722Svbart@nginx.com 5611722Svbart@nginx.com<change type="feature"> 5621722Svbart@nginx.com<para> 5631722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI. 5641722Svbart@nginx.com</para> 5651722Svbart@nginx.com</change> 5661722Svbart@nginx.com 5671722Svbart@nginx.com<change type="feature"> 5681722Svbart@nginx.com<para> 5691722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and 5701722Svbart@nginx.comcontinues code execution without holding onto the client connection. 5711722Svbart@nginx.com</para> 5721722Svbart@nginx.com</change> 5731722Svbart@nginx.com 5741722Svbart@nginx.com<change type="feature"> 5751722Svbart@nginx.com<para> 5761722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header 5771722Svbart@nginx.comfields with irregular (but still valid) characters in the field name. 5781722Svbart@nginx.com</para> 5791722Svbart@nginx.com</change> 5801722Svbart@nginx.com 5811722Svbart@nginx.com<change type="feature"> 5821722Svbart@nginx.com<para> 5831722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic 5841722Svbart@nginx.commounting of eponymous filesystems. 5851722Svbart@nginx.com</para> 5861722Svbart@nginx.com</change> 5871722Svbart@nginx.com 5881722Svbart@nginx.com<change type="bugfix"> 5891722Svbart@nginx.com<para> 5901722Svbart@nginx.comthe router process could crash when running Go applications under high load; 5911722Svbart@nginx.comthe bug had appeared in 1.19.0. 5921722Svbart@nginx.com</para> 5931722Svbart@nginx.com</change> 5941722Svbart@nginx.com 5951722Svbart@nginx.com<change type="bugfix"> 5961722Svbart@nginx.com<para> 5971722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation. 5981722Svbart@nginx.com</para> 5991722Svbart@nginx.com</change> 6001722Svbart@nginx.com 6011722Svbart@nginx.com<change type="bugfix"> 6021722Svbart@nginx.com<para> 6031722Svbart@nginx.comvarious compatibility issues in Java applications. 6041722Svbart@nginx.com</para> 6051722Svbart@nginx.com</change> 6061722Svbart@nginx.com 6071722Svbart@nginx.com<change type="bugfix"> 6081722Svbart@nginx.com<para> 6091722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that 6101722Svbart@nginx.comuse "rootfs" isolation. 6111722Svbart@nginx.com</para> 6121722Svbart@nginx.com</change> 6131722Svbart@nginx.com 6141722Svbart@nginx.com</changes> 6151722Svbart@nginx.com 6161722Svbart@nginx.com 6171330Svbart@nginx.com<changes apply="unit-php 6181330Svbart@nginx.com unit-python unit-python2.7 6191330Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 6201330Svbart@nginx.com unit-python3.8 6211330Svbart@nginx.com unit-go 6221330Svbart@nginx.com unit-perl 6231330Svbart@nginx.com unit-ruby 6241330Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 6251640Svbart@nginx.com ver="1.20.0" rev="1" 6261640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 6271640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6281640Svbart@nginx.com 6291640Svbart@nginx.com<change> 6301640Svbart@nginx.com<para> 6311640Svbart@nginx.comNGINX Unit updated to 1.20.0. 6321640Svbart@nginx.com</para> 6331640Svbart@nginx.com</change> 6341640Svbart@nginx.com 6351640Svbart@nginx.com</changes> 6361640Svbart@nginx.com 6371640Svbart@nginx.com 6381640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1" 6391640Svbart@nginx.com date="2020-10-08" time="18:00:00 +0300" 6401640Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 6411640Svbart@nginx.com 6421640Svbart@nginx.com<change type="change"> 6431640Svbart@nginx.com<para> 6441640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all 6451640Svbart@nginx.comextensions from the host system. 6461640Svbart@nginx.com</para> 6471640Svbart@nginx.com</change> 6481640Svbart@nginx.com 6491640Svbart@nginx.com<change type="change"> 6501640Svbart@nginx.com<para> 6511640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list. 6521640Svbart@nginx.com</para> 6531640Svbart@nginx.com</change> 6541640Svbart@nginx.com 6551643Svbart@nginx.com<change type="change"> 6561643Svbart@nginx.com<para> 6571643Svbart@nginx.comfunctional tests migrated to the pytest framework. 6581643Svbart@nginx.com</para> 6591643Svbart@nginx.com</change> 6601643Svbart@nginx.com 6611640Svbart@nginx.com<change type="feature"> 6621640Svbart@nginx.com<para> 6631640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server 6641640Svbart@nginx.cominterface. 6651640Svbart@nginx.com</para> 6661640Svbart@nginx.com</change> 6671640Svbart@nginx.com 6681640Svbart@nginx.com<change type="feature"> 6691640Svbart@nginx.com<para> 6701640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for 6711640Svbart@nginx.comapplications, compatible with the HTTP & WebSocket ASGI Message Format 2.1 6721640Svbart@nginx.comspecification. 6731640Svbart@nginx.com</para> 6741640Svbart@nginx.com</change> 6751640Svbart@nginx.com 6761640Svbart@nginx.com<change type="feature"> 6771640Svbart@nginx.com<para> 6781640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application 6791640Svbart@nginx.comenvironments. 6801640Svbart@nginx.com</para> 6811640Svbart@nginx.com</change> 6821640Svbart@nginx.com 6831640Svbart@nginx.com<change type="feature"> 6841640Svbart@nginx.com<para> 6851640Svbart@nginx.comthe $host variable contains a normalized "Host" request value. 6861640Svbart@nginx.com</para> 6871640Svbart@nginx.com</change> 6881640Svbart@nginx.com 6891640Svbart@nginx.com<change type="feature"> 6901640Svbart@nginx.com<para> 6911640Svbart@nginx.comthe "callable" option sets Python application callable names. 6921640Svbart@nginx.com</para> 6931640Svbart@nginx.com</change> 6941640Svbart@nginx.com 6951640Svbart@nginx.com<change type="feature"> 6961640Svbart@nginx.com<para> 6971640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet. 6981640Svbart@nginx.com</para> 6991640Svbart@nginx.com</change> 7001640Svbart@nginx.com 7011640Svbart@nginx.com<change type="feature"> 7021640Svbart@nginx.com<para> 7031640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the 7041640Svbart@nginx.comautomatic mounting of language module dependencies. 7051640Svbart@nginx.com</para> 7061640Svbart@nginx.com</change> 7071640Svbart@nginx.com 7081640Svbart@nginx.com<change type="bugfix"> 7091640Svbart@nginx.com<para> 7101640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared 7111640Svbart@nginx.comin 1.19.0. Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it. 7121640Svbart@nginx.com</para> 7131640Svbart@nginx.com</change> 7141640Svbart@nginx.com 7151640Svbart@nginx.com<change type="bugfix"> 7161640Svbart@nginx.com<para> 7171640Svbart@nginx.comthe router process could crash during reconfiguration. 7181640Svbart@nginx.com</para> 7191640Svbart@nginx.com</change> 7201640Svbart@nginx.com 7211640Svbart@nginx.com<change type="bugfix"> 7221640Svbart@nginx.com<para> 7231640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0. 7241640Svbart@nginx.com</para> 7251640Svbart@nginx.com</change> 7261640Svbart@nginx.com 7271640Svbart@nginx.com<change type="bugfix"> 7281640Svbart@nginx.com<para> 7291640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly; 7301640Svbart@nginx.comthe bug had appeared in 1.19.0. 7311640Svbart@nginx.com</para> 7321640Svbart@nginx.com</change> 7331640Svbart@nginx.com 7341640Svbart@nginx.com<change type="bugfix"> 7351640Svbart@nginx.com<para> 7361640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD; 7371640Svbart@nginx.comthe bug had appeared in 1.16.0. 7381640Svbart@nginx.com</para> 7391640Svbart@nginx.com</change> 7401640Svbart@nginx.com 7411640Svbart@nginx.com</changes> 7421640Svbart@nginx.com 7431640Svbart@nginx.com 7441640Svbart@nginx.com<changes apply="unit-php 7451640Svbart@nginx.com unit-python unit-python2.7 7461640Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 7471640Svbart@nginx.com unit-python3.8 7481640Svbart@nginx.com unit-go 7491640Svbart@nginx.com unit-perl 7501640Svbart@nginx.com unit-ruby 7511640Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 7521570Svbart@nginx.com ver="1.19.0" rev="1" 7531570Svbart@nginx.com date="2020-08-13" time="18:00:00 +0300" 7541570Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7551570Svbart@nginx.com 7561570Svbart@nginx.com<change> 7571570Svbart@nginx.com<para> 7581570Svbart@nginx.comNGINX Unit updated to 1.19.0. 7591570Svbart@nginx.com</para> 7601570Svbart@nginx.com</change> 7611570Svbart@nginx.com 7621570Svbart@nginx.com</changes> 7631570Svbart@nginx.com 7641570Svbart@nginx.com 7651570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1" 7661570Svbart@nginx.com date="2020-08-13" time="18:00:00 +0300" 7671570Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 7681570Svbart@nginx.com 7691570Svbart@nginx.com<change type="feature"> 7701570Svbart@nginx.com<para> 7711570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies, 7721570Svbart@nginx.comincrease performance, and improve scalability. 7731570Svbart@nginx.com</para> 7741570Svbart@nginx.com</change> 7751570Svbart@nginx.com 7761570Svbart@nginx.com<change type="feature"> 7771570Svbart@nginx.com<para> 7781570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns. 7791570Svbart@nginx.com</para> 7801570Svbart@nginx.com</change> 7811570Svbart@nginx.com 7821570Svbart@nginx.com<change type="feature"> 7831570Svbart@nginx.com<para> 7841570Svbart@nginx.comchunked transfer encoding in proxy responses. 7851570Svbart@nginx.com</para> 7861570Svbart@nginx.com</change> 7871570Svbart@nginx.com 7881570Svbart@nginx.com<change type="feature"> 7891570Svbart@nginx.com<para> 7901570Svbart@nginx.combasic variables support in the "pass" option. 7911570Svbart@nginx.com</para> 7921570Svbart@nginx.com</change> 7931570Svbart@nginx.com 7941570Svbart@nginx.com<change type="feature"> 7951570Svbart@nginx.com<para> 7961570Svbart@nginx.comcompatibility with PHP 8 Beta 1. 7971570Svbart@nginx.comThanks to Remi Collet. 7981570Svbart@nginx.com</para> 7991570Svbart@nginx.com</change> 8001570Svbart@nginx.com 8011570Svbart@nginx.com<change type="bugfix"> 8021570Svbart@nginx.com<para> 8031570Svbart@nginx.comthe router process could crash while passing requests to an application under 8041570Svbart@nginx.comhigh load. 8051570Svbart@nginx.com</para> 8061570Svbart@nginx.com</change> 8071570Svbart@nginx.com 8081570Svbart@nginx.com<change type="bugfix"> 8091570Svbart@nginx.com<para> 8101570Svbart@nginx.coma number of language modules failed to build on some systems; 8111570Svbart@nginx.comthe bug had appeared in 1.18.0. 8121570Svbart@nginx.com</para> 8131570Svbart@nginx.com</change> 8141570Svbart@nginx.com 8151570Svbart@nginx.com<change type="bugfix"> 8161570Svbart@nginx.com<para> 8171570Svbart@nginx.comtime in error log messages from PHP applications could lag. 8181570Svbart@nginx.com</para> 8191570Svbart@nginx.com</change> 8201570Svbart@nginx.com 8211570Svbart@nginx.com<change type="bugfix"> 8221570Svbart@nginx.com<para> 8231570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start; 8241570Svbart@nginx.comthe bug had appeared in 1.18.0. 8251570Svbart@nginx.com</para> 8261570Svbart@nginx.com</change> 8271570Svbart@nginx.com 8281570Svbart@nginx.com<change type="bugfix"> 8291570Svbart@nginx.com<para> 8301570Svbart@nginx.commemory leak during reconfiguration. 8311570Svbart@nginx.com</para> 8321570Svbart@nginx.com</change> 8331570Svbart@nginx.com 8341570Svbart@nginx.com<change type="bugfix"> 8351570Svbart@nginx.com<para> 8361570Svbart@nginx.comthe daemon didn't start without language modules; 8371570Svbart@nginx.comthe bug had appeared in 1.18.0. 8381570Svbart@nginx.com</para> 8391570Svbart@nginx.com</change> 8401570Svbart@nginx.com 8411570Svbart@nginx.com<change type="bugfix"> 8421570Svbart@nginx.com<para> 8431570Svbart@nginx.comthe router process could crash at exit. 8441570Svbart@nginx.com</para> 8451570Svbart@nginx.com</change> 8461570Svbart@nginx.com 8471570Svbart@nginx.com<change type="bugfix"> 8481570Svbart@nginx.com<para> 8491570Svbart@nginx.comNode.js applications could crash at exit. 8501570Svbart@nginx.com</para> 8511570Svbart@nginx.com</change> 8521570Svbart@nginx.com 8531570Svbart@nginx.com<change type="bugfix"> 8541570Svbart@nginx.com<para> 8551570Svbart@nginx.comthe Ruby module could be linked against a wrong library version. 8561570Svbart@nginx.com</para> 8571570Svbart@nginx.com</change> 8581570Svbart@nginx.com 8591570Svbart@nginx.com</changes> 8601570Svbart@nginx.com 8611570Svbart@nginx.com 8621570Svbart@nginx.com<changes apply="unit-php 8631570Svbart@nginx.com unit-python unit-python2.7 8641570Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 8651570Svbart@nginx.com unit-python3.8 8661570Svbart@nginx.com unit-go 8671570Svbart@nginx.com unit-perl 8681570Svbart@nginx.com unit-ruby 8691570Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 8701491Svbart@nginx.com ver="1.18.0" rev="1" 8711491Svbart@nginx.com date="2020-05-28" time="18:00:00 +0300" 8721491Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8731491Svbart@nginx.com 8741491Svbart@nginx.com<change> 8751491Svbart@nginx.com<para> 8761491Svbart@nginx.comNGINX Unit updated to 1.18.0. 8771491Svbart@nginx.com</para> 8781491Svbart@nginx.com</change> 8791491Svbart@nginx.com 8801491Svbart@nginx.com</changes> 8811491Svbart@nginx.com 8821491Svbart@nginx.com 8831491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1" 8841491Svbart@nginx.com date="2020-05-28" time="18:00:00 +0300" 8851491Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 8861491Svbart@nginx.com 8871491Svbart@nginx.com<change type="feature"> 8881491Svbart@nginx.com<para> 8891491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application. 8901491Svbart@nginx.com</para> 8911491Svbart@nginx.com</change> 8921491Svbart@nginx.com 8931491Svbart@nginx.com<change type="feature"> 8941491Svbart@nginx.com<para> 8951491Svbart@nginx.commultiple "targets" in PHP applications. 8961491Svbart@nginx.com</para> 8971491Svbart@nginx.com</change> 8981491Svbart@nginx.com 8991491Svbart@nginx.com<change type="feature"> 9001491Svbart@nginx.com<para> 9011491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options 9021491Svbart@nginx.comand in the "pass" option. 9031491Svbart@nginx.com</para> 9041491Svbart@nginx.com</change> 9051491Svbart@nginx.com 9061491Svbart@nginx.com</changes> 9071491Svbart@nginx.com 9081491Svbart@nginx.com 9091491Svbart@nginx.com<changes apply="unit-php 9101491Svbart@nginx.com unit-python unit-python2.7 9111491Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 9121491Svbart@nginx.com unit-python3.8 9131491Svbart@nginx.com unit-go 9141491Svbart@nginx.com unit-perl 9151491Svbart@nginx.com unit-ruby 9161491Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 9171460Svbart@nginx.com ver="1.17.0" rev="1" 9181460Svbart@nginx.com date="2020-04-16" time="18:00:00 +0300" 9191460Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9201460Svbart@nginx.com 9211460Svbart@nginx.com<change> 9221460Svbart@nginx.com<para> 9231460Svbart@nginx.comNGINX Unit updated to 1.17.0. 9241460Svbart@nginx.com</para> 9251460Svbart@nginx.com</change> 9261460Svbart@nginx.com 9271460Svbart@nginx.com</changes> 9281460Svbart@nginx.com 9291460Svbart@nginx.com 9301460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1" 9311460Svbart@nginx.com date="2020-04-16" time="18:00:00 +0300" 9321460Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 9331460Svbart@nginx.com 9341460Svbart@nginx.com<change type="feature"> 9351460Svbart@nginx.com<para> 9361460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external 9371460Svbart@nginx.comredirection. 9381460Svbart@nginx.com</para> 9391460Svbart@nginx.com</change> 9401460Svbart@nginx.com 9411460Svbart@nginx.com<change type="feature"> 9421460Svbart@nginx.com<para> 9431460Svbart@nginx.comfractional weights support for upstream servers. 9441460Svbart@nginx.com</para> 9451460Svbart@nginx.com</change> 9461460Svbart@nginx.com 9471460Svbart@nginx.com<change type="bugfix"> 9481460Svbart@nginx.com<para> 9491460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under 9501460Svbart@nginx.comhigh load. 9511460Svbart@nginx.com</para> 9521460Svbart@nginx.com</change> 9531460Svbart@nginx.com 9541460Svbart@nginx.com<change type="bugfix"> 9551460Svbart@nginx.com<para> 9561460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0. 9571460Svbart@nginx.com</para> 9581460Svbart@nginx.com</change> 9591460Svbart@nginx.com 9601460Svbart@nginx.com<change type="bugfix"> 9611460Svbart@nginx.com<para> 9621460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching 9631460Svbart@nginx.comopen connections limit. 9641460Svbart@nginx.com</para> 9651460Svbart@nginx.com</change> 9661460Svbart@nginx.com 9671460Svbart@nginx.com<change type="bugfix"> 9681460Svbart@nginx.com<para> 9691460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log 9701460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0. 9711460Svbart@nginx.com</para> 9721460Svbart@nginx.com</change> 9731460Svbart@nginx.com 9741460Svbart@nginx.com<change type="bugfix"> 9751460Svbart@nginx.com<para> 9761460Svbart@nginx.comexisting application processes didn't reopen the log file. 9771460Svbart@nginx.com</para> 9781460Svbart@nginx.com</change> 9791460Svbart@nginx.com 9801460Svbart@nginx.com<change type="bugfix"> 9811460Svbart@nginx.com<para> 9821460Svbart@nginx.comincompatibility with some Node.js applications. 9831460Svbart@nginx.com</para> 9841460Svbart@nginx.com</change> 9851460Svbart@nginx.com 9861460Svbart@nginx.com<change type="bugfix"> 9871460Svbart@nginx.com<para> 9881460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0. 9891460Svbart@nginx.com</para> 9901460Svbart@nginx.com</change> 9911460Svbart@nginx.com 9921460Svbart@nginx.com</changes> 9931460Svbart@nginx.com 9941460Svbart@nginx.com 9951460Svbart@nginx.com<changes apply="unit-php 9961460Svbart@nginx.com unit-python unit-python2.7 9971460Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 9981460Svbart@nginx.com unit-python3.8 9991460Svbart@nginx.com unit-go 10001460Svbart@nginx.com unit-perl 10011460Svbart@nginx.com unit-ruby 10021460Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 10031404Svbart@nginx.com ver="1.16.0" rev="1" 10041404Svbart@nginx.com date="2020-03-12" time="18:00:00 +0300" 10051404Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10061404Svbart@nginx.com 10071404Svbart@nginx.com<change> 10081404Svbart@nginx.com<para> 10091404Svbart@nginx.comNGINX Unit updated to 1.16.0. 10101404Svbart@nginx.com</para> 10111404Svbart@nginx.com</change> 10121404Svbart@nginx.com 10131404Svbart@nginx.com</changes> 10141404Svbart@nginx.com 10151404Svbart@nginx.com 10161404Svbart@nginx.com<changes apply="unit" ver="1.16.0" rev="1" 10171404Svbart@nginx.com date="2020-03-12" time="18:00:00 +0300" 10181404Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10191404Svbart@nginx.com 10201404Svbart@nginx.com<change type="feature"> 10211404Svbart@nginx.com<para> 10221404Svbart@nginx.combasic load-balancing support with round-robin. 10231404Svbart@nginx.com</para> 10241404Svbart@nginx.com</change> 10251404Svbart@nginx.com 10261404Svbart@nginx.com<change type="feature"> 10271404Svbart@nginx.com<para> 10281404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be 10291404Svbart@nginx.comserved from the "share" directory. 10301404Svbart@nginx.com</para> 10311404Svbart@nginx.com</change> 10321404Svbart@nginx.com 10331404Svbart@nginx.com<change type="feature"> 10341404Svbart@nginx.com<para> 10351404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk. 10361404Svbart@nginx.com</para> 10371404Svbart@nginx.com</change> 10381404Svbart@nginx.com 10391404Svbart@nginx.com<change type="feature"> 10401404Svbart@nginx.com<para> 10411404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON. 10421404Svbart@nginx.com</para> 10431404Svbart@nginx.com</change> 10441404Svbart@nginx.com 10451404Svbart@nginx.com<change type="bugfix"> 10461404Svbart@nginx.com<para> 10471404Svbart@nginx.comnegative address matching in router might work improperly in combination with 10481404Svbart@nginx.comnon-negative patterns. 10491404Svbart@nginx.com</para> 10501404Svbart@nginx.com</change> 10511404Svbart@nginx.com 10521404Svbart@nginx.com<change type="bugfix"> 10531404Svbart@nginx.com<para> 10541404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0. 10551404Svbart@nginx.com</para> 10561404Svbart@nginx.com</change> 10571404Svbart@nginx.com 10581404Svbart@nginx.com<change type="bugfix"> 10591404Svbart@nginx.com<para> 10601404Svbart@nginx.comPHP 7.4 was broken if it was built with thread safety enabled. 10611404Svbart@nginx.com</para> 10621404Svbart@nginx.com</change> 10631404Svbart@nginx.com 10641404Svbart@nginx.com<change type="bugfix"> 10651404Svbart@nginx.com<para> 10661404Svbart@nginx.comcompatibility issues with some Python applications. 10671404Svbart@nginx.com</para> 10681404Svbart@nginx.com</change> 10691404Svbart@nginx.com 10701404Svbart@nginx.com</changes> 10711404Svbart@nginx.com 10721404Svbart@nginx.com 10731404Svbart@nginx.com<changes apply="unit-php 10741404Svbart@nginx.com unit-python unit-python2.7 10751404Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 10761404Svbart@nginx.com unit-python3.8 10771404Svbart@nginx.com unit-go 10781404Svbart@nginx.com unit-perl 10791404Svbart@nginx.com unit-ruby 10801404Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 10811357Svbart@nginx.com ver="1.15.0" rev="1" 10821357Svbart@nginx.com date="2020-02-06" time="18:00:00 +0300" 10831357Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10841357Svbart@nginx.com 10851357Svbart@nginx.com<change> 10861357Svbart@nginx.com<para> 10871357Svbart@nginx.comNGINX Unit updated to 1.15.0. 10881357Svbart@nginx.com</para> 10891357Svbart@nginx.com</change> 10901357Svbart@nginx.com 10911357Svbart@nginx.com</changes> 10921357Svbart@nginx.com 10931357Svbart@nginx.com 10941357Svbart@nginx.com<changes apply="unit" ver="1.15.0" rev="1" 10951357Svbart@nginx.com date="2020-02-06" time="18:00:00 +0300" 10961357Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 10971357Svbart@nginx.com 10981357Svbart@nginx.com<change type="change"> 10991357Svbart@nginx.com<para> 11001357Svbart@nginx.comextensions of dynamically requested PHP scripts were restricted to ".php". 11011357Svbart@nginx.com</para> 11021357Svbart@nginx.com</change> 11031357Svbart@nginx.com 11041357Svbart@nginx.com<change type="feature"> 11051357Svbart@nginx.com<para> 11061357Svbart@nginx.comcompatibility with Ruby 2.7. 11071357Svbart@nginx.com</para> 11081357Svbart@nginx.com</change> 11091357Svbart@nginx.com 11101357Svbart@nginx.com<change type="bugfix"> 11111357Svbart@nginx.com<para> 11121357Svbart@nginx.comsegmentation fault might have occurred in the router process with multiple 11131357Svbart@nginx.comapplication processes under load; the bug had appeared in 1.14.0. 11141357Svbart@nginx.com</para> 11151357Svbart@nginx.com</change> 11161357Svbart@nginx.com 11171357Svbart@nginx.com<change type="bugfix"> 11181357Svbart@nginx.com<para> 11191357Svbart@nginx.comreceiving request body over TLS connection might have stalled. 11201357Svbart@nginx.com</para> 11211357Svbart@nginx.com</change> 11221357Svbart@nginx.com 11231357Svbart@nginx.com</changes> 11241357Svbart@nginx.com 11251357Svbart@nginx.com 11261357Svbart@nginx.com<changes apply="unit-php 11271357Svbart@nginx.com unit-python unit-python2.7 11281357Svbart@nginx.com unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 11291357Svbart@nginx.com unit-python3.8 11301357Svbart@nginx.com unit-go 11311357Svbart@nginx.com unit-perl 11321357Svbart@nginx.com unit-ruby 11331357Svbart@nginx.com unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 11341330Svbart@nginx.com ver="1.14.0" rev="1" 11351330Svbart@nginx.com date="2019-12-26" time="18:00:00 +0300" 11361330Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11371330Svbart@nginx.com 11381330Svbart@nginx.com<change> 11391330Svbart@nginx.com<para> 11401330Svbart@nginx.comNGINX Unit updated to 1.14.0. 11411330Svbart@nginx.com</para> 11421330Svbart@nginx.com</change> 11431330Svbart@nginx.com 11441330Svbart@nginx.com</changes> 11451330Svbart@nginx.com 11461330Svbart@nginx.com 11471330Svbart@nginx.com<changes apply="unit" ver="1.14.0" rev="1" 11481330Svbart@nginx.com date="2019-12-26" time="18:00:00 +0300" 11491330Svbart@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11501330Svbart@nginx.com 11511330Svbart@nginx.com<change type="change"> 11521330Svbart@nginx.com<para> 11531330Svbart@nginx.comthe Go package import name changed to "unit.nginx.org/go". 11541330Svbart@nginx.com</para> 11551330Svbart@nginx.com</change> 11561330Svbart@nginx.com 11571330Svbart@nginx.com<change type="change"> 11581330Svbart@nginx.com<para> 11591330Svbart@nginx.comGo package now links to libunit instead of including library sources. 11601330Svbart@nginx.com</para> 11611330Svbart@nginx.com</change> 11621330Svbart@nginx.com 11631330Svbart@nginx.com<change type="feature"> 11641330Svbart@nginx.com<para> 11651330Svbart@nginx.comability to change user and group for isolated applications when Unit daemon 11661330Svbart@nginx.comruns as an unprivileged user. 11671330Svbart@nginx.com</para> 11681330Svbart@nginx.com</change> 11691330Svbart@nginx.com 11701330Svbart@nginx.com<change type="feature"> 11711330Svbart@nginx.com<para> 11721330Svbart@nginx.comrequest routing by source and destination addresses and ports. 11731330Svbart@nginx.com</para> 11741330Svbart@nginx.com</change> 11751330Svbart@nginx.com 11761330Svbart@nginx.com<change type="bugfix"> 11771330Svbart@nginx.com<para> 11781330Svbart@nginx.commemory bloat on large responses. 11791330Svbart@nginx.com</para> 11801330Svbart@nginx.com</change> 11811330Svbart@nginx.com 11821330Svbart@nginx.com</changes> 11831330Svbart@nginx.com 11841330Svbart@nginx.com 11851290Sdefan@nginx.com<changes apply="unit-go1.13" ver="1.13.0" rev="1" 11861290Sdefan@nginx.com date="2019-11-20" time="09:00:00 +0300" 11871290Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 11881290Sdefan@nginx.com 11891290Sdefan@nginx.com<change> 11901290Sdefan@nginx.com<para> 11911290Sdefan@nginx.comInitial release of Go 1.13 module for NGINX Unit. 11921290Sdefan@nginx.com</para> 11931290Sdefan@nginx.com</change> 11941290Sdefan@nginx.com 11951290Sdefan@nginx.com</changes> 11961290Sdefan@nginx.com 11971290Sdefan@nginx.com 11981290Sdefan@nginx.com<changes apply="unit-go1.12" ver="1.13.0" rev="1" 11991290Sdefan@nginx.com date="2019-11-20" time="09:00:00 +0300" 12001290Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 12011290Sdefan@nginx.com 12021290Sdefan@nginx.com<change> 12031290Sdefan@nginx.com<para> 12041290Sdefan@nginx.comInitial release of Go 1.12 module for NGINX Unit. 12051290Sdefan@nginx.com</para> 12061290Sdefan@nginx.com</change> 12071290Sdefan@nginx.com 12081290Sdefan@nginx.com</changes> 12091290Sdefan@nginx.com 12101290Sdefan@nginx.com 12111289Sdefan@nginx.com<changes apply="unit-python3.8" ver="1.13.0" rev="1" 12121289Sdefan@nginx.com date="2019-11-18" time="14:20:00 +0300" 12131289Sdefan@nginx.com packager="Andrei Belov <defan@nginx.com>"> 12141289Sdefan@nginx.com 12151289Sdefan@nginx.com<change> 12161289Sdefan@nginx.com<para> 12171289Sdefan@nginx.comInitial release of Python 3.8 module for NGINX Unit. 12181289Sdefan@nginx.com</para> 12191289Sdefan@nginx.com</change> 12201289Sdefan@nginx.com 1221