xref: /unit/docs/changes.xml (revision 2060)
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
82029SN/A<changes apply="unit-php
92029SN/A                unit-python unit-python2.7
102029SN/A                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
112029SN/A                unit-python3.8 unit-python3.9 unit-python3.10
122029SN/A                unit-go
132029SN/A                unit-perl
142029SN/A                unit-ruby
152029SN/A                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
162029SN/A                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
172012Svbart@nginx.com         ver="1.27.0" rev="1"
182012Svbart@nginx.com         date="" time=""
192012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
202012Svbart@nginx.com
212012Svbart@nginx.com<change>
222012Svbart@nginx.com<para>
232012Svbart@nginx.comNGINX Unit updated to 1.27.0.
242012Svbart@nginx.com</para>
252012Svbart@nginx.com</change>
262012Svbart@nginx.com
272012Svbart@nginx.com</changes>
282012Svbart@nginx.com
292012Svbart@nginx.com
302012Svbart@nginx.com<changes apply="unit" ver="1.27.0" rev="1"
312012Svbart@nginx.com         date="" time=""
322012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
332012Svbart@nginx.com
34*2060Smax.romanov@nginx.com<change type="bugfix">
35*2060Smax.romanov@nginx.com<para>
36*2060Smax.romanov@nginx.comsome Perl applications failed to process the request body, notably with Plack.
37*2060Smax.romanov@nginx.com</para>
38*2060Smax.romanov@nginx.com</change>
39*2060Smax.romanov@nginx.com
402050Svbart@nginx.com</changes>
412050Svbart@nginx.com
422050Svbart@nginx.com
432050Svbart@nginx.com<changes apply="unit-php
442050Svbart@nginx.com                unit-python unit-python2.7
452050Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
462050Svbart@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
472050Svbart@nginx.com                unit-go
482050Svbart@nginx.com                unit-perl
492050Svbart@nginx.com                unit-ruby
502050Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
512050Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
522029SN/A         ver="1.26.1" rev="1"
532045SN/A         date="2021-12-02" time="18:00:00 +0300"
542029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
552029SN/A
562029SN/A<change>
572029SN/A<para>
582029SN/ANGINX Unit updated to 1.26.1.
592029SN/A</para>
602029SN/A</change>
612029SN/A
622029SN/A</changes>
632029SN/A
642029SN/A
652029SN/A<changes apply="unit" ver="1.26.1" rev="1"
662045SN/A         date="2021-12-02" time="18:00:00 +0300"
672029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
682029SN/A
692033SN/A<change type="bugfix">
702033SN/A<para>
712044SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had
722044SN/Aappeared in 1.26.0.
732033SN/A</para>
742033SN/A</change>
752033SN/A
762034SN/A<change type="bugfix">
772034SN/A<para>
782044SN/Aa prototype process could crash on an application process exit; the bug had
792034SN/Aappeared in 1.26.0.
802034SN/A</para>
812034SN/A</change>
822034SN/A
832035SN/A<change type="bugfix">
842035SN/A<para>
852044SN/Athe router process crashed on reconfiguration if "access_log" was configured
862044SN/Awithout listeners.
872044SN/A</para>
882044SN/A</change>
892044SN/A
902044SN/A<change type="bugfix">
912044SN/A<para>
922035SN/Aa segmentation fault occurred in the PHP module if chdir() or
932035SN/Afastcgi_finish_request() was called in the OPcache preloading script.
942035SN/A</para>
952035SN/A</change>
962035SN/A
972040SN/A<change type="bugfix">
982040SN/A<para>
992041SN/Afatal errors on DragonFly BSD; the bug had appeared in 1.26.0.
1002041SN/A</para>
1012041SN/A</change>
1022041SN/A
1032029SN/A</changes>
1042029SN/A
1052029SN/A
1061973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1"
1072007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1081973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1091973Sdefan@nginx.com
1101973Sdefan@nginx.com<change>
1111973Sdefan@nginx.com<para>
1121973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit.
1131973Sdefan@nginx.com</para>
1141973Sdefan@nginx.com</change>
1151973Sdefan@nginx.com
1161973Sdefan@nginx.com</changes>
1171973Sdefan@nginx.com
1181973Sdefan@nginx.com
1191973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1"
1202007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1211973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1221973Sdefan@nginx.com
1231973Sdefan@nginx.com<change>
1241973Sdefan@nginx.com<para>
1251973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit.
1261973Sdefan@nginx.com</para>
1271973Sdefan@nginx.com</change>
1281973Sdefan@nginx.com
1291973Sdefan@nginx.com</changes>
1301973Sdefan@nginx.com
1311973Sdefan@nginx.com
1321896Svbart@nginx.com<changes apply="unit-php
1331896Svbart@nginx.com                unit-python unit-python2.7
1341896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1351896Svbart@nginx.com                unit-python3.8 unit-python3.9
1361896Svbart@nginx.com                unit-go
1371896Svbart@nginx.com                unit-perl
1381896Svbart@nginx.com                unit-ruby
1391896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1401896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
1411951Svbart@nginx.com         ver="1.26.0" rev="1"
1422007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1431951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1441951Svbart@nginx.com
1451951Svbart@nginx.com<change>
1461951Svbart@nginx.com<para>
1471951Svbart@nginx.comNGINX Unit updated to 1.26.0.
1481951Svbart@nginx.com</para>
1491951Svbart@nginx.com</change>
1501951Svbart@nginx.com
1511951Svbart@nginx.com</changes>
1521951Svbart@nginx.com
1531951Svbart@nginx.com
1541951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
1552007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1561951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1571951Svbart@nginx.com
1581960Sz.hong@f5.com<change type="change">
1591960Sz.hong@f5.com<para>
1601960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
1611960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
1621960Sz.hong@f5.com</para>
1631960Sz.hong@f5.com</change>
1641960Sz.hong@f5.com
1651960Sz.hong@f5.com<change type="feature">
1661960Sz.hong@f5.com<para>
1672006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior
1682006Svbart@nginx.comwhen updating from previous versions.
1692006Svbart@nginx.com</para>
1702006Svbart@nginx.com</change>
1712006Svbart@nginx.com
1722006Svbart@nginx.com<change type="feature">
1732006Svbart@nginx.com<para>
1741960Sz.hong@f5.comvariables support in the "share" option.
1751960Sz.hong@f5.com</para>
1761960Sz.hong@f5.com</change>
1771960Sz.hong@f5.com
1781959Sz.hong@f5.com<change type="feature">
1791959Sz.hong@f5.com<para>
1801961Sz.hong@f5.commultiple paths in the "share" option.
1811961Sz.hong@f5.com</para>
1821961Sz.hong@f5.com</change>
1831961Sz.hong@f5.com
1841961Sz.hong@f5.com<change type="feature">
1851961Sz.hong@f5.com<para>
1861959Sz.hong@f5.comvariables support in the "chroot" option.
1871959Sz.hong@f5.com</para>
1881959Sz.hong@f5.com</change>
1891959Sz.hong@f5.com
1901969Sz.hong@f5.com<change type="feature">
1911969Sz.hong@f5.com<para>
1922006Svbart@nginx.comPHP opcache is shared between application processes.
1931969Sz.hong@f5.com</para>
1941969Sz.hong@f5.com</change>
1951969Sz.hong@f5.com
1961991Sz.hong@f5.com<change type="feature">
1971991Sz.hong@f5.com<para>
1981991Sz.hong@f5.comrequest routing by the query string.
1991991Sz.hong@f5.com</para>
2001991Sz.hong@f5.com</change>
2011991Sz.hong@f5.com
2021955Smax.romanov@nginx.com<change type="bugfix">
2031955Smax.romanov@nginx.com<para>
2042006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached
2052006Svbart@nginx.comby asynchronous or multithreaded apps.
2061955Smax.romanov@nginx.com</para>
2071955Smax.romanov@nginx.com</change>
2081955Smax.romanov@nginx.com
2091956Smax.romanov@nginx.com<change type="bugfix">
2101956Smax.romanov@nginx.com<para>
2111956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
2121956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
2131956Smax.romanov@nginx.com</para>
2141956Smax.romanov@nginx.com</change>
2151956Smax.romanov@nginx.com
2161992Smax.romanov@nginx.com<change type="bugfix">
2171992Smax.romanov@nginx.com<para>
2182006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35.
2191992Smax.romanov@nginx.com</para>
2201992Smax.romanov@nginx.com</change>
2211992Smax.romanov@nginx.com
2221951Svbart@nginx.com</changes>
2231951Svbart@nginx.com
2241951Svbart@nginx.com
2251951Svbart@nginx.com<changes apply="unit-php
2261951Svbart@nginx.com                unit-python unit-python2.7
2271951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2281951Svbart@nginx.com                unit-python3.8 unit-python3.9
2291951Svbart@nginx.com                unit-go
2301951Svbart@nginx.com                unit-perl
2311951Svbart@nginx.com                unit-ruby
2321951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2331951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
2341896Svbart@nginx.com         ver="1.25.0" rev="1"
2351945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
2361896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2371896Svbart@nginx.com
2381896Svbart@nginx.com<change>
2391896Svbart@nginx.com<para>
2401896Svbart@nginx.comNGINX Unit updated to 1.25.0.
2411896Svbart@nginx.com</para>
2421896Svbart@nginx.com</change>
2431896Svbart@nginx.com
2441896Svbart@nginx.com</changes>
2451896Svbart@nginx.com
2461896Svbart@nginx.com
2471896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
2481945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
2491896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2501896Svbart@nginx.com
2511910So.canty@f5.com<change type="feature">
2521910So.canty@f5.com<para>
2531944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
2541942Sa.suvorov@f5.com</para>
2551942Sa.suvorov@f5.com</change>
2561942Sa.suvorov@f5.com
2571942Sa.suvorov@f5.com<change type="feature">
2581942Sa.suvorov@f5.com<para>
2591920Sa.suvorov@f5.comTLS sessions cache.
2601920Sa.suvorov@f5.com</para>
2611920Sa.suvorov@f5.com</change>
2621920Sa.suvorov@f5.com
2631920Sa.suvorov@f5.com<change type="feature">
2641920Sa.suvorov@f5.com<para>
2651944Svbart@nginx.comTLS session tickets.
2661910So.canty@f5.com</para>
2671910So.canty@f5.com</change>
2681910So.canty@f5.com
2691926Smax.romanov@nginx.com<change type="feature">
2701926Smax.romanov@nginx.com<para>
2711926Smax.romanov@nginx.comapplication restart control.
2721926Smax.romanov@nginx.com</para>
2731926Smax.romanov@nginx.com</change>
2741926Smax.romanov@nginx.com
2751936So.canty@f5.com<change type="feature">
2761936So.canty@f5.com<para>
2771944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
2781936So.canty@f5.com</para>
2791936So.canty@f5.com</change>
2801936So.canty@f5.com
2811907Smax.romanov@nginx.com<change type="bugfix">
2821907Smax.romanov@nginx.com<para>
2831944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
2841944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
2851921Sa.suvorov@f5.com</para>
2861921Sa.suvorov@f5.com</change>
2871921Sa.suvorov@f5.com
2881921Sa.suvorov@f5.com<change type="bugfix">
2891921Sa.suvorov@f5.com<para>
2901944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
2911944Svbart@nginx.combundles in a listener if the client did not use SNI.
2921907Smax.romanov@nginx.com</para>
2931907Smax.romanov@nginx.com</change>
2941907Smax.romanov@nginx.com
2951907Smax.romanov@nginx.com<change type="bugfix">
2961907Smax.romanov@nginx.com<para>
2971950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
2981915Smax.romanov@nginx.comreconfiguration.
2991915Smax.romanov@nginx.com</para>
3001915Smax.romanov@nginx.com</change>
3011915Smax.romanov@nginx.com
3021915Smax.romanov@nginx.com<change type="bugfix">
3031915Smax.romanov@nginx.com<para>
3041944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
3051944Svbart@nginx.comframework.
3061944Svbart@nginx.com</para>
3071944Svbart@nginx.com</change>
3081944Svbart@nginx.com
3091944Svbart@nginx.com<change type="bugfix">
3101944Svbart@nginx.com<para>
3111944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
3121944Svbart@nginx.comstopped or crashed.
3131907Smax.romanov@nginx.com</para>
3141907Smax.romanov@nginx.com</change>
3151907Smax.romanov@nginx.com
3161909So.canty@f5.com<change type="bugfix">
3171909So.canty@f5.com<para>
3181909So.canty@f5.comthe controller or router process could crash if the configuration contained
3191909So.canty@f5.coma full-form IPv6 in a listener address.
3201909So.canty@f5.com</para>
3211909So.canty@f5.com</change>
3221909So.canty@f5.com
3231916Smax.romanov@nginx.com<change type="bugfix">
3241916Smax.romanov@nginx.com<para>
3251929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
3261929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
3271929Sz.hong@f5.com</para>
3281929Sz.hong@f5.com</change>
3291929Sz.hong@f5.com
3301930So.canty@f5.com<change type="bugfix">
3311930So.canty@f5.com<para>
3321944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
3331944Svbart@nginx.comor destination address patterns.
3341930So.canty@f5.com</para>
3351930So.canty@f5.com</change>
3361930So.canty@f5.com
3371896Svbart@nginx.com</changes>
3381896Svbart@nginx.com
3391896Svbart@nginx.com
3401887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
3411891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3421887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3431887Sdefan@nginx.com
3441887Sdefan@nginx.com<change>
3451887Sdefan@nginx.com<para>
3461887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
3471887Sdefan@nginx.com</para>
3481887Sdefan@nginx.com</change>
3491887Sdefan@nginx.com
3501887Sdefan@nginx.com</changes>
3511887Sdefan@nginx.com
3521887Sdefan@nginx.com
3531887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
3541891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3551887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3561887Sdefan@nginx.com
3571887Sdefan@nginx.com<change>
3581887Sdefan@nginx.com<para>
3591887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
3601887Sdefan@nginx.com</para>
3611887Sdefan@nginx.com</change>
3621887Sdefan@nginx.com
3631887Sdefan@nginx.com</changes>
3641887Sdefan@nginx.com
3651887Sdefan@nginx.com
3661834Svbart@nginx.com<changes apply="unit-php
3671834Svbart@nginx.com                unit-python unit-python2.7
3681834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3691834Svbart@nginx.com                unit-python3.8 unit-python3.9
3701834Svbart@nginx.com                unit-go
3711834Svbart@nginx.com                unit-perl
3721834Svbart@nginx.com                unit-ruby
3731834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3741834Svbart@nginx.com                unit-jsc14 unit-jsc15"
3751839Svbart@nginx.com         ver="1.24.0" rev="1"
3761891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3771839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3781839Svbart@nginx.com
3791839Svbart@nginx.com<change>
3801839Svbart@nginx.com<para>
3811839Svbart@nginx.comNGINX Unit updated to 1.24.0.
3821839Svbart@nginx.com</para>
3831839Svbart@nginx.com</change>
3841839Svbart@nginx.com
3851839Svbart@nginx.com</changes>
3861839Svbart@nginx.com
3871839Svbart@nginx.com
3881839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
3891891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3901839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3911839Svbart@nginx.com
3921882So.canty@f5.com<change type="change">
3931882So.canty@f5.com<para>
3941882So.canty@f5.comPHP added to the default MIME type list.
3951882So.canty@f5.com</para>
3961882So.canty@f5.com</change>
3971882So.canty@f5.com
3981855Sz.hong@f5.com<change type="feature">
3991855Sz.hong@f5.com<para>
4001885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
4011885Sa.suvorov@f5.com</para>
4021885Sa.suvorov@f5.com</change>
4031885Sa.suvorov@f5.com
4041885Sa.suvorov@f5.com<change type="feature">
4051885Sa.suvorov@f5.com<para>
4061890Svbart@nginx.comthe ability to limit static file serving by MIME types.
4071890Svbart@nginx.com</para>
4081890Svbart@nginx.com</change>
4091890Svbart@nginx.com
4101890Svbart@nginx.com<change type="feature">
4111890Svbart@nginx.com<para>
4121890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
4131890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
4141872So.canty@f5.com</para>
4151872So.canty@f5.com</change>
4161872So.canty@f5.com
4171872So.canty@f5.com<change type="feature">
4181872So.canty@f5.com<para>
4191889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
4201889Sartem.konev@nginx.comNode.js.
4211865So.canty@f5.com</para>
4221865So.canty@f5.com</change>
4231865So.canty@f5.com
4241865So.canty@f5.com<change type="feature">
4251865So.canty@f5.com<para>
4261890Svbart@nginx.commultiple "targets" in Python applications.
4271855Sz.hong@f5.com</para>
4281855Sz.hong@f5.com</change>
4291855Sz.hong@f5.com
4301870So.canty@f5.com<change type="feature">
4311870So.canty@f5.com<para>
4321870So.canty@f5.comcompatibility with Ruby 3.0.
4331870So.canty@f5.com</para>
4341870So.canty@f5.com</change>
4351870So.canty@f5.com
4361861Svbart@nginx.com<change type="bugfix">
4371861Svbart@nginx.com<para>
4381889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
4391884Sa.suvorov@f5.com</para>
4401884Sa.suvorov@f5.com</change>
4411884Sa.suvorov@f5.com
4421884Sa.suvorov@f5.com<change type="bugfix">
4431884Sa.suvorov@f5.com<para>
4441861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
4451861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
4461861Svbart@nginx.com</para>
4471861Svbart@nginx.com</change>
4481861Svbart@nginx.com
4491839Svbart@nginx.com</changes>
4501839Svbart@nginx.com
4511839Svbart@nginx.com
4521839Svbart@nginx.com<changes apply="unit-php
4531839Svbart@nginx.com                unit-python unit-python2.7
4541839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4551839Svbart@nginx.com                unit-python3.8 unit-python3.9
4561839Svbart@nginx.com                unit-go
4571839Svbart@nginx.com                unit-perl
4581839Svbart@nginx.com                unit-ruby
4591839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4601839Svbart@nginx.com                unit-jsc14 unit-jsc15"
4611834Svbart@nginx.com         ver="1.23.0" rev="1"
4621834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
4631834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4641834Svbart@nginx.com
4651834Svbart@nginx.com<change>
4661834Svbart@nginx.com<para>
4671834Svbart@nginx.comNGINX Unit updated to 1.23.0.
4681834Svbart@nginx.com</para>
4691834Svbart@nginx.com</change>
4701834Svbart@nginx.com
4711834Svbart@nginx.com</changes>
4721834Svbart@nginx.com
4731834Svbart@nginx.com
4741806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
4751834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
4761806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4771806Svbart@nginx.com
4781825Sthresh@nginx.com<change type="feature">
4791825Sthresh@nginx.com<para>
4801833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
4811828Sa.suvorov@f5.comIndication (SNI) TLS extension.
4821828Sa.suvorov@f5.com</para>
4831828Sa.suvorov@f5.com</change>
4841828Sa.suvorov@f5.com
4851828Sa.suvorov@f5.com<change type="feature">
4861828Sa.suvorov@f5.com<para>
4871833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
4881833Sartem.konev@nginx.cominstallation.
4891825Sthresh@nginx.com</para>
4901825Sthresh@nginx.com</change>
4911825Sthresh@nginx.com
4921811Smax.romanov@nginx.com<change type="bugfix">
4931811Smax.romanov@nginx.com<para>
4941812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
4951812Svbart@nginx.comappeared in 1.17.0.
4961812Svbart@nginx.com</para>
4971812Svbart@nginx.com</change>
4981812Svbart@nginx.com
4991812Svbart@nginx.com<change type="bugfix">
5001812Svbart@nginx.com<para>
5011833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
5021812Svbart@nginx.comappeared in 1.6.
5031812Svbart@nginx.com</para>
5041812Svbart@nginx.com</change>
5051812Svbart@nginx.com
5061812Svbart@nginx.com<change type="bugfix">
5071812Svbart@nginx.com<para>
5081833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
5091832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
5101832Smax.romanov@nginx.com</para>
5111832Smax.romanov@nginx.com</change>
5121832Smax.romanov@nginx.com
5131832Smax.romanov@nginx.com<change type="bugfix">
5141832Smax.romanov@nginx.com<para>
5151833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
5161811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
5171811Smax.romanov@nginx.com</para>
5181811Smax.romanov@nginx.com</change>
5191806Svbart@nginx.com
5201813Svbart@nginx.com<change type="bugfix">
5211813Svbart@nginx.com<para>
5221813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
5231813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
5241813Svbart@nginx.com</para>
5251813Svbart@nginx.com</change>
5261813Svbart@nginx.com
5271814Svbart@nginx.com<change type="bugfix">
5281814Svbart@nginx.com<para>
5291820Svbart@nginx.comthe controller process could crash while requesting information about a
5301820Svbart@nginx.comcertificate with a non-DNS SAN entry.
5311820Svbart@nginx.com</para>
5321820Svbart@nginx.com</change>
5331820Svbart@nginx.com
5341820Svbart@nginx.com<change type="bugfix">
5351820Svbart@nginx.com<para>
5361822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
5371833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
5381822Svbart@nginx.com</para>
5391822Svbart@nginx.com</change>
5401822Svbart@nginx.com
5411822Svbart@nginx.com<change type="bugfix">
5421822Svbart@nginx.com<para>
5431833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
5441833Sartem.konev@nginx.comclass.
5451814Svbart@nginx.com</para>
5461814Svbart@nginx.com</change>
5471814Svbart@nginx.com
5481815Svbart@nginx.com<change type="bugfix">
5491815Svbart@nginx.com<para>
5501815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
5511815Svbart@nginx.comappeared in 1.22.0.
5521815Svbart@nginx.com</para>
5531815Svbart@nginx.com</change>
5541815Svbart@nginx.com
5551806Svbart@nginx.com</changes>
5561806Svbart@nginx.com
5571806Svbart@nginx.com
5581798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
5591798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
5601798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5611798Sdefan@nginx.com
5621798Sdefan@nginx.com<change>
5631798Sdefan@nginx.com<para>
5641798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
5651798Sdefan@nginx.com</para>
5661798Sdefan@nginx.com</change>
5671798Sdefan@nginx.com
5681798Sdefan@nginx.com</changes>
5691798Sdefan@nginx.com
5701798Sdefan@nginx.com
5711763Sdefan@nginx.com<changes apply="unit-php
5721763Sdefan@nginx.com                unit-python unit-python2.7
5731763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5741763Sdefan@nginx.com                unit-python3.8
5751763Sdefan@nginx.com                unit-go
5761763Sdefan@nginx.com                unit-perl
5771763Sdefan@nginx.com                unit-ruby
5781763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
5791763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
5801763Sdefan@nginx.com         ver="1.22.0" rev="1"
5811793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
5821763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5831763Sdefan@nginx.com
5841763Sdefan@nginx.com<change>
5851763Sdefan@nginx.com<para>
5861763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
5871763Sdefan@nginx.com</para>
5881763Sdefan@nginx.com</change>
5891763Sdefan@nginx.com
5901763Sdefan@nginx.com</changes>
5911763Sdefan@nginx.com
5921763Sdefan@nginx.com
5931727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
5941793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
5951727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5961727Svbart@nginx.com
5971759Svbart@nginx.com<change type="feature">
5981759Svbart@nginx.com<para>
5991792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
6001792Svbart@nginx.comcompliant with Stream API.
6011759Svbart@nginx.com</para>
6021759Svbart@nginx.com</change>
6031759Svbart@nginx.com
6041766Smax.romanov@nginx.com<change type="feature">
6051766Smax.romanov@nginx.com<para>
6061792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
6071792Svbart@nginx.comapps.
6081732Svbart@nginx.com</para>
6091732Svbart@nginx.com</change>
6101732Svbart@nginx.com
6111733Svbart@nginx.com<change type="bugfix">
6121733Svbart@nginx.com<para>
6131792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
6141792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
6151754Smax.romanov@nginx.com</para>
6161754Smax.romanov@nginx.com</change>
6171754Smax.romanov@nginx.com
6181755Smax.romanov@nginx.com<change type="bugfix">
6191755Smax.romanov@nginx.com<para>
6201790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
6211755Smax.romanov@nginx.comappeared in 1.19.0.
6221755Smax.romanov@nginx.com</para>
6231755Smax.romanov@nginx.com</change>
6241755Smax.romanov@nginx.com
6251756Smax.romanov@nginx.com<change type="bugfix">
6261756Smax.romanov@nginx.com<para>
6271790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
6281790Sartem.konev@nginx.comappeared in 1.19.0.
6291756Smax.romanov@nginx.com</para>
6301756Smax.romanov@nginx.com</change>
6311756Smax.romanov@nginx.com
6321760Smax.romanov@nginx.com<change type="bugfix">
6331760Smax.romanov@nginx.com<para>
6341792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
6351792Svbart@nginx.com</para>
6361792Svbart@nginx.com</change>
6371792Svbart@nginx.com
6381792Svbart@nginx.com<change type="bugfix">
6391792Svbart@nginx.com<para>
6401792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
6411792Svbart@nginx.commissing in the PHP module.
6421792Svbart@nginx.com</para>
6431792Svbart@nginx.com</change>
6441792Svbart@nginx.com
6451792Svbart@nginx.com<change type="bugfix">
6461792Svbart@nginx.com<para>
6471792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
6481792Svbart@nginx.com</para>
6491792Svbart@nginx.com</change>
6501792Svbart@nginx.com
6511792Svbart@nginx.com<change type="bugfix">
6521792Svbart@nginx.com<para>
6531792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
6541792Svbart@nginx.com</para>
6551792Svbart@nginx.com</change>
6561792Svbart@nginx.com
6571792Svbart@nginx.com<change type="bugfix">
6581792Svbart@nginx.com<para>
6591792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
6601792Svbart@nginx.comthe bug had appeared in 1.21.0.
6611760Smax.romanov@nginx.com</para>
6621760Smax.romanov@nginx.com</change>
6631760Smax.romanov@nginx.com
6641780Smax.romanov@nginx.com<change type="bugfix">
6651780Smax.romanov@nginx.com<para>
6661790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
6671790Sartem.konev@nginx.comWebSocket.
6681780Smax.romanov@nginx.com</para>
6691780Smax.romanov@nginx.com</change>
6701780Smax.romanov@nginx.com
6711789Smax.romanov@nginx.com<change type="bugfix">
6721789Smax.romanov@nginx.com<para>
6731789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
6741789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
6751789Smax.romanov@nginx.com</para>
6761789Smax.romanov@nginx.com</change>
6771789Smax.romanov@nginx.com
6781727Svbart@nginx.com</changes>
6791727Svbart@nginx.com
6801727Svbart@nginx.com
6811722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
6821722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6831722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6841722Svbart@nginx.com
6851722Svbart@nginx.com<change>
6861722Svbart@nginx.com<para>
6871722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
6881722Svbart@nginx.com</para>
6891722Svbart@nginx.com</change>
6901722Svbart@nginx.com
6911722Svbart@nginx.com</changes>
6921722Svbart@nginx.com
6931722Svbart@nginx.com
6941722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
6951722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6961722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6971722Svbart@nginx.com
6981722Svbart@nginx.com<change>
6991722Svbart@nginx.com<para>
7001722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
7011722Svbart@nginx.com</para>
7021722Svbart@nginx.com</change>
7031722Svbart@nginx.com
7041722Svbart@nginx.com</changes>
7051722Svbart@nginx.com
7061722Svbart@nginx.com
7071722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
7081722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7091722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7101722Svbart@nginx.com
7111722Svbart@nginx.com<change>
7121722Svbart@nginx.com<para>
7131722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
7141722Svbart@nginx.com</para>
7151722Svbart@nginx.com</change>
7161722Svbart@nginx.com
7171722Svbart@nginx.com</changes>
7181722Svbart@nginx.com
7191722Svbart@nginx.com
7201722Svbart@nginx.com<changes apply="unit-php
7211722Svbart@nginx.com                unit-python unit-python2.7
7221722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7231722Svbart@nginx.com                unit-python3.8
7241722Svbart@nginx.com                unit-go
7251722Svbart@nginx.com                unit-perl
7261722Svbart@nginx.com                unit-ruby
7271722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
7281722Svbart@nginx.com         ver="1.21.0" rev="1"
7291722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7301722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7311722Svbart@nginx.com
7321722Svbart@nginx.com<change>
7331722Svbart@nginx.com<para>
7341722Svbart@nginx.comNGINX Unit updated to 1.21.0.
7351722Svbart@nginx.com</para>
7361722Svbart@nginx.com</change>
7371722Svbart@nginx.com
7381722Svbart@nginx.com</changes>
7391722Svbart@nginx.com
7401722Svbart@nginx.com
7411722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
7421722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7431722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7441722Svbart@nginx.com
7451722Svbart@nginx.com<change type="change">
7461722Svbart@nginx.com<para>
7471722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
7481722Svbart@nginx.com</para>
7491722Svbart@nginx.com</change>
7501722Svbart@nginx.com
7511722Svbart@nginx.com<change type="change">
7521722Svbart@nginx.com<para>
7531722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
7541722Svbart@nginx.comnames.
7551722Svbart@nginx.com</para>
7561722Svbart@nginx.com</change>
7571722Svbart@nginx.com
7581722Svbart@nginx.com<change type="change">
7591722Svbart@nginx.com<para>
7601722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
7611722Svbart@nginx.comdefault.
7621722Svbart@nginx.com</para>
7631722Svbart@nginx.com</change>
7641722Svbart@nginx.com
7651722Svbart@nginx.com<change type="feature">
7661722Svbart@nginx.com<para>
7671722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
7681722Svbart@nginx.com</para>
7691722Svbart@nginx.com</change>
7701722Svbart@nginx.com
7711722Svbart@nginx.com<change type="feature">
7721722Svbart@nginx.com<para>
7731722Svbart@nginx.comregular expressions in route matching patterns.
7741722Svbart@nginx.com</para>
7751722Svbart@nginx.com</change>
7761722Svbart@nginx.com
7771722Svbart@nginx.com<change type="feature">
7781722Svbart@nginx.com<para>
7791722Svbart@nginx.comcompatibility with Python 3.9.
7801722Svbart@nginx.com</para>
7811722Svbart@nginx.com</change>
7821722Svbart@nginx.com
7831722Svbart@nginx.com<change type="feature">
7841722Svbart@nginx.com<para>
7851722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
7861722Svbart@nginx.com</para>
7871722Svbart@nginx.com</change>
7881722Svbart@nginx.com
7891722Svbart@nginx.com<change type="feature">
7901722Svbart@nginx.com<para>
7911722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
7921722Svbart@nginx.com</para>
7931722Svbart@nginx.com</change>
7941722Svbart@nginx.com
7951722Svbart@nginx.com<change type="feature">
7961722Svbart@nginx.com<para>
7971722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
7981722Svbart@nginx.comcontinues code execution without holding onto the client connection.
7991722Svbart@nginx.com</para>
8001722Svbart@nginx.com</change>
8011722Svbart@nginx.com
8021722Svbart@nginx.com<change type="feature">
8031722Svbart@nginx.com<para>
8041722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
8051722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
8061722Svbart@nginx.com</para>
8071722Svbart@nginx.com</change>
8081722Svbart@nginx.com
8091722Svbart@nginx.com<change type="feature">
8101722Svbart@nginx.com<para>
8111722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
8121722Svbart@nginx.commounting of eponymous filesystems.
8131722Svbart@nginx.com</para>
8141722Svbart@nginx.com</change>
8151722Svbart@nginx.com
8161722Svbart@nginx.com<change type="bugfix">
8171722Svbart@nginx.com<para>
8181722Svbart@nginx.comthe router process could crash when running Go applications under high load;
8191722Svbart@nginx.comthe bug had appeared in 1.19.0.
8201722Svbart@nginx.com</para>
8211722Svbart@nginx.com</change>
8221722Svbart@nginx.com
8231722Svbart@nginx.com<change type="bugfix">
8241722Svbart@nginx.com<para>
8251722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
8261722Svbart@nginx.com</para>
8271722Svbart@nginx.com</change>
8281722Svbart@nginx.com
8291722Svbart@nginx.com<change type="bugfix">
8301722Svbart@nginx.com<para>
8311722Svbart@nginx.comvarious compatibility issues in Java applications.
8321722Svbart@nginx.com</para>
8331722Svbart@nginx.com</change>
8341722Svbart@nginx.com
8351722Svbart@nginx.com<change type="bugfix">
8361722Svbart@nginx.com<para>
8371722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
8381722Svbart@nginx.comuse "rootfs" isolation.
8391722Svbart@nginx.com</para>
8401722Svbart@nginx.com</change>
8411722Svbart@nginx.com
8421722Svbart@nginx.com</changes>
8431722Svbart@nginx.com
8441722Svbart@nginx.com
8451330Svbart@nginx.com<changes apply="unit-php
8461330Svbart@nginx.com                unit-python unit-python2.7
8471330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8481330Svbart@nginx.com                unit-python3.8
8491330Svbart@nginx.com                unit-go
8501330Svbart@nginx.com                unit-perl
8511330Svbart@nginx.com                unit-ruby
8521330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8531640Svbart@nginx.com         ver="1.20.0" rev="1"
8541640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
8551640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8561640Svbart@nginx.com
8571640Svbart@nginx.com<change>
8581640Svbart@nginx.com<para>
8591640Svbart@nginx.comNGINX Unit updated to 1.20.0.
8601640Svbart@nginx.com</para>
8611640Svbart@nginx.com</change>
8621640Svbart@nginx.com
8631640Svbart@nginx.com</changes>
8641640Svbart@nginx.com
8651640Svbart@nginx.com
8661640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
8671640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
8681640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8691640Svbart@nginx.com
8701640Svbart@nginx.com<change type="change">
8711640Svbart@nginx.com<para>
8721640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
8731640Svbart@nginx.comextensions from the host system.
8741640Svbart@nginx.com</para>
8751640Svbart@nginx.com</change>
8761640Svbart@nginx.com
8771640Svbart@nginx.com<change type="change">
8781640Svbart@nginx.com<para>
8791640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
8801640Svbart@nginx.com</para>
8811640Svbart@nginx.com</change>
8821640Svbart@nginx.com
8831643Svbart@nginx.com<change type="change">
8841643Svbart@nginx.com<para>
8851643Svbart@nginx.comfunctional tests migrated to the pytest framework.
8861643Svbart@nginx.com</para>
8871643Svbart@nginx.com</change>
8881643Svbart@nginx.com
8891640Svbart@nginx.com<change type="feature">
8901640Svbart@nginx.com<para>
8911640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
8921640Svbart@nginx.cominterface.
8931640Svbart@nginx.com</para>
8941640Svbart@nginx.com</change>
8951640Svbart@nginx.com
8961640Svbart@nginx.com<change type="feature">
8971640Svbart@nginx.com<para>
8981640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
8991640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
9001640Svbart@nginx.comspecification.
9011640Svbart@nginx.com</para>
9021640Svbart@nginx.com</change>
9031640Svbart@nginx.com
9041640Svbart@nginx.com<change type="feature">
9051640Svbart@nginx.com<para>
9061640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
9071640Svbart@nginx.comenvironments.
9081640Svbart@nginx.com</para>
9091640Svbart@nginx.com</change>
9101640Svbart@nginx.com
9111640Svbart@nginx.com<change type="feature">
9121640Svbart@nginx.com<para>
9131640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
9141640Svbart@nginx.com</para>
9151640Svbart@nginx.com</change>
9161640Svbart@nginx.com
9171640Svbart@nginx.com<change type="feature">
9181640Svbart@nginx.com<para>
9191640Svbart@nginx.comthe "callable" option sets Python application callable names.
9201640Svbart@nginx.com</para>
9211640Svbart@nginx.com</change>
9221640Svbart@nginx.com
9231640Svbart@nginx.com<change type="feature">
9241640Svbart@nginx.com<para>
9251640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
9261640Svbart@nginx.com</para>
9271640Svbart@nginx.com</change>
9281640Svbart@nginx.com
9291640Svbart@nginx.com<change type="feature">
9301640Svbart@nginx.com<para>
9311640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
9321640Svbart@nginx.comautomatic mounting of language module dependencies.
9331640Svbart@nginx.com</para>
9341640Svbart@nginx.com</change>
9351640Svbart@nginx.com
9361640Svbart@nginx.com<change type="bugfix">
9371640Svbart@nginx.com<para>
9381640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
9391640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
9401640Svbart@nginx.com</para>
9411640Svbart@nginx.com</change>
9421640Svbart@nginx.com
9431640Svbart@nginx.com<change type="bugfix">
9441640Svbart@nginx.com<para>
9451640Svbart@nginx.comthe router process could crash during reconfiguration.
9461640Svbart@nginx.com</para>
9471640Svbart@nginx.com</change>
9481640Svbart@nginx.com
9491640Svbart@nginx.com<change type="bugfix">
9501640Svbart@nginx.com<para>
9511640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
9521640Svbart@nginx.com</para>
9531640Svbart@nginx.com</change>
9541640Svbart@nginx.com
9551640Svbart@nginx.com<change type="bugfix">
9561640Svbart@nginx.com<para>
9571640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
9581640Svbart@nginx.comthe bug had appeared in 1.19.0.
9591640Svbart@nginx.com</para>
9601640Svbart@nginx.com</change>
9611640Svbart@nginx.com
9621640Svbart@nginx.com<change type="bugfix">
9631640Svbart@nginx.com<para>
9641640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
9651640Svbart@nginx.comthe bug had appeared in 1.16.0.
9661640Svbart@nginx.com</para>
9671640Svbart@nginx.com</change>
9681640Svbart@nginx.com
9691640Svbart@nginx.com</changes>
9701640Svbart@nginx.com
9711640Svbart@nginx.com
9721640Svbart@nginx.com<changes apply="unit-php
9731640Svbart@nginx.com                unit-python unit-python2.7
9741640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9751640Svbart@nginx.com                unit-python3.8
9761640Svbart@nginx.com                unit-go
9771640Svbart@nginx.com                unit-perl
9781640Svbart@nginx.com                unit-ruby
9791640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9801570Svbart@nginx.com         ver="1.19.0" rev="1"
9811570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
9821570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9831570Svbart@nginx.com
9841570Svbart@nginx.com<change>
9851570Svbart@nginx.com<para>
9861570Svbart@nginx.comNGINX Unit updated to 1.19.0.
9871570Svbart@nginx.com</para>
9881570Svbart@nginx.com</change>
9891570Svbart@nginx.com
9901570Svbart@nginx.com</changes>
9911570Svbart@nginx.com
9921570Svbart@nginx.com
9931570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1"
9941570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
9951570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9961570Svbart@nginx.com
9971570Svbart@nginx.com<change type="feature">
9981570Svbart@nginx.com<para>
9991570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
10001570Svbart@nginx.comincrease performance, and improve scalability.
10011570Svbart@nginx.com</para>
10021570Svbart@nginx.com</change>
10031570Svbart@nginx.com
10041570Svbart@nginx.com<change type="feature">
10051570Svbart@nginx.com<para>
10061570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns.
10071570Svbart@nginx.com</para>
10081570Svbart@nginx.com</change>
10091570Svbart@nginx.com
10101570Svbart@nginx.com<change type="feature">
10111570Svbart@nginx.com<para>
10121570Svbart@nginx.comchunked transfer encoding in proxy responses.
10131570Svbart@nginx.com</para>
10141570Svbart@nginx.com</change>
10151570Svbart@nginx.com
10161570Svbart@nginx.com<change type="feature">
10171570Svbart@nginx.com<para>
10181570Svbart@nginx.combasic variables support in the "pass" option.
10191570Svbart@nginx.com</para>
10201570Svbart@nginx.com</change>
10211570Svbart@nginx.com
10221570Svbart@nginx.com<change type="feature">
10231570Svbart@nginx.com<para>
10241570Svbart@nginx.comcompatibility with PHP 8 Beta 1.
10251570Svbart@nginx.comThanks to Remi Collet.
10261570Svbart@nginx.com</para>
10271570Svbart@nginx.com</change>
10281570Svbart@nginx.com
10291570Svbart@nginx.com<change type="bugfix">
10301570Svbart@nginx.com<para>
10311570Svbart@nginx.comthe router process could crash while passing requests to an application under
10321570Svbart@nginx.comhigh load.
10331570Svbart@nginx.com</para>
10341570Svbart@nginx.com</change>
10351570Svbart@nginx.com
10361570Svbart@nginx.com<change type="bugfix">
10371570Svbart@nginx.com<para>
10381570Svbart@nginx.coma number of language modules failed to build on some systems;
10391570Svbart@nginx.comthe bug had appeared in 1.18.0.
10401570Svbart@nginx.com</para>
10411570Svbart@nginx.com</change>
10421570Svbart@nginx.com
10431570Svbart@nginx.com<change type="bugfix">
10441570Svbart@nginx.com<para>
10451570Svbart@nginx.comtime in error log messages from PHP applications could lag.
10461570Svbart@nginx.com</para>
10471570Svbart@nginx.com</change>
10481570Svbart@nginx.com
10491570Svbart@nginx.com<change type="bugfix">
10501570Svbart@nginx.com<para>
10511570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start;
10521570Svbart@nginx.comthe bug had appeared in 1.18.0.
10531570Svbart@nginx.com</para>
10541570Svbart@nginx.com</change>
10551570Svbart@nginx.com
10561570Svbart@nginx.com<change type="bugfix">
10571570Svbart@nginx.com<para>
10581570Svbart@nginx.commemory leak during reconfiguration.
10591570Svbart@nginx.com</para>
10601570Svbart@nginx.com</change>
10611570Svbart@nginx.com
10621570Svbart@nginx.com<change type="bugfix">
10631570Svbart@nginx.com<para>
10641570Svbart@nginx.comthe daemon didn't start without language modules;
10651570Svbart@nginx.comthe bug had appeared in 1.18.0.
10661570Svbart@nginx.com</para>
10671570Svbart@nginx.com</change>
10681570Svbart@nginx.com
10691570Svbart@nginx.com<change type="bugfix">
10701570Svbart@nginx.com<para>
10711570Svbart@nginx.comthe router process could crash at exit.
10721570Svbart@nginx.com</para>
10731570Svbart@nginx.com</change>
10741570Svbart@nginx.com
10751570Svbart@nginx.com<change type="bugfix">
10761570Svbart@nginx.com<para>
10771570Svbart@nginx.comNode.js applications could crash at exit.
10781570Svbart@nginx.com</para>
10791570Svbart@nginx.com</change>
10801570Svbart@nginx.com
10811570Svbart@nginx.com<change type="bugfix">
10821570Svbart@nginx.com<para>
10831570Svbart@nginx.comthe Ruby module could be linked against a wrong library version.
10841570Svbart@nginx.com</para>
10851570Svbart@nginx.com</change>
10861570Svbart@nginx.com
10871570Svbart@nginx.com</changes>
10881570Svbart@nginx.com
10891570Svbart@nginx.com
10901570Svbart@nginx.com<changes apply="unit-php
10911570Svbart@nginx.com                unit-python unit-python2.7
10921570Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10931570Svbart@nginx.com                unit-python3.8
10941570Svbart@nginx.com                unit-go
10951570Svbart@nginx.com                unit-perl
10961570Svbart@nginx.com                unit-ruby
10971570Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10981491Svbart@nginx.com         ver="1.18.0" rev="1"
10991491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
11001491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11011491Svbart@nginx.com
11021491Svbart@nginx.com<change>
11031491Svbart@nginx.com<para>
11041491Svbart@nginx.comNGINX Unit updated to 1.18.0.
11051491Svbart@nginx.com</para>
11061491Svbart@nginx.com</change>
11071491Svbart@nginx.com
11081491Svbart@nginx.com</changes>
11091491Svbart@nginx.com
11101491Svbart@nginx.com
11111491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1"
11121491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
11131491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11141491Svbart@nginx.com
11151491Svbart@nginx.com<change type="feature">
11161491Svbart@nginx.com<para>
11171491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application.
11181491Svbart@nginx.com</para>
11191491Svbart@nginx.com</change>
11201491Svbart@nginx.com
11211491Svbart@nginx.com<change type="feature">
11221491Svbart@nginx.com<para>
11231491Svbart@nginx.commultiple "targets" in PHP applications.
11241491Svbart@nginx.com</para>
11251491Svbart@nginx.com</change>
11261491Svbart@nginx.com
11271491Svbart@nginx.com<change type="feature">
11281491Svbart@nginx.com<para>
11291491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options
11301491Svbart@nginx.comand in the "pass" option.
11311491Svbart@nginx.com</para>
11321491Svbart@nginx.com</change>
11331491Svbart@nginx.com
11341491Svbart@nginx.com</changes>
11351491Svbart@nginx.com
11361491Svbart@nginx.com
11371491Svbart@nginx.com<changes apply="unit-php
11381491Svbart@nginx.com                unit-python unit-python2.7
11391491Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11401491Svbart@nginx.com                unit-python3.8
11411491Svbart@nginx.com                unit-go
11421491Svbart@nginx.com                unit-perl
11431491Svbart@nginx.com                unit-ruby
11441491Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11451460Svbart@nginx.com         ver="1.17.0" rev="1"
11461460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
11471460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11481460Svbart@nginx.com
11491460Svbart@nginx.com<change>
11501460Svbart@nginx.com<para>
11511460Svbart@nginx.comNGINX Unit updated to 1.17.0.
11521460Svbart@nginx.com</para>
11531460Svbart@nginx.com</change>
11541460Svbart@nginx.com
11551460Svbart@nginx.com</changes>
11561460Svbart@nginx.com
11571460Svbart@nginx.com
11581460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1"
11591460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
11601460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11611460Svbart@nginx.com
11621460Svbart@nginx.com<change type="feature">
11631460Svbart@nginx.com<para>
11641460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external
11651460Svbart@nginx.comredirection.
1166