xref: /unit/docs/changes.xml (revision 2202)
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"
17*2202Szelenkov@nginx.com         ver="1.29.0" rev="1"
18*2202Szelenkov@nginx.com         date="" time=""
19*2202Szelenkov@nginx.com         packager="Nginx Packaging &lt;nginx-packaging@f5.com&gt;">
20*2202Szelenkov@nginx.com
21*2202Szelenkov@nginx.com<change>
22*2202Szelenkov@nginx.com<para>
23*2202Szelenkov@nginx.comNGINX Unit updated to 1.29.0.
24*2202Szelenkov@nginx.com</para>
25*2202Szelenkov@nginx.com</change>
26*2202Szelenkov@nginx.com
27*2202Szelenkov@nginx.com</changes>
28*2202Szelenkov@nginx.com
29*2202Szelenkov@nginx.com
30*2202Szelenkov@nginx.com<changes apply="unit" ver="1.29.0" rev="1"
31*2202Szelenkov@nginx.com         date="" time=""
32*2202Szelenkov@nginx.com         packager="Nginx Packaging &lt;nginx-packaging@f5.com&gt;">
33*2202Szelenkov@nginx.com
34*2202Szelenkov@nginx.com</changes>
35*2202Szelenkov@nginx.com
36*2202Szelenkov@nginx.com
37*2202Szelenkov@nginx.com<changes apply="unit-php
38*2202Szelenkov@nginx.com                unit-python unit-python2.7
39*2202Szelenkov@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
40*2202Szelenkov@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
41*2202Szelenkov@nginx.com                unit-go
42*2202Szelenkov@nginx.com                unit-perl
43*2202Szelenkov@nginx.com                unit-ruby
44*2202Szelenkov@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
45*2202Szelenkov@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
462129Szelenkov@nginx.com         ver="1.28.0" rev="1"
472197Szelenkov@nginx.com         date="2022-09-13" time="18:00:00 +0300"
482135Sthresh@nginx.com         packager="Nginx Packaging &lt;nginx-packaging@f5.com&gt;">
492129Szelenkov@nginx.com
502129Szelenkov@nginx.com<change>
512129Szelenkov@nginx.com<para>
522129Szelenkov@nginx.comNGINX Unit updated to 1.28.0.
532129Szelenkov@nginx.com</para>
542129Szelenkov@nginx.com</change>
552129Szelenkov@nginx.com
562129Szelenkov@nginx.com</changes>
572129Szelenkov@nginx.com
582129Szelenkov@nginx.com
592129Szelenkov@nginx.com<changes apply="unit" ver="1.28.0" rev="1"
602197Szelenkov@nginx.com         date="2022-09-13" time="18:00:00 +0300"
612135Sthresh@nginx.com         packager="Nginx Packaging &lt;nginx-packaging@f5.com&gt;">
622129Szelenkov@nginx.com
632173Salx.manpages@gmail.com<change type="change">
642173Salx.manpages@gmail.com<para>
652173Salx.manpages@gmail.comincreased the applications' startup timeout.
662173Salx.manpages@gmail.com</para>
672173Salx.manpages@gmail.com</change>
682173Salx.manpages@gmail.com
692181Salx.manpages@gmail.com<change type="change">
702181Salx.manpages@gmail.com<para>
712181Salx.manpages@gmail.comdisallowed abstract Unix domain socket syntax in non-Linux systems.
722181Salx.manpages@gmail.com</para>
732181Salx.manpages@gmail.com</change>
742181Salx.manpages@gmail.com
752133Sz.hong@f5.com<change type="feature">
762133Sz.hong@f5.com<para>
772196Szelenkov@nginx.combasic statistics API.
782179Salx.manpages@gmail.com</para>
792179Salx.manpages@gmail.com</change>
802179Salx.manpages@gmail.com
812179Salx.manpages@gmail.com<change type="feature">
822179Salx.manpages@gmail.com<para>
832196Szelenkov@nginx.comcustomizable access log format.
842196Szelenkov@nginx.com</para>
852196Szelenkov@nginx.com</change>
862196Szelenkov@nginx.com
872196Szelenkov@nginx.com<change type="feature">
882196Szelenkov@nginx.com<para>
892196Szelenkov@nginx.commore HTTP variables support.
902161Salx.manpages@gmail.com</para>
912161Salx.manpages@gmail.com</change>
922161Salx.manpages@gmail.com
932161Salx.manpages@gmail.com<change type="feature">
942161Salx.manpages@gmail.com<para>
952133Sz.hong@f5.comforwarded header to replace client address and protocol.
962133Sz.hong@f5.com</para>
972133Sz.hong@f5.com</change>
982133Sz.hong@f5.com
992147Sz.hong@f5.com<change type="feature">
1002147Sz.hong@f5.com<para>
1012147Sz.hong@f5.comability to get dynamic variables.
1022147Sz.hong@f5.com</para>
1032147Sz.hong@f5.com</change>
1042147Sz.hong@f5.com
1052149Sz.hong@f5.com<change type="feature">
1062149Sz.hong@f5.com<para>
1072196Szelenkov@nginx.comsupport for abstract Unix sockets.
1082196Szelenkov@nginx.com</para>
1092196Szelenkov@nginx.com</change>
1102196Szelenkov@nginx.com
1112196Szelenkov@nginx.com<change type="feature">
1122196Szelenkov@nginx.com<para>
1132196Szelenkov@nginx.comsupport for Unix sockets in address matching.
1142149Sz.hong@f5.com</para>
1152149Sz.hong@f5.com</change>
1162149Sz.hong@f5.com
1172161Salx.manpages@gmail.com<change type="feature">
1182161Salx.manpages@gmail.com<para>
1192188Szelenkov@nginx.comthe $dollar variable translates to a literal "$" during variable substitution.
1202161Salx.manpages@gmail.com</para>
1212161Salx.manpages@gmail.com</change>
1222161Salx.manpages@gmail.com
1232137Salx.manpages@gmail.com<change type="bugfix">
1242137Salx.manpages@gmail.com<para>
1252188Szelenkov@nginx.comrouter process could crash if index file didn't contain an extension.
1262137Salx.manpages@gmail.com</para>
1272137Salx.manpages@gmail.com</change>
1282137Salx.manpages@gmail.com
1292163Salx.manpages@gmail.com<change type="bugfix">
1302163Salx.manpages@gmail.com<para>
1312163Salx.manpages@gmail.comforce SCRIPT_NAME in Ruby to always be an empty string.
1322163Salx.manpages@gmail.com</para>
1332163Salx.manpages@gmail.com</change>
1342163Salx.manpages@gmail.com
1352164Sz.hong@f5.com<change type="bugfix">
1362164Sz.hong@f5.com<para>
1372196Szelenkov@nginx.comwhen isolated PID numbers reach the prototype process host PID,
1382196Szelenkov@nginx.comthe prototype crashed.
1392196Szelenkov@nginx.com</para>
1402196Szelenkov@nginx.com</change>
1412196Szelenkov@nginx.com
1422196Szelenkov@nginx.com<change type="bugfix">
1432196Szelenkov@nginx.com<para>
1442188Szelenkov@nginx.comthe Ruby application process could crash on SIGTERM.
1452164Sz.hong@f5.com</para>
1462164Sz.hong@f5.com</change>
1472164Sz.hong@f5.com
1482174Smax.romanov@gmail.com<change type="bugfix">
1492174Smax.romanov@gmail.com<para>
1502188Szelenkov@nginx.comthe Ruby application process could crash on SIGINT.
1512183Sa.clayton@f5.com</para>
1522183Sa.clayton@f5.com</change>
1532183Sa.clayton@f5.com
1542183Sa.clayton@f5.com<change type="bugfix">
1552183Sa.clayton@f5.com<para>
1562194Sa.colomar@f5.commutex leak in the C API.
1572194Sa.colomar@f5.com</para>
1582194Sa.colomar@f5.com</change>
1592194Sa.colomar@f5.com
1602129Szelenkov@nginx.com</changes>
1612129Szelenkov@nginx.com
1622129Szelenkov@nginx.com
1632129Szelenkov@nginx.com<changes apply="unit-php
1642129Szelenkov@nginx.com                unit-python unit-python2.7
1652129Szelenkov@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1662129Szelenkov@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
1672129Szelenkov@nginx.com                unit-go
1682129Szelenkov@nginx.com                unit-perl
1692129Szelenkov@nginx.com                unit-ruby
1702129Szelenkov@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1712129Szelenkov@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
1722012Svbart@nginx.com         ver="1.27.0" rev="1"
1732127Szelenkov@nginx.com         date="2022-06-02" time="18:00:00 +0300"
1742012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1752012Svbart@nginx.com
1762012Svbart@nginx.com<change>
1772012Svbart@nginx.com<para>
1782012Svbart@nginx.comNGINX Unit updated to 1.27.0.
1792012Svbart@nginx.com</para>
1802012Svbart@nginx.com</change>
1812012Svbart@nginx.com
1822012Svbart@nginx.com</changes>
1832012Svbart@nginx.com
1842012Svbart@nginx.com
1852012Svbart@nginx.com<changes apply="unit" ver="1.27.0" rev="1"
1862127Szelenkov@nginx.com         date="2022-06-02" time="18:00:00 +0300"
1872012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1882012Svbart@nginx.com
1892072Sz.hong@f5.com<change type="feature">
1902072Sz.hong@f5.com<para>
1912108Salx.manpages@gmail.comability to specify a custom index file name when serving static files.
1922108Salx.manpages@gmail.com</para>
1932108Salx.manpages@gmail.com</change>
1942108Salx.manpages@gmail.com
1952108Salx.manpages@gmail.com<change type="feature">
1962108Salx.manpages@gmail.com<para>
1972081Salx.manpages@gmail.comvariables support in the "location" option of the "return" action.
1982081Salx.manpages@gmail.com</para>
1992081Salx.manpages@gmail.com</change>
2002081Salx.manpages@gmail.com
2012081Salx.manpages@gmail.com<change type="feature">
2022081Salx.manpages@gmail.com<para>
2032113Sartem.konev@nginx.comsupport empty strings in the "location" option of the "return" action.
2042113Sartem.konev@nginx.com</para>
2052113Sartem.konev@nginx.com</change>
2062113Sartem.konev@nginx.com
2072113Sartem.konev@nginx.com<change type="feature">
2082113Sartem.konev@nginx.com<para>
2092113Sartem.konev@nginx.comadded a new variable, $request_uri, that includes both the path and the query
2102113Sartem.konev@nginx.comparts as per RFC 3986, sections 3-4.
2112113Sartem.konev@nginx.com</para>
2122113Sartem.konev@nginx.com</change>
2132113Sartem.konev@nginx.com
2142113Sartem.konev@nginx.com<change type="feature">
2152113Sartem.konev@nginx.com<para>
2162113Sartem.konev@nginx.comRuby Rack environment parameter "SCRIPT_NAME" support.
2172110Salx.manpages@gmail.com</para>
2182110Salx.manpages@gmail.com</change>
2192110Salx.manpages@gmail.com
2202110Salx.manpages@gmail.com<change type="feature">
2212110Salx.manpages@gmail.com<para>
2222072Sz.hong@f5.comcompatibility with GCC 12.
2232072Sz.hong@f5.com</para>
2242072Sz.hong@f5.com</change>
2252072Sz.hong@f5.com
2262060Smax.romanov@nginx.com<change type="bugfix">
2272060Smax.romanov@nginx.com<para>
2282093Sz.hong@f5.comRuby Sinatra applications don't work without custom logging.
2292093Sz.hong@f5.com</para>
2302093Sz.hong@f5.com</change>
2312093Sz.hong@f5.com
2322093Sz.hong@f5.com<change type="bugfix">
2332093Sz.hong@f5.com<para>
2342113Sartem.konev@nginx.comthe controller process could crash when a chain of more than four
2352069Sz.hong@f5.comcertificates was uploaded.
2362069Sz.hong@f5.com</para>
2372069Sz.hong@f5.com</change>
2382069Sz.hong@f5.com
2392069Sz.hong@f5.com<change type="bugfix">
2402069Sz.hong@f5.com<para>
2412060Smax.romanov@nginx.comsome Perl applications failed to process the request body, notably with Plack.
2422060Smax.romanov@nginx.com</para>
2432060Smax.romanov@nginx.com</change>
2442060Smax.romanov@nginx.com
2452061Smax.romanov@nginx.com<change type="bugfix">
2462061Smax.romanov@nginx.com<para>
2472061Smax.romanov@nginx.comsome Spring Boot applications failed to start, notably with Grails.
2482061Smax.romanov@nginx.com</para>
2492061Smax.romanov@nginx.com</change>
2502061Smax.romanov@nginx.com
2512067Smax.romanov@nginx.com<change type="bugfix">
2522067Smax.romanov@nginx.com<para>
2532067Smax.romanov@nginx.comincorrect Python protocol auto detection (ASGI or WSGI) for native callable
2542067Smax.romanov@nginx.comobject, notably with Falcon.
2552067Smax.romanov@nginx.com</para>
2562067Smax.romanov@nginx.com</change>
2572067Smax.romanov@nginx.com
2582117Szelenkov@nginx.com<change type="bugfix">
2592117Szelenkov@nginx.com<para>
2602117Szelenkov@nginx.comECMAScript modules did not work with the recent Node.js versions.
2612117Szelenkov@nginx.com</para>
2622117Szelenkov@nginx.com</change>
2632117Szelenkov@nginx.com
2642050Svbart@nginx.com</changes>
2652050Svbart@nginx.com
2662050Svbart@nginx.com
2672050Svbart@nginx.com<changes apply="unit-php
2682050Svbart@nginx.com                unit-python unit-python2.7
2692050Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2702050Svbart@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
2712050Svbart@nginx.com                unit-go
2722050Svbart@nginx.com                unit-perl
2732050Svbart@nginx.com                unit-ruby
2742050Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2752050Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
2762029SN/A         ver="1.26.1" rev="1"
2772045SN/A         date="2021-12-02" time="18:00:00 +0300"
2782029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2792029SN/A
2802029SN/A<change>
2812029SN/A<para>
2822029SN/ANGINX Unit updated to 1.26.1.
2832029SN/A</para>
2842029SN/A</change>
2852029SN/A
2862029SN/A</changes>
2872029SN/A
2882029SN/A
2892029SN/A<changes apply="unit" ver="1.26.1" rev="1"
2902045SN/A         date="2021-12-02" time="18:00:00 +0300"
2912029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2922029SN/A
2932033SN/A<change type="bugfix">
2942033SN/A<para>
2952044SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had
2962044SN/Aappeared in 1.26.0.
2972033SN/A</para>
2982033SN/A</change>
2992033SN/A
3002034SN/A<change type="bugfix">
3012034SN/A<para>
3022044SN/Aa prototype process could crash on an application process exit; the bug had
3032034SN/Aappeared in 1.26.0.
3042034SN/A</para>
3052034SN/A</change>
3062034SN/A
3072035SN/A<change type="bugfix">
3082035SN/A<para>
3092044SN/Athe router process crashed on reconfiguration if "access_log" was configured
3102044SN/Awithout listeners.
3112044SN/A</para>
3122044SN/A</change>
3132044SN/A
3142044SN/A<change type="bugfix">
3152044SN/A<para>
3162035SN/Aa segmentation fault occurred in the PHP module if chdir() or
3172035SN/Afastcgi_finish_request() was called in the OPcache preloading script.
3182035SN/A</para>
3192035SN/A</change>
3202035SN/A
3212040SN/A<change type="bugfix">
3222040SN/A<para>
3232041SN/Afatal errors on DragonFly BSD; the bug had appeared in 1.26.0.
3242041SN/A</para>
3252041SN/A</change>
3262041SN/A
3272029SN/A</changes>
3282029SN/A
3292029SN/A
3301973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1"
3312007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
3321973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3331973Sdefan@nginx.com
3341973Sdefan@nginx.com<change>
3351973Sdefan@nginx.com<para>
3361973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit.
3371973Sdefan@nginx.com</para>
3381973Sdefan@nginx.com</change>
3391973Sdefan@nginx.com
3401973Sdefan@nginx.com</changes>
3411973Sdefan@nginx.com
3421973Sdefan@nginx.com
3431973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1"
3442007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
3451973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3461973Sdefan@nginx.com
3471973Sdefan@nginx.com<change>
3481973Sdefan@nginx.com<para>
3491973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit.
3501973Sdefan@nginx.com</para>
3511973Sdefan@nginx.com</change>
3521973Sdefan@nginx.com
3531973Sdefan@nginx.com</changes>
3541973Sdefan@nginx.com
3551973Sdefan@nginx.com
3561896Svbart@nginx.com<changes apply="unit-php
3571896Svbart@nginx.com                unit-python unit-python2.7
3581896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3591896Svbart@nginx.com                unit-python3.8 unit-python3.9
3601896Svbart@nginx.com                unit-go
3611896Svbart@nginx.com                unit-perl
3621896Svbart@nginx.com                unit-ruby
3631896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3641896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
3651951Svbart@nginx.com         ver="1.26.0" rev="1"
3662007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
3671951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3681951Svbart@nginx.com
3691951Svbart@nginx.com<change>
3701951Svbart@nginx.com<para>
3711951Svbart@nginx.comNGINX Unit updated to 1.26.0.
3721951Svbart@nginx.com</para>
3731951Svbart@nginx.com</change>
3741951Svbart@nginx.com
3751951Svbart@nginx.com</changes>
3761951Svbart@nginx.com
3771951Svbart@nginx.com
3781951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
3792007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
3801951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3811951Svbart@nginx.com
3821960Sz.hong@f5.com<change type="change">
3831960Sz.hong@f5.com<para>
3841960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
3851960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
3861960Sz.hong@f5.com</para>
3871960Sz.hong@f5.com</change>
3881960Sz.hong@f5.com
3891960Sz.hong@f5.com<change type="feature">
3901960Sz.hong@f5.com<para>
3912006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior
3922006Svbart@nginx.comwhen updating from previous versions.
3932006Svbart@nginx.com</para>
3942006Svbart@nginx.com</change>
3952006Svbart@nginx.com
3962006Svbart@nginx.com<change type="feature">
3972006Svbart@nginx.com<para>
3981960Sz.hong@f5.comvariables support in the "share" option.
3991960Sz.hong@f5.com</para>
4001960Sz.hong@f5.com</change>
4011960Sz.hong@f5.com
4021959Sz.hong@f5.com<change type="feature">
4031959Sz.hong@f5.com<para>
4041961Sz.hong@f5.commultiple paths in the "share" option.
4051961Sz.hong@f5.com</para>
4061961Sz.hong@f5.com</change>
4071961Sz.hong@f5.com
4081961Sz.hong@f5.com<change type="feature">
4091961Sz.hong@f5.com<para>
4101959Sz.hong@f5.comvariables support in the "chroot" option.
4111959Sz.hong@f5.com</para>
4121959Sz.hong@f5.com</change>
4131959Sz.hong@f5.com
4141969Sz.hong@f5.com<change type="feature">
4151969Sz.hong@f5.com<para>
4162006Svbart@nginx.comPHP opcache is shared between application processes.
4171969Sz.hong@f5.com</para>
4181969Sz.hong@f5.com</change>
4191969Sz.hong@f5.com
4201991Sz.hong@f5.com<change type="feature">
4211991Sz.hong@f5.com<para>
4221991Sz.hong@f5.comrequest routing by the query string.
4231991Sz.hong@f5.com</para>
4241991Sz.hong@f5.com</change>
4251991Sz.hong@f5.com
4261955Smax.romanov@nginx.com<change type="bugfix">
4271955Smax.romanov@nginx.com<para>
4282006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached
4292006Svbart@nginx.comby asynchronous or multithreaded apps.
4301955Smax.romanov@nginx.com</para>
4311955Smax.romanov@nginx.com</change>
4321955Smax.romanov@nginx.com
4331956Smax.romanov@nginx.com<change type="bugfix">
4341956Smax.romanov@nginx.com<para>
4351956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
4361956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
4371956Smax.romanov@nginx.com</para>
4381956Smax.romanov@nginx.com</change>
4391956Smax.romanov@nginx.com
4401992Smax.romanov@nginx.com<change type="bugfix">
4411992Smax.romanov@nginx.com<para>
4422006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35.
4431992Smax.romanov@nginx.com</para>
4441992Smax.romanov@nginx.com</change>
4451992Smax.romanov@nginx.com
4461951Svbart@nginx.com</changes>
4471951Svbart@nginx.com
4481951Svbart@nginx.com
4491951Svbart@nginx.com<changes apply="unit-php
4501951Svbart@nginx.com                unit-python unit-python2.7
4511951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4521951Svbart@nginx.com                unit-python3.8 unit-python3.9
4531951Svbart@nginx.com                unit-go
4541951Svbart@nginx.com                unit-perl
4551951Svbart@nginx.com                unit-ruby
4561951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4571951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
4581896Svbart@nginx.com         ver="1.25.0" rev="1"
4591945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
4601896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4611896Svbart@nginx.com
4621896Svbart@nginx.com<change>
4631896Svbart@nginx.com<para>
4641896Svbart@nginx.comNGINX Unit updated to 1.25.0.
4651896Svbart@nginx.com</para>
4661896Svbart@nginx.com</change>
4671896Svbart@nginx.com
4681896Svbart@nginx.com</changes>
4691896Svbart@nginx.com
4701896Svbart@nginx.com
4711896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
4721945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
4731896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4741896Svbart@nginx.com
4751910So.canty@f5.com<change type="feature">
4761910So.canty@f5.com<para>
4771944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
4781942Sa.suvorov@f5.com</para>
4791942Sa.suvorov@f5.com</change>
4801942Sa.suvorov@f5.com
4811942Sa.suvorov@f5.com<change type="feature">
4821942Sa.suvorov@f5.com<para>
4831920Sa.suvorov@f5.comTLS sessions cache.
4841920Sa.suvorov@f5.com</para>
4851920Sa.suvorov@f5.com</change>
4861920Sa.suvorov@f5.com
4871920Sa.suvorov@f5.com<change type="feature">
4881920Sa.suvorov@f5.com<para>
4891944Svbart@nginx.comTLS session tickets.
4901910So.canty@f5.com</para>
4911910So.canty@f5.com</change>
4921910So.canty@f5.com
4931926Smax.romanov@nginx.com<change type="feature">
4941926Smax.romanov@nginx.com<para>
4951926Smax.romanov@nginx.comapplication restart control.
4961926Smax.romanov@nginx.com</para>
4971926Smax.romanov@nginx.com</change>
4981926Smax.romanov@nginx.com
4991936So.canty@f5.com<change type="feature">
5001936So.canty@f5.com<para>
5011944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
5021936So.canty@f5.com</para>
5031936So.canty@f5.com</change>
5041936So.canty@f5.com
5051907Smax.romanov@nginx.com<change type="bugfix">
5061907Smax.romanov@nginx.com<para>
5071944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
5081944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
5091921Sa.suvorov@f5.com</para>
5101921Sa.suvorov@f5.com</change>
5111921Sa.suvorov@f5.com
5121921Sa.suvorov@f5.com<change type="bugfix">
5131921Sa.suvorov@f5.com<para>
5141944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
5151944Svbart@nginx.combundles in a listener if the client did not use SNI.
5161907Smax.romanov@nginx.com</para>
5171907Smax.romanov@nginx.com</change>
5181907Smax.romanov@nginx.com
5191907Smax.romanov@nginx.com<change type="bugfix">
5201907Smax.romanov@nginx.com<para>
5211950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
5221915Smax.romanov@nginx.comreconfiguration.
5231915Smax.romanov@nginx.com</para>
5241915Smax.romanov@nginx.com</change>
5251915Smax.romanov@nginx.com
5261915Smax.romanov@nginx.com<change type="bugfix">
5271915Smax.romanov@nginx.com<para>
5281944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
5291944Svbart@nginx.comframework.
5301944Svbart@nginx.com</para>
5311944Svbart@nginx.com</change>
5321944Svbart@nginx.com
5331944Svbart@nginx.com<change type="bugfix">
5341944Svbart@nginx.com<para>
5351944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
5361944Svbart@nginx.comstopped or crashed.
5371907Smax.romanov@nginx.com</para>
5381907Smax.romanov@nginx.com</change>
5391907Smax.romanov@nginx.com
5401909So.canty@f5.com<change type="bugfix">
5411909So.canty@f5.com<para>
5421909So.canty@f5.comthe controller or router process could crash if the configuration contained
5431909So.canty@f5.coma full-form IPv6 in a listener address.
5441909So.canty@f5.com</para>
5451909So.canty@f5.com</change>
5461909So.canty@f5.com
5471916Smax.romanov@nginx.com<change type="bugfix">
5481916Smax.romanov@nginx.com<para>
5491929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
5501929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
5511929Sz.hong@f5.com</para>
5521929Sz.hong@f5.com</change>
5531929Sz.hong@f5.com
5541930So.canty@f5.com<change type="bugfix">
5551930So.canty@f5.com<para>
5561944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
5571944Svbart@nginx.comor destination address patterns.
5581930So.canty@f5.com</para>
5591930So.canty@f5.com</change>
5601930So.canty@f5.com
5611896Svbart@nginx.com</changes>
5621896Svbart@nginx.com
5631896Svbart@nginx.com
5641887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
5651891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
5661887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5671887Sdefan@nginx.com
5681887Sdefan@nginx.com<change>
5691887Sdefan@nginx.com<para>
5701887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
5711887Sdefan@nginx.com</para>
5721887Sdefan@nginx.com</change>
5731887Sdefan@nginx.com
5741887Sdefan@nginx.com</changes>
5751887Sdefan@nginx.com
5761887Sdefan@nginx.com
5771887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
5781891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
5791887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5801887Sdefan@nginx.com
5811887Sdefan@nginx.com<change>
5821887Sdefan@nginx.com<para>
5831887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
5841887Sdefan@nginx.com</para>
5851887Sdefan@nginx.com</change>
5861887Sdefan@nginx.com
5871887Sdefan@nginx.com</changes>
5881887Sdefan@nginx.com
5891887Sdefan@nginx.com
5901834Svbart@nginx.com<changes apply="unit-php
5911834Svbart@nginx.com                unit-python unit-python2.7
5921834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5931834Svbart@nginx.com                unit-python3.8 unit-python3.9
5941834Svbart@nginx.com                unit-go
5951834Svbart@nginx.com                unit-perl
5961834Svbart@nginx.com                unit-ruby
5971834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
5981834Svbart@nginx.com                unit-jsc14 unit-jsc15"
5991839Svbart@nginx.com         ver="1.24.0" rev="1"
6001891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
6011839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6021839Svbart@nginx.com
6031839Svbart@nginx.com<change>
6041839Svbart@nginx.com<para>
6051839Svbart@nginx.comNGINX Unit updated to 1.24.0.
6061839Svbart@nginx.com</para>
6071839Svbart@nginx.com</change>
6081839Svbart@nginx.com
6091839Svbart@nginx.com</changes>
6101839Svbart@nginx.com
6111839Svbart@nginx.com
6121839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
6131891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
6141839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6151839Svbart@nginx.com
6161882So.canty@f5.com<change type="change">
6171882So.canty@f5.com<para>
6181882So.canty@f5.comPHP added to the default MIME type list.
6191882So.canty@f5.com</para>
6201882So.canty@f5.com</change>
6211882So.canty@f5.com
6221855Sz.hong@f5.com<change type="feature">
6231855Sz.hong@f5.com<para>
6241885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
6251885Sa.suvorov@f5.com</para>
6261885Sa.suvorov@f5.com</change>
6271885Sa.suvorov@f5.com
6281885Sa.suvorov@f5.com<change type="feature">
6291885Sa.suvorov@f5.com<para>
6301890Svbart@nginx.comthe ability to limit static file serving by MIME types.
6311890Svbart@nginx.com</para>
6321890Svbart@nginx.com</change>
6331890Svbart@nginx.com
6341890Svbart@nginx.com<change type="feature">
6351890Svbart@nginx.com<para>
6361890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
6371890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
6381872So.canty@f5.com</para>
6391872So.canty@f5.com</change>
6401872So.canty@f5.com
6411872So.canty@f5.com<change type="feature">
6421872So.canty@f5.com<para>
6431889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
6441889Sartem.konev@nginx.comNode.js.
6451865So.canty@f5.com</para>
6461865So.canty@f5.com</change>
6471865So.canty@f5.com
6481865So.canty@f5.com<change type="feature">
6491865So.canty@f5.com<para>
6501890Svbart@nginx.commultiple "targets" in Python applications.
6511855Sz.hong@f5.com</para>
6521855Sz.hong@f5.com</change>
6531855Sz.hong@f5.com
6541870So.canty@f5.com<change type="feature">
6551870So.canty@f5.com<para>
6561870So.canty@f5.comcompatibility with Ruby 3.0.
6571870So.canty@f5.com</para>
6581870So.canty@f5.com</change>
6591870So.canty@f5.com
6601861Svbart@nginx.com<change type="bugfix">
6611861Svbart@nginx.com<para>
6621889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
6631884Sa.suvorov@f5.com</para>
6641884Sa.suvorov@f5.com</change>
6651884Sa.suvorov@f5.com
6661884Sa.suvorov@f5.com<change type="bugfix">
6671884Sa.suvorov@f5.com<para>
6681861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
6691861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
6701861Svbart@nginx.com</para>
6711861Svbart@nginx.com</change>
6721861Svbart@nginx.com
6731839Svbart@nginx.com</changes>
6741839Svbart@nginx.com
6751839Svbart@nginx.com
6761839Svbart@nginx.com<changes apply="unit-php
6771839Svbart@nginx.com                unit-python unit-python2.7
6781839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6791839Svbart@nginx.com                unit-python3.8 unit-python3.9
6801839Svbart@nginx.com                unit-go
6811839Svbart@nginx.com                unit-perl
6821839Svbart@nginx.com                unit-ruby
6831839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
6841839Svbart@nginx.com                unit-jsc14 unit-jsc15"
6851834Svbart@nginx.com         ver="1.23.0" rev="1"
6861834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
6871834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6881834Svbart@nginx.com
6891834Svbart@nginx.com<change>
6901834Svbart@nginx.com<para>
6911834Svbart@nginx.comNGINX Unit updated to 1.23.0.
6921834Svbart@nginx.com</para>
6931834Svbart@nginx.com</change>
6941834Svbart@nginx.com
6951834Svbart@nginx.com</changes>
6961834Svbart@nginx.com
6971834Svbart@nginx.com
6981806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
6991834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
7001806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7011806Svbart@nginx.com
7021825Sthresh@nginx.com<change type="feature">
7031825Sthresh@nginx.com<para>
7041833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
7051828Sa.suvorov@f5.comIndication (SNI) TLS extension.
7061828Sa.suvorov@f5.com</para>
7071828Sa.suvorov@f5.com</change>
7081828Sa.suvorov@f5.com
7091828Sa.suvorov@f5.com<change type="feature">
7101828Sa.suvorov@f5.com<para>
7111833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
7121833Sartem.konev@nginx.cominstallation.
7131825Sthresh@nginx.com</para>
7141825Sthresh@nginx.com</change>
7151825Sthresh@nginx.com
7161811Smax.romanov@nginx.com<change type="bugfix">
7171811Smax.romanov@nginx.com<para>
7181812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
7191812Svbart@nginx.comappeared in 1.17.0.
7201812Svbart@nginx.com</para>
7211812Svbart@nginx.com</change>
7221812Svbart@nginx.com
7231812Svbart@nginx.com<change type="bugfix">
7241812Svbart@nginx.com<para>
7251833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
7261812Svbart@nginx.comappeared in 1.6.
7271812Svbart@nginx.com</para>
7281812Svbart@nginx.com</change>
7291812Svbart@nginx.com
7301812Svbart@nginx.com<change type="bugfix">
7311812Svbart@nginx.com<para>
7321833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
7331832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
7341832Smax.romanov@nginx.com</para>
7351832Smax.romanov@nginx.com</change>
7361832Smax.romanov@nginx.com
7371832Smax.romanov@nginx.com<change type="bugfix">
7381832Smax.romanov@nginx.com<para>
7391833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
7401811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
7411811Smax.romanov@nginx.com</para>
7421811Smax.romanov@nginx.com</change>
7431806Svbart@nginx.com
7441813Svbart@nginx.com<change type="bugfix">
7451813Svbart@nginx.com<para>
7461813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
7471813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
7481813Svbart@nginx.com</para>
7491813Svbart@nginx.com</change>
7501813Svbart@nginx.com
7511814Svbart@nginx.com<change type="bugfix">
7521814Svbart@nginx.com<para>
7531820Svbart@nginx.comthe controller process could crash while requesting information about a
7541820Svbart@nginx.comcertificate with a non-DNS SAN entry.
7551820Svbart@nginx.com</para>
7561820Svbart@nginx.com</change>
7571820Svbart@nginx.com
7581820Svbart@nginx.com<change type="bugfix">
7591820Svbart@nginx.com<para>
7601822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
7611833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
7621822Svbart@nginx.com</para>
7631822Svbart@nginx.com</change>
7641822Svbart@nginx.com
7651822Svbart@nginx.com<change type="bugfix">
7661822Svbart@nginx.com<para>
7671833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
7681833Sartem.konev@nginx.comclass.
7691814Svbart@nginx.com</para>
7701814Svbart@nginx.com</change>
7711814Svbart@nginx.com
7721815Svbart@nginx.com<change type="bugfix">
7731815Svbart@nginx.com<para>
7741815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
7751815Svbart@nginx.comappeared in 1.22.0.
7761815Svbart@nginx.com</para>
7771815Svbart@nginx.com</change>
7781815Svbart@nginx.com
7791806Svbart@nginx.com</changes>
7801806Svbart@nginx.com
7811806Svbart@nginx.com
7821798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
7831798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
7841798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7851798Sdefan@nginx.com
7861798Sdefan@nginx.com<change>
7871798Sdefan@nginx.com<para>
7881798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
7891798Sdefan@nginx.com</para>
7901798Sdefan@nginx.com</change>
7911798Sdefan@nginx.com
7921798Sdefan@nginx.com</changes>
7931798Sdefan@nginx.com
7941798Sdefan@nginx.com
7951763Sdefan@nginx.com<changes apply="unit-php
7961763Sdefan@nginx.com                unit-python unit-python2.7
7971763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7981763Sdefan@nginx.com                unit-python3.8
7991763Sdefan@nginx.com                unit-go
8001763Sdefan@nginx.com                unit-perl
8011763Sdefan@nginx.com                unit-ruby
8021763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
8031763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
8041763Sdefan@nginx.com         ver="1.22.0" rev="1"
8051793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
8061763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8071763Sdefan@nginx.com
8081763Sdefan@nginx.com<change>
8091763Sdefan@nginx.com<para>
8101763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
8111763Sdefan@nginx.com</para>
8121763Sdefan@nginx.com</change>
8131763Sdefan@nginx.com
8141763Sdefan@nginx.com</changes>
8151763Sdefan@nginx.com
8161763Sdefan@nginx.com
8171727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
8181793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
8191727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8201727Svbart@nginx.com
8211759Svbart@nginx.com<change type="feature">
8221759Svbart@nginx.com<para>
8231792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
8241792Svbart@nginx.comcompliant with Stream API.
8251759Svbart@nginx.com</para>
8261759Svbart@nginx.com</change>
8271759Svbart@nginx.com
8281766Smax.romanov@nginx.com<change type="feature">
8291766Smax.romanov@nginx.com<para>
8301792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
8311792Svbart@nginx.comapps.
8321732Svbart@nginx.com</para>
8331732Svbart@nginx.com</change>
8341732Svbart@nginx.com
8351733Svbart@nginx.com<change type="bugfix">
8361733Svbart@nginx.com<para>
8371792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
8381792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
8391754Smax.romanov@nginx.com</para>
8401754Smax.romanov@nginx.com</change>
8411754Smax.romanov@nginx.com
8421755Smax.romanov@nginx.com<change type="bugfix">
8431755Smax.romanov@nginx.com<para>
8441790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
8451755Smax.romanov@nginx.comappeared in 1.19.0.
8461755Smax.romanov@nginx.com</para>
8471755Smax.romanov@nginx.com</change>
8481755Smax.romanov@nginx.com
8491756Smax.romanov@nginx.com<change type="bugfix">
8501756Smax.romanov@nginx.com<para>
8511790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
8521790Sartem.konev@nginx.comappeared in 1.19.0.
8531756Smax.romanov@nginx.com</para>
8541756Smax.romanov@nginx.com</change>
8551756Smax.romanov@nginx.com
8561760Smax.romanov@nginx.com<change type="bugfix">
8571760Smax.romanov@nginx.com<para>
8581792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
8591792Svbart@nginx.com</para>
8601792Svbart@nginx.com</change>
8611792Svbart@nginx.com
8621792Svbart@nginx.com<change type="bugfix">
8631792Svbart@nginx.com<para>
8641792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
8651792Svbart@nginx.commissing in the PHP module.
8661792Svbart@nginx.com</para>
8671792Svbart@nginx.com</change>
8681792Svbart@nginx.com
8691792Svbart@nginx.com<change type="bugfix">
8701792Svbart@nginx.com<para>
8711792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
8721792Svbart@nginx.com</para>
8731792Svbart@nginx.com</change>
8741792Svbart@nginx.com
8751792Svbart@nginx.com<change type="bugfix">
8761792Svbart@nginx.com<para>
8771792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
8781792Svbart@nginx.com</para>
8791792Svbart@nginx.com</change>
8801792Svbart@nginx.com
8811792Svbart@nginx.com<change type="bugfix">
8821792Svbart@nginx.com<para>
8831792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;