xref: /unit/docs/changes.xml (revision 2163)
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"
172129Szelenkov@nginx.com         ver="1.28.0" rev="1"
182129Szelenkov@nginx.com         date="" time=""
192135Sthresh@nginx.com         packager="Nginx Packaging &lt;nginx-packaging@f5.com&gt;">
202129Szelenkov@nginx.com
212129Szelenkov@nginx.com<change>
222129Szelenkov@nginx.com<para>
232129Szelenkov@nginx.comNGINX Unit updated to 1.28.0.
242129Szelenkov@nginx.com</para>
252129Szelenkov@nginx.com</change>
262129Szelenkov@nginx.com
272129Szelenkov@nginx.com</changes>
282129Szelenkov@nginx.com
292129Szelenkov@nginx.com
302129Szelenkov@nginx.com<changes apply="unit" ver="1.28.0" rev="1"
312129Szelenkov@nginx.com         date="" time=""
322135Sthresh@nginx.com         packager="Nginx Packaging &lt;nginx-packaging@f5.com&gt;">
332129Szelenkov@nginx.com
342133Sz.hong@f5.com<change type="feature">
352133Sz.hong@f5.com<para>
362161Salx.manpages@gmail.comsupporting UNIX sockets in address matching.
372161Salx.manpages@gmail.com</para>
382161Salx.manpages@gmail.com</change>
392161Salx.manpages@gmail.com
402161Salx.manpages@gmail.com<change type="feature">
412161Salx.manpages@gmail.com<para>
422133Sz.hong@f5.comforwarded header to replace client address and protocol.
432133Sz.hong@f5.com</para>
442133Sz.hong@f5.com</change>
452133Sz.hong@f5.com
462147Sz.hong@f5.com<change type="feature">
472147Sz.hong@f5.com<para>
482147Sz.hong@f5.comability to get dynamic variables.
492147Sz.hong@f5.com</para>
502147Sz.hong@f5.com</change>
512147Sz.hong@f5.com
522149Sz.hong@f5.com<change type="feature">
532149Sz.hong@f5.com<para>
542149Sz.hong@f5.commore http variables support.
552149Sz.hong@f5.com</para>
562149Sz.hong@f5.com</change>
572149Sz.hong@f5.com
582161Salx.manpages@gmail.com<change type="feature">
592161Salx.manpages@gmail.com<para>
602161Salx.manpages@gmail.comadded a new variable, $dollar, that translates to a literal "$" during
612162Salx.manpages@gmail.comvariable substitution.
622161Salx.manpages@gmail.com</para>
632161Salx.manpages@gmail.com</change>
642161Salx.manpages@gmail.com
652137Salx.manpages@gmail.com<change type="bugfix">
662137Salx.manpages@gmail.com<para>
672137Salx.manpages@gmail.coman index file that didn't contain a file extension was incorrectly
682137Salx.manpages@gmail.comhandled, and caused a use-after-free bug.
692137Salx.manpages@gmail.com</para>
702137Salx.manpages@gmail.com</change>
712137Salx.manpages@gmail.com
722145Stippexs91@googlemail.com<change type="change">
732145Stippexs91@googlemail.com<para>
742145Stippexs91@googlemail.comincreased the applications' startup timeout.
752145Stippexs91@googlemail.com</para>
762145Stippexs91@googlemail.com</change>
772145Stippexs91@googlemail.com
78*2163Salx.manpages@gmail.com<change type="bugfix">
79*2163Salx.manpages@gmail.com<para>
80*2163Salx.manpages@gmail.comforce SCRIPT_NAME in Ruby to always be an empty string.
81*2163Salx.manpages@gmail.com</para>
82*2163Salx.manpages@gmail.com</change>
83*2163Salx.manpages@gmail.com
842129Szelenkov@nginx.com</changes>
852129Szelenkov@nginx.com
862129Szelenkov@nginx.com
872129Szelenkov@nginx.com<changes apply="unit-php
882129Szelenkov@nginx.com                unit-python unit-python2.7
892129Szelenkov@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
902129Szelenkov@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
912129Szelenkov@nginx.com                unit-go
922129Szelenkov@nginx.com                unit-perl
932129Szelenkov@nginx.com                unit-ruby
942129Szelenkov@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
952129Szelenkov@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
962012Svbart@nginx.com         ver="1.27.0" rev="1"
972127Szelenkov@nginx.com         date="2022-06-02" time="18:00:00 +0300"
982012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
992012Svbart@nginx.com
1002012Svbart@nginx.com<change>
1012012Svbart@nginx.com<para>
1022012Svbart@nginx.comNGINX Unit updated to 1.27.0.
1032012Svbart@nginx.com</para>
1042012Svbart@nginx.com</change>
1052012Svbart@nginx.com
1062012Svbart@nginx.com</changes>
1072012Svbart@nginx.com
1082012Svbart@nginx.com
1092012Svbart@nginx.com<changes apply="unit" ver="1.27.0" rev="1"
1102127Szelenkov@nginx.com         date="2022-06-02" time="18:00:00 +0300"
1112012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1122012Svbart@nginx.com
1132072Sz.hong@f5.com<change type="feature">
1142072Sz.hong@f5.com<para>
1152108Salx.manpages@gmail.comability to specify a custom index file name when serving static files.
1162108Salx.manpages@gmail.com</para>
1172108Salx.manpages@gmail.com</change>
1182108Salx.manpages@gmail.com
1192108Salx.manpages@gmail.com<change type="feature">
1202108Salx.manpages@gmail.com<para>
1212081Salx.manpages@gmail.comvariables support in the "location" option of the "return" action.
1222081Salx.manpages@gmail.com</para>
1232081Salx.manpages@gmail.com</change>
1242081Salx.manpages@gmail.com
1252081Salx.manpages@gmail.com<change type="feature">
1262081Salx.manpages@gmail.com<para>
1272113Sartem.konev@nginx.comsupport empty strings in the "location" option of the "return" action.
1282113Sartem.konev@nginx.com</para>
1292113Sartem.konev@nginx.com</change>
1302113Sartem.konev@nginx.com
1312113Sartem.konev@nginx.com<change type="feature">
1322113Sartem.konev@nginx.com<para>
1332113Sartem.konev@nginx.comadded a new variable, $request_uri, that includes both the path and the query
1342113Sartem.konev@nginx.comparts as per RFC 3986, sections 3-4.
1352113Sartem.konev@nginx.com</para>
1362113Sartem.konev@nginx.com</change>
1372113Sartem.konev@nginx.com
1382113Sartem.konev@nginx.com<change type="feature">
1392113Sartem.konev@nginx.com<para>
1402113Sartem.konev@nginx.comRuby Rack environment parameter "SCRIPT_NAME" support.
1412110Salx.manpages@gmail.com</para>
1422110Salx.manpages@gmail.com</change>
1432110Salx.manpages@gmail.com
1442110Salx.manpages@gmail.com<change type="feature">
1452110Salx.manpages@gmail.com<para>
1462072Sz.hong@f5.comcompatibility with GCC 12.
1472072Sz.hong@f5.com</para>
1482072Sz.hong@f5.com</change>
1492072Sz.hong@f5.com
1502060Smax.romanov@nginx.com<change type="bugfix">
1512060Smax.romanov@nginx.com<para>
1522093Sz.hong@f5.comRuby Sinatra applications don't work without custom logging.
1532093Sz.hong@f5.com</para>
1542093Sz.hong@f5.com</change>
1552093Sz.hong@f5.com
1562093Sz.hong@f5.com<change type="bugfix">
1572093Sz.hong@f5.com<para>
1582113Sartem.konev@nginx.comthe controller process could crash when a chain of more than four
1592069Sz.hong@f5.comcertificates was uploaded.
1602069Sz.hong@f5.com</para>
1612069Sz.hong@f5.com</change>
1622069Sz.hong@f5.com
1632069Sz.hong@f5.com<change type="bugfix">
1642069Sz.hong@f5.com<para>
1652060Smax.romanov@nginx.comsome Perl applications failed to process the request body, notably with Plack.
1662060Smax.romanov@nginx.com</para>
1672060Smax.romanov@nginx.com</change>
1682060Smax.romanov@nginx.com
1692061Smax.romanov@nginx.com<change type="bugfix">
1702061Smax.romanov@nginx.com<para>
1712061Smax.romanov@nginx.comsome Spring Boot applications failed to start, notably with Grails.
1722061Smax.romanov@nginx.com</para>
1732061Smax.romanov@nginx.com</change>
1742061Smax.romanov@nginx.com
1752067Smax.romanov@nginx.com<change type="bugfix">
1762067Smax.romanov@nginx.com<para>
1772067Smax.romanov@nginx.comincorrect Python protocol auto detection (ASGI or WSGI) for native callable
1782067Smax.romanov@nginx.comobject, notably with Falcon.
1792067Smax.romanov@nginx.com</para>
1802067Smax.romanov@nginx.com</change>
1812067Smax.romanov@nginx.com
1822117Szelenkov@nginx.com<change type="bugfix">
1832117Szelenkov@nginx.com<para>
1842117Szelenkov@nginx.comECMAScript modules did not work with the recent Node.js versions.
1852117Szelenkov@nginx.com</para>
1862117Szelenkov@nginx.com</change>
1872117Szelenkov@nginx.com
1882050Svbart@nginx.com</changes>
1892050Svbart@nginx.com
1902050Svbart@nginx.com
1912050Svbart@nginx.com<changes apply="unit-php
1922050Svbart@nginx.com                unit-python unit-python2.7
1932050Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1942050Svbart@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
1952050Svbart@nginx.com                unit-go
1962050Svbart@nginx.com                unit-perl
1972050Svbart@nginx.com                unit-ruby
1982050Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1992050Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
2002029SN/A         ver="1.26.1" rev="1"
2012045SN/A         date="2021-12-02" time="18:00:00 +0300"
2022029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2032029SN/A
2042029SN/A<change>
2052029SN/A<para>
2062029SN/ANGINX Unit updated to 1.26.1.
2072029SN/A</para>
2082029SN/A</change>
2092029SN/A
2102029SN/A</changes>
2112029SN/A
2122029SN/A
2132029SN/A<changes apply="unit" ver="1.26.1" rev="1"
2142045SN/A         date="2021-12-02" time="18:00:00 +0300"
2152029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2162029SN/A
2172033SN/A<change type="bugfix">
2182033SN/A<para>
2192044SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had
2202044SN/Aappeared in 1.26.0.
2212033SN/A</para>
2222033SN/A</change>
2232033SN/A
2242034SN/A<change type="bugfix">
2252034SN/A<para>
2262044SN/Aa prototype process could crash on an application process exit; the bug had
2272034SN/Aappeared in 1.26.0.
2282034SN/A</para>
2292034SN/A</change>
2302034SN/A
2312035SN/A<change type="bugfix">
2322035SN/A<para>
2332044SN/Athe router process crashed on reconfiguration if "access_log" was configured
2342044SN/Awithout listeners.
2352044SN/A</para>
2362044SN/A</change>
2372044SN/A
2382044SN/A<change type="bugfix">
2392044SN/A<para>
2402035SN/Aa segmentation fault occurred in the PHP module if chdir() or
2412035SN/Afastcgi_finish_request() was called in the OPcache preloading script.
2422035SN/A</para>
2432035SN/A</change>
2442035SN/A
2452040SN/A<change type="bugfix">
2462040SN/A<para>
2472041SN/Afatal errors on DragonFly BSD; the bug had appeared in 1.26.0.
2482041SN/A</para>
2492041SN/A</change>
2502041SN/A
2512029SN/A</changes>
2522029SN/A
2532029SN/A
2541973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1"
2552007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2561973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2571973Sdefan@nginx.com
2581973Sdefan@nginx.com<change>
2591973Sdefan@nginx.com<para>
2601973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit.
2611973Sdefan@nginx.com</para>
2621973Sdefan@nginx.com</change>
2631973Sdefan@nginx.com
2641973Sdefan@nginx.com</changes>
2651973Sdefan@nginx.com
2661973Sdefan@nginx.com
2671973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1"
2682007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2691973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2701973Sdefan@nginx.com
2711973Sdefan@nginx.com<change>
2721973Sdefan@nginx.com<para>
2731973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit.
2741973Sdefan@nginx.com</para>
2751973Sdefan@nginx.com</change>
2761973Sdefan@nginx.com
2771973Sdefan@nginx.com</changes>
2781973Sdefan@nginx.com
2791973Sdefan@nginx.com
2801896Svbart@nginx.com<changes apply="unit-php
2811896Svbart@nginx.com                unit-python unit-python2.7
2821896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2831896Svbart@nginx.com                unit-python3.8 unit-python3.9
2841896Svbart@nginx.com                unit-go
2851896Svbart@nginx.com                unit-perl
2861896Svbart@nginx.com                unit-ruby
2871896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2881896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
2891951Svbart@nginx.com         ver="1.26.0" rev="1"
2902007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2911951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2921951Svbart@nginx.com
2931951Svbart@nginx.com<change>
2941951Svbart@nginx.com<para>
2951951Svbart@nginx.comNGINX Unit updated to 1.26.0.
2961951Svbart@nginx.com</para>
2971951Svbart@nginx.com</change>
2981951Svbart@nginx.com
2991951Svbart@nginx.com</changes>
3001951Svbart@nginx.com
3011951Svbart@nginx.com
3021951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
3032007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
3041951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3051951Svbart@nginx.com
3061960Sz.hong@f5.com<change type="change">
3071960Sz.hong@f5.com<para>
3081960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
3091960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
3101960Sz.hong@f5.com</para>
3111960Sz.hong@f5.com</change>
3121960Sz.hong@f5.com
3131960Sz.hong@f5.com<change type="feature">
3141960Sz.hong@f5.com<para>
3152006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior
3162006Svbart@nginx.comwhen updating from previous versions.
3172006Svbart@nginx.com</para>
3182006Svbart@nginx.com</change>
3192006Svbart@nginx.com
3202006Svbart@nginx.com<change type="feature">
3212006Svbart@nginx.com<para>
3221960Sz.hong@f5.comvariables support in the "share" option.
3231960Sz.hong@f5.com</para>
3241960Sz.hong@f5.com</change>
3251960Sz.hong@f5.com
3261959Sz.hong@f5.com<change type="feature">
3271959Sz.hong@f5.com<para>
3281961Sz.hong@f5.commultiple paths in the "share" option.
3291961Sz.hong@f5.com</para>
3301961Sz.hong@f5.com</change>
3311961Sz.hong@f5.com
3321961Sz.hong@f5.com<change type="feature">
3331961Sz.hong@f5.com<para>
3341959Sz.hong@f5.comvariables support in the "chroot" option.
3351959Sz.hong@f5.com</para>
3361959Sz.hong@f5.com</change>
3371959Sz.hong@f5.com
3381969Sz.hong@f5.com<change type="feature">
3391969Sz.hong@f5.com<para>
3402006Svbart@nginx.comPHP opcache is shared between application processes.
3411969Sz.hong@f5.com</para>
3421969Sz.hong@f5.com</change>
3431969Sz.hong@f5.com
3441991Sz.hong@f5.com<change type="feature">
3451991Sz.hong@f5.com<para>
3461991Sz.hong@f5.comrequest routing by the query string.
3471991Sz.hong@f5.com</para>
3481991Sz.hong@f5.com</change>
3491991Sz.hong@f5.com
3501955Smax.romanov@nginx.com<change type="bugfix">
3511955Smax.romanov@nginx.com<para>
3522006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached
3532006Svbart@nginx.comby asynchronous or multithreaded apps.
3541955Smax.romanov@nginx.com</para>
3551955Smax.romanov@nginx.com</change>
3561955Smax.romanov@nginx.com
3571956Smax.romanov@nginx.com<change type="bugfix">
3581956Smax.romanov@nginx.com<para>
3591956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
3601956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
3611956Smax.romanov@nginx.com</para>
3621956Smax.romanov@nginx.com</change>
3631956Smax.romanov@nginx.com
3641992Smax.romanov@nginx.com<change type="bugfix">
3651992Smax.romanov@nginx.com<para>
3662006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35.
3671992Smax.romanov@nginx.com</para>
3681992Smax.romanov@nginx.com</change>
3691992Smax.romanov@nginx.com
3701951Svbart@nginx.com</changes>
3711951Svbart@nginx.com
3721951Svbart@nginx.com
3731951Svbart@nginx.com<changes apply="unit-php
3741951Svbart@nginx.com                unit-python unit-python2.7
3751951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3761951Svbart@nginx.com                unit-python3.8 unit-python3.9
3771951Svbart@nginx.com                unit-go
3781951Svbart@nginx.com                unit-perl
3791951Svbart@nginx.com                unit-ruby
3801951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3811951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
3821896Svbart@nginx.com         ver="1.25.0" rev="1"
3831945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
3841896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3851896Svbart@nginx.com
3861896Svbart@nginx.com<change>
3871896Svbart@nginx.com<para>
3881896Svbart@nginx.comNGINX Unit updated to 1.25.0.
3891896Svbart@nginx.com</para>
3901896Svbart@nginx.com</change>
3911896Svbart@nginx.com
3921896Svbart@nginx.com</changes>
3931896Svbart@nginx.com
3941896Svbart@nginx.com
3951896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
3961945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
3971896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3981896Svbart@nginx.com
3991910So.canty@f5.com<change type="feature">
4001910So.canty@f5.com<para>
4011944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
4021942Sa.suvorov@f5.com</para>
4031942Sa.suvorov@f5.com</change>
4041942Sa.suvorov@f5.com
4051942Sa.suvorov@f5.com<change type="feature">
4061942Sa.suvorov@f5.com<para>
4071920Sa.suvorov@f5.comTLS sessions cache.
4081920Sa.suvorov@f5.com</para>
4091920Sa.suvorov@f5.com</change>
4101920Sa.suvorov@f5.com
4111920Sa.suvorov@f5.com<change type="feature">
4121920Sa.suvorov@f5.com<para>
4131944Svbart@nginx.comTLS session tickets.
4141910So.canty@f5.com</para>
4151910So.canty@f5.com</change>
4161910So.canty@f5.com
4171926Smax.romanov@nginx.com<change type="feature">
4181926Smax.romanov@nginx.com<para>
4191926Smax.romanov@nginx.comapplication restart control.
4201926Smax.romanov@nginx.com</para>
4211926Smax.romanov@nginx.com</change>
4221926Smax.romanov@nginx.com
4231936So.canty@f5.com<change type="feature">
4241936So.canty@f5.com<para>
4251944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
4261936So.canty@f5.com</para>
4271936So.canty@f5.com</change>
4281936So.canty@f5.com
4291907Smax.romanov@nginx.com<change type="bugfix">
4301907Smax.romanov@nginx.com<para>
4311944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
4321944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
4331921Sa.suvorov@f5.com</para>
4341921Sa.suvorov@f5.com</change>
4351921Sa.suvorov@f5.com
4361921Sa.suvorov@f5.com<change type="bugfix">
4371921Sa.suvorov@f5.com<para>
4381944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
4391944Svbart@nginx.combundles in a listener if the client did not use SNI.
4401907Smax.romanov@nginx.com</para>
4411907Smax.romanov@nginx.com</change>
4421907Smax.romanov@nginx.com
4431907Smax.romanov@nginx.com<change type="bugfix">
4441907Smax.romanov@nginx.com<para>
4451950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
4461915Smax.romanov@nginx.comreconfiguration.
4471915Smax.romanov@nginx.com</para>
4481915Smax.romanov@nginx.com</change>
4491915Smax.romanov@nginx.com
4501915Smax.romanov@nginx.com<change type="bugfix">
4511915Smax.romanov@nginx.com<para>
4521944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
4531944Svbart@nginx.comframework.
4541944Svbart@nginx.com</para>
4551944Svbart@nginx.com</change>
4561944Svbart@nginx.com
4571944Svbart@nginx.com<change type="bugfix">
4581944Svbart@nginx.com<para>
4591944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
4601944Svbart@nginx.comstopped or crashed.
4611907Smax.romanov@nginx.com</para>
4621907Smax.romanov@nginx.com</change>
4631907Smax.romanov@nginx.com
4641909So.canty@f5.com<change type="bugfix">
4651909So.canty@f5.com<para>
4661909So.canty@f5.comthe controller or router process could crash if the configuration contained
4671909So.canty@f5.coma full-form IPv6 in a listener address.
4681909So.canty@f5.com</para>
4691909So.canty@f5.com</change>
4701909So.canty@f5.com
4711916Smax.romanov@nginx.com<change type="bugfix">
4721916Smax.romanov@nginx.com<para>
4731929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
4741929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
4751929Sz.hong@f5.com</para>
4761929Sz.hong@f5.com</change>
4771929Sz.hong@f5.com
4781930So.canty@f5.com<change type="bugfix">
4791930So.canty@f5.com<para>
4801944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
4811944Svbart@nginx.comor destination address patterns.
4821930So.canty@f5.com</para>
4831930So.canty@f5.com</change>
4841930So.canty@f5.com
4851896Svbart@nginx.com</changes>
4861896Svbart@nginx.com
4871896Svbart@nginx.com
4881887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
4891891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4901887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4911887Sdefan@nginx.com
4921887Sdefan@nginx.com<change>
4931887Sdefan@nginx.com<para>
4941887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
4951887Sdefan@nginx.com</para>
4961887Sdefan@nginx.com</change>
4971887Sdefan@nginx.com
4981887Sdefan@nginx.com</changes>
4991887Sdefan@nginx.com
5001887Sdefan@nginx.com
5011887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
5021891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
5031887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5041887Sdefan@nginx.com
5051887Sdefan@nginx.com<change>
5061887Sdefan@nginx.com<para>
5071887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
5081887Sdefan@nginx.com</para>
5091887Sdefan@nginx.com</change>
5101887Sdefan@nginx.com
5111887Sdefan@nginx.com</changes>
5121887Sdefan@nginx.com
5131887Sdefan@nginx.com
5141834Svbart@nginx.com<changes apply="unit-php
5151834Svbart@nginx.com                unit-python unit-python2.7
5161834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5171834Svbart@nginx.com                unit-python3.8 unit-python3.9
5181834Svbart@nginx.com                unit-go
5191834Svbart@nginx.com                unit-perl
5201834Svbart@nginx.com                unit-ruby
5211834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
5221834Svbart@nginx.com                unit-jsc14 unit-jsc15"
5231839Svbart@nginx.com         ver="1.24.0" rev="1"
5241891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
5251839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5261839Svbart@nginx.com
5271839Svbart@nginx.com<change>
5281839Svbart@nginx.com<para>
5291839Svbart@nginx.comNGINX Unit updated to 1.24.0.
5301839Svbart@nginx.com</para>
5311839Svbart@nginx.com</change>
5321839Svbart@nginx.com
5331839Svbart@nginx.com</changes>
5341839Svbart@nginx.com
5351839Svbart@nginx.com
5361839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
5371891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
5381839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5391839Svbart@nginx.com
5401882So.canty@f5.com<change type="change">
5411882So.canty@f5.com<para>
5421882So.canty@f5.comPHP added to the default MIME type list.
5431882So.canty@f5.com</para>
5441882So.canty@f5.com</change>
5451882So.canty@f5.com
5461855Sz.hong@f5.com<change type="feature">
5471855Sz.hong@f5.com<para>
5481885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
5491885Sa.suvorov@f5.com</para>
5501885Sa.suvorov@f5.com</change>
5511885Sa.suvorov@f5.com
5521885Sa.suvorov@f5.com<change type="feature">
5531885Sa.suvorov@f5.com<para>
5541890Svbart@nginx.comthe ability to limit static file serving by MIME types.
5551890Svbart@nginx.com</para>
5561890Svbart@nginx.com</change>
5571890Svbart@nginx.com
5581890Svbart@nginx.com<change type="feature">
5591890Svbart@nginx.com<para>
5601890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
5611890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
5621872So.canty@f5.com</para>
5631872So.canty@f5.com</change>
5641872So.canty@f5.com
5651872So.canty@f5.com<change type="feature">
5661872So.canty@f5.com<para>
5671889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
5681889Sartem.konev@nginx.comNode.js.
5691865So.canty@f5.com</para>
5701865So.canty@f5.com</change>
5711865So.canty@f5.com
5721865So.canty@f5.com<change type="feature">
5731865So.canty@f5.com<para>
5741890Svbart@nginx.commultiple "targets" in Python applications.
5751855Sz.hong@f5.com</para>
5761855Sz.hong@f5.com</change>
5771855Sz.hong@f5.com
5781870So.canty@f5.com<change type="feature">
5791870So.canty@f5.com<para>
5801870So.canty@f5.comcompatibility with Ruby 3.0.
5811870So.canty@f5.com</para>
5821870So.canty@f5.com</change>
5831870So.canty@f5.com
5841861Svbart@nginx.com<change type="bugfix">
5851861Svbart@nginx.com<para>
5861889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
5871884Sa.suvorov@f5.com</para>
5881884Sa.suvorov@f5.com</change>
5891884Sa.suvorov@f5.com
5901884Sa.suvorov@f5.com<change type="bugfix">
5911884Sa.suvorov@f5.com<para>
5921861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
5931861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
5941861Svbart@nginx.com</para>
5951861Svbart@nginx.com</change>
5961861Svbart@nginx.com
5971839Svbart@nginx.com</changes>
5981839Svbart@nginx.com
5991839Svbart@nginx.com
6001839Svbart@nginx.com<changes apply="unit-php
6011839Svbart@nginx.com                unit-python unit-python2.7
6021839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6031839Svbart@nginx.com                unit-python3.8 unit-python3.9
6041839Svbart@nginx.com                unit-go
6051839Svbart@nginx.com                unit-perl
6061839Svbart@nginx.com                unit-ruby
6071839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
6081839Svbart@nginx.com                unit-jsc14 unit-jsc15"
6091834Svbart@nginx.com         ver="1.23.0" rev="1"
6101834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
6111834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6121834Svbart@nginx.com
6131834Svbart@nginx.com<change>
6141834Svbart@nginx.com<para>
6151834Svbart@nginx.comNGINX Unit updated to 1.23.0.
6161834Svbart@nginx.com</para>
6171834Svbart@nginx.com</change>
6181834Svbart@nginx.com
6191834Svbart@nginx.com</changes>
6201834Svbart@nginx.com
6211834Svbart@nginx.com
6221806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
6231834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
6241806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6251806Svbart@nginx.com
6261825Sthresh@nginx.com<change type="feature">
6271825Sthresh@nginx.com<para>
6281833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
6291828Sa.suvorov@f5.comIndication (SNI) TLS extension.
6301828Sa.suvorov@f5.com</para>
6311828Sa.suvorov@f5.com</change>
6321828Sa.suvorov@f5.com
6331828Sa.suvorov@f5.com<change type="feature">
6341828Sa.suvorov@f5.com<para>
6351833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
6361833Sartem.konev@nginx.cominstallation.
6371825Sthresh@nginx.com</para>
6381825Sthresh@nginx.com</change>
6391825Sthresh@nginx.com
6401811Smax.romanov@nginx.com<change type="bugfix">
6411811Smax.romanov@nginx.com<para>
6421812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
6431812Svbart@nginx.comappeared in 1.17.0.
6441812Svbart@nginx.com</para>
6451812Svbart@nginx.com</change>
6461812Svbart@nginx.com
6471812Svbart@nginx.com<change type="bugfix">
6481812Svbart@nginx.com<para>
6491833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
6501812Svbart@nginx.comappeared in 1.6.
6511812Svbart@nginx.com</para>
6521812Svbart@nginx.com</change>
6531812Svbart@nginx.com
6541812Svbart@nginx.com<change type="bugfix">
6551812Svbart@nginx.com<para>
6561833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
6571832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
6581832Smax.romanov@nginx.com</para>
6591832Smax.romanov@nginx.com</change>
6601832Smax.romanov@nginx.com
6611832Smax.romanov@nginx.com<change type="bugfix">
6621832Smax.romanov@nginx.com<para>
6631833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
6641811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
6651811Smax.romanov@nginx.com</para>
6661811Smax.romanov@nginx.com</change>
6671806Svbart@nginx.com
6681813Svbart@nginx.com<change type="bugfix">
6691813Svbart@nginx.com<para>
6701813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
6711813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
6721813Svbart@nginx.com</para>
6731813Svbart@nginx.com</change>
6741813Svbart@nginx.com
6751814Svbart@nginx.com<change type="bugfix">
6761814Svbart@nginx.com<para>
6771820Svbart@nginx.comthe controller process could crash while requesting information about a
6781820Svbart@nginx.comcertificate with a non-DNS SAN entry.
6791820Svbart@nginx.com</para>
6801820Svbart@nginx.com</change>
6811820Svbart@nginx.com
6821820Svbart@nginx.com<change type="bugfix">
6831820Svbart@nginx.com<para>
6841822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
6851833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
6861822Svbart@nginx.com</para>
6871822Svbart@nginx.com</change>
6881822Svbart@nginx.com
6891822Svbart@nginx.com<change type="bugfix">
6901822Svbart@nginx.com<para>
6911833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
6921833Sartem.konev@nginx.comclass.
6931814Svbart@nginx.com</para>
6941814Svbart@nginx.com</change>
6951814Svbart@nginx.com
6961815Svbart@nginx.com<change type="bugfix">
6971815Svbart@nginx.com<para>
6981815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
6991815Svbart@nginx.comappeared in 1.22.0.
7001815Svbart@nginx.com</para>
7011815Svbart@nginx.com</change>
7021815Svbart@nginx.com
7031806Svbart@nginx.com</changes>
7041806Svbart@nginx.com
7051806Svbart@nginx.com
7061798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
7071798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
7081798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7091798Sdefan@nginx.com
7101798Sdefan@nginx.com<change>
7111798Sdefan@nginx.com<para>
7121798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
7131798Sdefan@nginx.com</para>
7141798Sdefan@nginx.com</change>
7151798Sdefan@nginx.com
7161798Sdefan@nginx.com</changes>
7171798Sdefan@nginx.com
7181798Sdefan@nginx.com
7191763Sdefan@nginx.com<changes apply="unit-php
7201763Sdefan@nginx.com                unit-python unit-python2.7
7211763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7221763Sdefan@nginx.com                unit-python3.8
7231763Sdefan@nginx.com                unit-go
7241763Sdefan@nginx.com                unit-perl
7251763Sdefan@nginx.com                unit-ruby
7261763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
7271763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
7281763Sdefan@nginx.com         ver="1.22.0" rev="1"
7291793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
7301763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7311763Sdefan@nginx.com
7321763Sdefan@nginx.com<change>
7331763Sdefan@nginx.com<para>
7341763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
7351763Sdefan@nginx.com</para>
7361763Sdefan@nginx.com</change>
7371763Sdefan@nginx.com
7381763Sdefan@nginx.com</changes>
7391763Sdefan@nginx.com
7401763Sdefan@nginx.com
7411727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
7421793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
7431727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7441727Svbart@nginx.com
7451759Svbart@nginx.com<change type="feature">
7461759Svbart@nginx.com<para>
7471792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
7481792Svbart@nginx.comcompliant with Stream API.
7491759Svbart@nginx.com</para>
7501759Svbart@nginx.com</change>
7511759Svbart@nginx.com
7521766Smax.romanov@nginx.com<change type="feature">
7531766Smax.romanov@nginx.com<para>
7541792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
7551792Svbart@nginx.comapps.
7561732Svbart@nginx.com</para>
7571732Svbart@nginx.com</change>
7581732Svbart@nginx.com
7591733Svbart@nginx.com<change type="bugfix">
7601733Svbart@nginx.com<para>
7611792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
7621792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
7631754Smax.romanov@nginx.com</para>
7641754Smax.romanov@nginx.com</change>
7651754Smax.romanov@nginx.com
7661755Smax.romanov@nginx.com<change type="bugfix">
7671755Smax.romanov@nginx.com<para>
7681790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
7691755Smax.romanov@nginx.comappeared in 1.19.0.
7701755Smax.romanov@nginx.com</para>
7711755Smax.romanov@nginx.com</change>
7721755Smax.romanov@nginx.com
7731756Smax.romanov@nginx.com<change type="bugfix">
7741756Smax.romanov@nginx.com<para>
7751790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
7761790Sartem.konev@nginx.comappeared in 1.19.0.
7771756Smax.romanov@nginx.com</para>
7781756Smax.romanov@nginx.com</change>
7791756Smax.romanov@nginx.com
7801760Smax.romanov@nginx.com<change type="bugfix">
7811760Smax.romanov@nginx.com<para>
7821792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
7831792Svbart@nginx.com</para>
7841792Svbart@nginx.com</change>
7851792Svbart@nginx.com
7861792Svbart@nginx.com<change type="bugfix">
7871792Svbart@nginx.com<para>
7881792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
7891792Svbart@nginx.commissing in the PHP module.
7901792Svbart@nginx.com</para>
7911792Svbart@nginx.com</change>
7921792Svbart@nginx.com
7931792Svbart@nginx.com<change type="bugfix">
7941792Svbart@nginx.com<para>
7951792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
7961792Svbart@nginx.com</para>
7971792Svbart@nginx.com</change>
7981792Svbart@nginx.com
7991792Svbart@nginx.com<change type="bugfix">
8001792Svbart@nginx.com<para>
8011792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
8021792Svbart@nginx.com</para>
8031792Svbart@nginx.com</change>
8041792Svbart@nginx.com
8051792Svbart@nginx.com<change type="bugfix">
8061792Svbart@nginx.com<para>
8071792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
8081792Svbart@nginx.comthe bug had appeared in 1.21.0.
8091760Smax.romanov@nginx.com</para>
8101760Smax.romanov@nginx.com</change>
8111760Smax.romanov@nginx.com
8121780Smax.romanov@nginx.com<change type="bugfix">
8131780Smax.romanov@nginx.com<para>
8141790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
8151790Sartem.konev@nginx.comWebSocket.
8161780Smax.romanov@nginx.com</para>
8171780Smax.romanov@nginx.com</change>
8181780Smax.romanov@nginx.com
8191789Smax.romanov@nginx.com<change type="bugfix">
8201789Smax.romanov@nginx.com<para>
8211789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
8221789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
8231789Smax.romanov@nginx.com</para>
8241789Smax.romanov@nginx.com</change>
8251789Smax.romanov@nginx.com
8261727Svbart@nginx.com</changes>
8271727Svbart@nginx.com
8281727Svbart@nginx.com
8291722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
8301722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
8311722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8321722Svbart@nginx.com
8331722Svbart@nginx.com<change>
8341722Svbart@nginx.com<para>
8351722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
8361722Svbart@nginx.com</para>
8371722Svbart@nginx.com</change>
8381722Svbart@nginx.com
8391722Svbart@nginx.com</changes>
8401722Svbart@nginx.com
8411722Svbart@nginx.com
8421722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
8431722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
8441722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8451722Svbart@nginx.com
8461722Svbart@nginx.com<change>
8471722Svbart@nginx.com<para>
8481722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
8491722Svbart@nginx.com</para>
8501722Svbart@nginx.com</change>
8511722Svbart@nginx.com
8521722Svbart@nginx.com</changes>
8531722Svbart@nginx.com
8541722Svbart@nginx.com
8551722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
8561722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
8571722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8581722Svbart@nginx.com
8591722Svbart@nginx.com<change>
8601722Svbart@nginx.com<para>
8611722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
8621722Svbart@nginx.com</para>
8631722Svbart@nginx.com</change>
8641722Svbart@nginx.com
8651722Svbart@nginx.com</changes>
8661722Svbart@nginx.com
8671722Svbart@nginx.com
8681722Svbart@nginx.com<changes apply="unit-php
8691722Svbart@nginx.com                unit-python unit-python2.7
8701722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8711722Svbart@nginx.com                unit-python3.8
8721722Svbart@nginx.com                unit-go
8731722Svbart@nginx.com                unit-perl
8741722Svbart@nginx.com                unit-ruby
8751722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8761722Svbart@nginx.com         ver="1.21.0" rev="1"
8771722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
8781722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8791722Svbart@nginx.com
8801722Svbart@nginx.com<change>
8811722Svbart@nginx.com<para>
8821722Svbart@nginx.comNGINX Unit updated to 1.21.0.
8831722Svbart@nginx.com</para>
8841722Svbart@nginx.com</change>
8851722Svbart@nginx.com
8861722Svbart@nginx.com</changes>
8871722Svbart@nginx.com
8881722Svbart@nginx.com
8891722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
8901722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
8911722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8921722Svbart@nginx.com
8931722Svbart@nginx.com<change type="change">
8941722Svbart@nginx.com<para>
8951722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
8961722Svbart@nginx.com</para>
8971722Svbart@nginx.com</change>
8981722Svbart@nginx.com
8991722Svbart@nginx.com<change type="change">
9001722Svbart@nginx.com<para>
9011722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
9021722Svbart@nginx.comnames.
9031722Svbart@nginx.com</para>
9041722Svbart@nginx.com</change>
9051722Svbart@nginx.com
9061722Svbart@nginx.com<change type="change">
9071722Svbart@nginx.com<para>
9081722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
9091722Svbart@nginx.comdefault.
9101722Svbart@nginx.com</para>
9111722Svbart@nginx.com</change>
9121722Svbart@nginx.com
9131722Svbart@nginx.com<change type="feature">
9141722Svbart@nginx.com<para>
9151722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
9161722Svbart@nginx.com</para>
9171722Svbart@nginx.com</change>
9181722Svbart@nginx.com
9191722Svbart@nginx.com<change type="feature">
9201722Svbart@nginx.com<para>
9211722Svbart@nginx.comregular expressions in route matching patterns.
9221722Svbart@nginx.com</para>
9231722Svbart@nginx.com</change>
9241722Svbart@nginx.com
9251722Svbart@nginx.com<change type="feature">
9261722Svbart@nginx.com<para>
9271722Svbart@nginx.comcompatibility with Python 3.9.
9281722Svbart@nginx.com</para>
9291722Svbart@nginx.com</change>
9301722Svbart@nginx.com
9311722Svbart@nginx.com<change type="feature">
9321722Svbart@nginx.com<para>
9331722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
9341722Svbart@nginx.com</para>
9351722Svbart@nginx.com</change>
9361722Svbart@nginx.com
9371722Svbart@nginx.com<change type="feature">
9381722Svbart@nginx.com<para>
9391722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
9401722Svbart@nginx.com</para>
9411722Svbart@nginx.com</change>
9421722Svbart@nginx.com
9431722Svbart@nginx.com<change type="feature">
9441722Svbart@nginx.com<para>
9451722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
9461722Svbart@nginx.comcontinues code execution without holding onto the client connection.
9471722Svbart@nginx.com</para>
9481722Svbart@nginx.com</change>
9491722Svbart@nginx.com
9501722Svbart@nginx.com<change type="feature">
9511722Svbart@nginx.com<para>
9521722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
9531722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
9541722Svbart@nginx.com</para>
9551722Svbart@nginx.com</change>
9561722Svbart@nginx.com
9571722Svbart@nginx.com<change type="feature">
9581722Svbart@nginx.com<para>
9591722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
9601722Svbart@nginx.commounting of eponymous filesystems.
9611722S