xref: /unit/docs/changes.xml (revision 2108)
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
342087Sz.hong@f5.com<change type="change">
352087Sz.hong@f5.com<para>
362087Sz.hong@f5.comRuby Rack environment parameter "SCRIPT_NAME" support.
372087Sz.hong@f5.com</para>
382087Sz.hong@f5.com</change>
392087Sz.hong@f5.com
402098Salx.manpages@gmail.com<change type="change">
412098Salx.manpages@gmail.com<para>
422098Salx.manpages@gmail.comsupporting empty strings in the "location" option of the "return" action.
432098Salx.manpages@gmail.com</para>
442098Salx.manpages@gmail.com</change>
452098Salx.manpages@gmail.com
462072Sz.hong@f5.com<change type="feature">
472072Sz.hong@f5.com<para>
48*2108Salx.manpages@gmail.comability to specify a custom index file name when serving static files.
49*2108Salx.manpages@gmail.com</para>
50*2108Salx.manpages@gmail.com</change>
51*2108Salx.manpages@gmail.com
52*2108Salx.manpages@gmail.com<change type="feature">
53*2108Salx.manpages@gmail.com<para>
542081Salx.manpages@gmail.comvariables support in the "location" option of the "return" action.
552081Salx.manpages@gmail.com</para>
562081Salx.manpages@gmail.com</change>
572081Salx.manpages@gmail.com
582081Salx.manpages@gmail.com<change type="feature">
592081Salx.manpages@gmail.com<para>
602072Sz.hong@f5.comcompatibility with GCC 12.
612072Sz.hong@f5.com</para>
622072Sz.hong@f5.com</change>
632072Sz.hong@f5.com
642060Smax.romanov@nginx.com<change type="bugfix">
652060Smax.romanov@nginx.com<para>
662093Sz.hong@f5.comRuby Sinatra applications don't work without custom logging.
672093Sz.hong@f5.com</para>
682093Sz.hong@f5.com</change>
692093Sz.hong@f5.com
702093Sz.hong@f5.com<change type="bugfix">
712093Sz.hong@f5.com<para>
722069Sz.hong@f5.comthe controller process could crash when a chain with more than 4
732069Sz.hong@f5.comcertificates was uploaded.
742069Sz.hong@f5.com</para>
752069Sz.hong@f5.com</change>
762069Sz.hong@f5.com
772069Sz.hong@f5.com<change type="bugfix">
782069Sz.hong@f5.com<para>
792060Smax.romanov@nginx.comsome Perl applications failed to process the request body, notably with Plack.
802060Smax.romanov@nginx.com</para>
812060Smax.romanov@nginx.com</change>
822060Smax.romanov@nginx.com
832061Smax.romanov@nginx.com<change type="bugfix">
842061Smax.romanov@nginx.com<para>
852061Smax.romanov@nginx.comsome Spring Boot applications failed to start, notably with Grails.
862061Smax.romanov@nginx.com</para>
872061Smax.romanov@nginx.com</change>
882061Smax.romanov@nginx.com
892067Smax.romanov@nginx.com<change type="bugfix">
902067Smax.romanov@nginx.com<para>
912067Smax.romanov@nginx.comincorrect Python protocol auto detection (ASGI or WSGI) for native callable
922067Smax.romanov@nginx.comobject, notably with Falcon.
932067Smax.romanov@nginx.com</para>
942067Smax.romanov@nginx.com</change>
952067Smax.romanov@nginx.com
962050Svbart@nginx.com</changes>
972050Svbart@nginx.com
982050Svbart@nginx.com
992050Svbart@nginx.com<changes apply="unit-php
1002050Svbart@nginx.com                unit-python unit-python2.7
1012050Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1022050Svbart@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
1032050Svbart@nginx.com                unit-go
1042050Svbart@nginx.com                unit-perl
1052050Svbart@nginx.com                unit-ruby
1062050Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1072050Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
1082029SN/A         ver="1.26.1" rev="1"
1092045SN/A         date="2021-12-02" time="18:00:00 +0300"
1102029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1112029SN/A
1122029SN/A<change>
1132029SN/A<para>
1142029SN/ANGINX Unit updated to 1.26.1.
1152029SN/A</para>
1162029SN/A</change>
1172029SN/A
1182029SN/A</changes>
1192029SN/A
1202029SN/A
1212029SN/A<changes apply="unit" ver="1.26.1" rev="1"
1222045SN/A         date="2021-12-02" time="18:00:00 +0300"
1232029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1242029SN/A
1252033SN/A<change type="bugfix">
1262033SN/A<para>
1272044SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had
1282044SN/Aappeared in 1.26.0.
1292033SN/A</para>
1302033SN/A</change>
1312033SN/A
1322034SN/A<change type="bugfix">
1332034SN/A<para>
1342044SN/Aa prototype process could crash on an application process exit; the bug had
1352034SN/Aappeared in 1.26.0.
1362034SN/A</para>
1372034SN/A</change>
1382034SN/A
1392035SN/A<change type="bugfix">
1402035SN/A<para>
1412044SN/Athe router process crashed on reconfiguration if "access_log" was configured
1422044SN/Awithout listeners.
1432044SN/A</para>
1442044SN/A</change>
1452044SN/A
1462044SN/A<change type="bugfix">
1472044SN/A<para>
1482035SN/Aa segmentation fault occurred in the PHP module if chdir() or
1492035SN/Afastcgi_finish_request() was called in the OPcache preloading script.
1502035SN/A</para>
1512035SN/A</change>
1522035SN/A
1532040SN/A<change type="bugfix">
1542040SN/A<para>
1552041SN/Afatal errors on DragonFly BSD; the bug had appeared in 1.26.0.
1562041SN/A</para>
1572041SN/A</change>
1582041SN/A
1592029SN/A</changes>
1602029SN/A
1612029SN/A
1621973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1"
1632007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1641973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1651973Sdefan@nginx.com
1661973Sdefan@nginx.com<change>
1671973Sdefan@nginx.com<para>
1681973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit.
1691973Sdefan@nginx.com</para>
1701973Sdefan@nginx.com</change>
1711973Sdefan@nginx.com
1721973Sdefan@nginx.com</changes>
1731973Sdefan@nginx.com
1741973Sdefan@nginx.com
1751973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1"
1762007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1771973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1781973Sdefan@nginx.com
1791973Sdefan@nginx.com<change>
1801973Sdefan@nginx.com<para>
1811973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit.
1821973Sdefan@nginx.com</para>
1831973Sdefan@nginx.com</change>
1841973Sdefan@nginx.com
1851973Sdefan@nginx.com</changes>
1861973Sdefan@nginx.com
1871973Sdefan@nginx.com
1881896Svbart@nginx.com<changes apply="unit-php
1891896Svbart@nginx.com                unit-python unit-python2.7
1901896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1911896Svbart@nginx.com                unit-python3.8 unit-python3.9
1921896Svbart@nginx.com                unit-go
1931896Svbart@nginx.com                unit-perl
1941896Svbart@nginx.com                unit-ruby
1951896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1961896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
1971951Svbart@nginx.com         ver="1.26.0" rev="1"
1982007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1991951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2001951Svbart@nginx.com
2011951Svbart@nginx.com<change>
2021951Svbart@nginx.com<para>
2031951Svbart@nginx.comNGINX Unit updated to 1.26.0.
2041951Svbart@nginx.com</para>
2051951Svbart@nginx.com</change>
2061951Svbart@nginx.com
2071951Svbart@nginx.com</changes>
2081951Svbart@nginx.com
2091951Svbart@nginx.com
2101951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
2112007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2121951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2131951Svbart@nginx.com
2141960Sz.hong@f5.com<change type="change">
2151960Sz.hong@f5.com<para>
2161960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
2171960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
2181960Sz.hong@f5.com</para>
2191960Sz.hong@f5.com</change>
2201960Sz.hong@f5.com
2211960Sz.hong@f5.com<change type="feature">
2221960Sz.hong@f5.com<para>
2232006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior
2242006Svbart@nginx.comwhen updating from previous versions.
2252006Svbart@nginx.com</para>
2262006Svbart@nginx.com</change>
2272006Svbart@nginx.com
2282006Svbart@nginx.com<change type="feature">
2292006Svbart@nginx.com<para>
2301960Sz.hong@f5.comvariables support in the "share" option.
2311960Sz.hong@f5.com</para>
2321960Sz.hong@f5.com</change>
2331960Sz.hong@f5.com
2341959Sz.hong@f5.com<change type="feature">
2351959Sz.hong@f5.com<para>
2361961Sz.hong@f5.commultiple paths in the "share" option.
2371961Sz.hong@f5.com</para>
2381961Sz.hong@f5.com</change>
2391961Sz.hong@f5.com
2401961Sz.hong@f5.com<change type="feature">
2411961Sz.hong@f5.com<para>
2421959Sz.hong@f5.comvariables support in the "chroot" option.
2431959Sz.hong@f5.com</para>
2441959Sz.hong@f5.com</change>
2451959Sz.hong@f5.com
2461969Sz.hong@f5.com<change type="feature">
2471969Sz.hong@f5.com<para>
2482006Svbart@nginx.comPHP opcache is shared between application processes.
2491969Sz.hong@f5.com</para>
2501969Sz.hong@f5.com</change>
2511969Sz.hong@f5.com
2521991Sz.hong@f5.com<change type="feature">
2531991Sz.hong@f5.com<para>
2541991Sz.hong@f5.comrequest routing by the query string.
2551991Sz.hong@f5.com</para>
2561991Sz.hong@f5.com</change>
2571991Sz.hong@f5.com
2581955Smax.romanov@nginx.com<change type="bugfix">
2591955Smax.romanov@nginx.com<para>
2602006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached
2612006Svbart@nginx.comby asynchronous or multithreaded apps.
2621955Smax.romanov@nginx.com</para>
2631955Smax.romanov@nginx.com</change>
2641955Smax.romanov@nginx.com
2651956Smax.romanov@nginx.com<change type="bugfix">
2661956Smax.romanov@nginx.com<para>
2671956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
2681956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
2691956Smax.romanov@nginx.com</para>
2701956Smax.romanov@nginx.com</change>
2711956Smax.romanov@nginx.com
2721992Smax.romanov@nginx.com<change type="bugfix">
2731992Smax.romanov@nginx.com<para>
2742006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35.
2751992Smax.romanov@nginx.com</para>
2761992Smax.romanov@nginx.com</change>
2771992Smax.romanov@nginx.com
2781951Svbart@nginx.com</changes>
2791951Svbart@nginx.com
2801951Svbart@nginx.com
2811951Svbart@nginx.com<changes apply="unit-php
2821951Svbart@nginx.com                unit-python unit-python2.7
2831951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2841951Svbart@nginx.com                unit-python3.8 unit-python3.9
2851951Svbart@nginx.com                unit-go
2861951Svbart@nginx.com                unit-perl
2871951Svbart@nginx.com                unit-ruby
2881951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2891951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
2901896Svbart@nginx.com         ver="1.25.0" rev="1"
2911945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
2921896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2931896Svbart@nginx.com
2941896Svbart@nginx.com<change>
2951896Svbart@nginx.com<para>
2961896Svbart@nginx.comNGINX Unit updated to 1.25.0.
2971896Svbart@nginx.com</para>
2981896Svbart@nginx.com</change>
2991896Svbart@nginx.com
3001896Svbart@nginx.com</changes>
3011896Svbart@nginx.com
3021896Svbart@nginx.com
3031896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
3041945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
3051896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3061896Svbart@nginx.com
3071910So.canty@f5.com<change type="feature">
3081910So.canty@f5.com<para>
3091944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
3101942Sa.suvorov@f5.com</para>
3111942Sa.suvorov@f5.com</change>
3121942Sa.suvorov@f5.com
3131942Sa.suvorov@f5.com<change type="feature">
3141942Sa.suvorov@f5.com<para>
3151920Sa.suvorov@f5.comTLS sessions cache.
3161920Sa.suvorov@f5.com</para>
3171920Sa.suvorov@f5.com</change>
3181920Sa.suvorov@f5.com
3191920Sa.suvorov@f5.com<change type="feature">
3201920Sa.suvorov@f5.com<para>
3211944Svbart@nginx.comTLS session tickets.
3221910So.canty@f5.com</para>
3231910So.canty@f5.com</change>
3241910So.canty@f5.com
3251926Smax.romanov@nginx.com<change type="feature">
3261926Smax.romanov@nginx.com<para>
3271926Smax.romanov@nginx.comapplication restart control.
3281926Smax.romanov@nginx.com</para>
3291926Smax.romanov@nginx.com</change>
3301926Smax.romanov@nginx.com
3311936So.canty@f5.com<change type="feature">
3321936So.canty@f5.com<para>
3331944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
3341936So.canty@f5.com</para>
3351936So.canty@f5.com</change>
3361936So.canty@f5.com
3371907Smax.romanov@nginx.com<change type="bugfix">
3381907Smax.romanov@nginx.com<para>
3391944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
3401944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
3411921Sa.suvorov@f5.com</para>
3421921Sa.suvorov@f5.com</change>
3431921Sa.suvorov@f5.com
3441921Sa.suvorov@f5.com<change type="bugfix">
3451921Sa.suvorov@f5.com<para>
3461944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
3471944Svbart@nginx.combundles in a listener if the client did not use SNI.
3481907Smax.romanov@nginx.com</para>
3491907Smax.romanov@nginx.com</change>
3501907Smax.romanov@nginx.com
3511907Smax.romanov@nginx.com<change type="bugfix">
3521907Smax.romanov@nginx.com<para>
3531950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
3541915Smax.romanov@nginx.comreconfiguration.
3551915Smax.romanov@nginx.com</para>
3561915Smax.romanov@nginx.com</change>
3571915Smax.romanov@nginx.com
3581915Smax.romanov@nginx.com<change type="bugfix">
3591915Smax.romanov@nginx.com<para>
3601944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
3611944Svbart@nginx.comframework.
3621944Svbart@nginx.com</para>
3631944Svbart@nginx.com</change>
3641944Svbart@nginx.com
3651944Svbart@nginx.com<change type="bugfix">
3661944Svbart@nginx.com<para>
3671944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
3681944Svbart@nginx.comstopped or crashed.
3691907Smax.romanov@nginx.com</para>
3701907Smax.romanov@nginx.com</change>
3711907Smax.romanov@nginx.com
3721909So.canty@f5.com<change type="bugfix">
3731909So.canty@f5.com<para>
3741909So.canty@f5.comthe controller or router process could crash if the configuration contained
3751909So.canty@f5.coma full-form IPv6 in a listener address.
3761909So.canty@f5.com</para>
3771909So.canty@f5.com</change>
3781909So.canty@f5.com
3791916Smax.romanov@nginx.com<change type="bugfix">
3801916Smax.romanov@nginx.com<para>
3811929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
3821929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
3831929Sz.hong@f5.com</para>
3841929Sz.hong@f5.com</change>
3851929Sz.hong@f5.com
3861930So.canty@f5.com<change type="bugfix">
3871930So.canty@f5.com<para>
3881944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
3891944Svbart@nginx.comor destination address patterns.
3901930So.canty@f5.com</para>
3911930So.canty@f5.com</change>
3921930So.canty@f5.com
3931896Svbart@nginx.com</changes>
3941896Svbart@nginx.com
3951896Svbart@nginx.com
3961887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
3971891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3981887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3991887Sdefan@nginx.com
4001887Sdefan@nginx.com<change>
4011887Sdefan@nginx.com<para>
4021887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
4031887Sdefan@nginx.com</para>
4041887Sdefan@nginx.com</change>
4051887Sdefan@nginx.com
4061887Sdefan@nginx.com</changes>
4071887Sdefan@nginx.com
4081887Sdefan@nginx.com
4091887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
4101891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4111887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4121887Sdefan@nginx.com
4131887Sdefan@nginx.com<change>
4141887Sdefan@nginx.com<para>
4151887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
4161887Sdefan@nginx.com</para>
4171887Sdefan@nginx.com</change>
4181887Sdefan@nginx.com
4191887Sdefan@nginx.com</changes>
4201887Sdefan@nginx.com
4211887Sdefan@nginx.com
4221834Svbart@nginx.com<changes apply="unit-php
4231834Svbart@nginx.com                unit-python unit-python2.7
4241834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4251834Svbart@nginx.com                unit-python3.8 unit-python3.9
4261834Svbart@nginx.com                unit-go
4271834Svbart@nginx.com                unit-perl
4281834Svbart@nginx.com                unit-ruby
4291834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4301834Svbart@nginx.com                unit-jsc14 unit-jsc15"
4311839Svbart@nginx.com         ver="1.24.0" rev="1"
4321891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4331839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4341839Svbart@nginx.com
4351839Svbart@nginx.com<change>
4361839Svbart@nginx.com<para>
4371839Svbart@nginx.comNGINX Unit updated to 1.24.0.
4381839Svbart@nginx.com</para>
4391839Svbart@nginx.com</change>
4401839Svbart@nginx.com
4411839Svbart@nginx.com</changes>
4421839Svbart@nginx.com
4431839Svbart@nginx.com
4441839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
4451891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4461839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4471839Svbart@nginx.com
4481882So.canty@f5.com<change type="change">
4491882So.canty@f5.com<para>
4501882So.canty@f5.comPHP added to the default MIME type list.
4511882So.canty@f5.com</para>
4521882So.canty@f5.com</change>
4531882So.canty@f5.com
4541855Sz.hong@f5.com<change type="feature">
4551855Sz.hong@f5.com<para>
4561885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
4571885Sa.suvorov@f5.com</para>
4581885Sa.suvorov@f5.com</change>
4591885Sa.suvorov@f5.com
4601885Sa.suvorov@f5.com<change type="feature">
4611885Sa.suvorov@f5.com<para>
4621890Svbart@nginx.comthe ability to limit static file serving by MIME types.
4631890Svbart@nginx.com</para>
4641890Svbart@nginx.com</change>
4651890Svbart@nginx.com
4661890Svbart@nginx.com<change type="feature">
4671890Svbart@nginx.com<para>
4681890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
4691890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
4701872So.canty@f5.com</para>
4711872So.canty@f5.com</change>
4721872So.canty@f5.com
4731872So.canty@f5.com<change type="feature">
4741872So.canty@f5.com<para>
4751889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
4761889Sartem.konev@nginx.comNode.js.
4771865So.canty@f5.com</para>
4781865So.canty@f5.com</change>
4791865So.canty@f5.com
4801865So.canty@f5.com<change type="feature">
4811865So.canty@f5.com<para>
4821890Svbart@nginx.commultiple "targets" in Python applications.
4831855Sz.hong@f5.com</para>
4841855Sz.hong@f5.com</change>
4851855Sz.hong@f5.com
4861870So.canty@f5.com<change type="feature">
4871870So.canty@f5.com<para>
4881870So.canty@f5.comcompatibility with Ruby 3.0.
4891870So.canty@f5.com</para>
4901870So.canty@f5.com</change>
4911870So.canty@f5.com
4921861Svbart@nginx.com<change type="bugfix">
4931861Svbart@nginx.com<para>
4941889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
4951884Sa.suvorov@f5.com</para>
4961884Sa.suvorov@f5.com</change>
4971884Sa.suvorov@f5.com
4981884Sa.suvorov@f5.com<change type="bugfix">
4991884Sa.suvorov@f5.com<para>
5001861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
5011861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
5021861Svbart@nginx.com</para>
5031861Svbart@nginx.com</change>
5041861Svbart@nginx.com
5051839Svbart@nginx.com</changes>
5061839Svbart@nginx.com
5071839Svbart@nginx.com
5081839Svbart@nginx.com<changes apply="unit-php
5091839Svbart@nginx.com                unit-python unit-python2.7
5101839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5111839Svbart@nginx.com                unit-python3.8 unit-python3.9
5121839Svbart@nginx.com                unit-go
5131839Svbart@nginx.com                unit-perl
5141839Svbart@nginx.com                unit-ruby
5151839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
5161839Svbart@nginx.com                unit-jsc14 unit-jsc15"
5171834Svbart@nginx.com         ver="1.23.0" rev="1"
5181834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
5191834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5201834Svbart@nginx.com
5211834Svbart@nginx.com<change>
5221834Svbart@nginx.com<para>
5231834Svbart@nginx.comNGINX Unit updated to 1.23.0.
5241834Svbart@nginx.com</para>
5251834Svbart@nginx.com</change>
5261834Svbart@nginx.com
5271834Svbart@nginx.com</changes>
5281834Svbart@nginx.com
5291834Svbart@nginx.com
5301806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
5311834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
5321806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5331806Svbart@nginx.com
5341825Sthresh@nginx.com<change type="feature">
5351825Sthresh@nginx.com<para>
5361833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
5371828Sa.suvorov@f5.comIndication (SNI) TLS extension.
5381828Sa.suvorov@f5.com</para>
5391828Sa.suvorov@f5.com</change>
5401828Sa.suvorov@f5.com
5411828Sa.suvorov@f5.com<change type="feature">
5421828Sa.suvorov@f5.com<para>
5431833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
5441833Sartem.konev@nginx.cominstallation.
5451825Sthresh@nginx.com</para>
5461825Sthresh@nginx.com</change>
5471825Sthresh@nginx.com
5481811Smax.romanov@nginx.com<change type="bugfix">
5491811Smax.romanov@nginx.com<para>
5501812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
5511812Svbart@nginx.comappeared in 1.17.0.
5521812Svbart@nginx.com</para>
5531812Svbart@nginx.com</change>
5541812Svbart@nginx.com
5551812Svbart@nginx.com<change type="bugfix">
5561812Svbart@nginx.com<para>
5571833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
5581812Svbart@nginx.comappeared in 1.6.
5591812Svbart@nginx.com</para>
5601812Svbart@nginx.com</change>
5611812Svbart@nginx.com
5621812Svbart@nginx.com<change type="bugfix">
5631812Svbart@nginx.com<para>
5641833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
5651832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
5661832Smax.romanov@nginx.com</para>
5671832Smax.romanov@nginx.com</change>
5681832Smax.romanov@nginx.com
5691832Smax.romanov@nginx.com<change type="bugfix">
5701832Smax.romanov@nginx.com<para>
5711833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
5721811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
5731811Smax.romanov@nginx.com</para>
5741811Smax.romanov@nginx.com</change>
5751806Svbart@nginx.com
5761813Svbart@nginx.com<change type="bugfix">
5771813Svbart@nginx.com<para>
5781813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
5791813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
5801813Svbart@nginx.com</para>
5811813Svbart@nginx.com</change>
5821813Svbart@nginx.com
5831814Svbart@nginx.com<change type="bugfix">
5841814Svbart@nginx.com<para>
5851820Svbart@nginx.comthe controller process could crash while requesting information about a
5861820Svbart@nginx.comcertificate with a non-DNS SAN entry.
5871820Svbart@nginx.com</para>
5881820Svbart@nginx.com</change>
5891820Svbart@nginx.com
5901820Svbart@nginx.com<change type="bugfix">
5911820Svbart@nginx.com<para>
5921822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
5931833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
5941822Svbart@nginx.com</para>
5951822Svbart@nginx.com</change>
5961822Svbart@nginx.com
5971822Svbart@nginx.com<change type="bugfix">
5981822Svbart@nginx.com<para>
5991833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
6001833Sartem.konev@nginx.comclass.
6011814Svbart@nginx.com</para>
6021814Svbart@nginx.com</change>
6031814Svbart@nginx.com
6041815Svbart@nginx.com<change type="bugfix">
6051815Svbart@nginx.com<para>
6061815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
6071815Svbart@nginx.comappeared in 1.22.0.
6081815Svbart@nginx.com</para>
6091815Svbart@nginx.com</change>
6101815Svbart@nginx.com
6111806Svbart@nginx.com</changes>
6121806Svbart@nginx.com
6131806Svbart@nginx.com
6141798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
6151798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
6161798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6171798Sdefan@nginx.com
6181798Sdefan@nginx.com<change>
6191798Sdefan@nginx.com<para>
6201798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
6211798Sdefan@nginx.com</para>
6221798Sdefan@nginx.com</change>
6231798Sdefan@nginx.com
6241798Sdefan@nginx.com</changes>
6251798Sdefan@nginx.com
6261798Sdefan@nginx.com
6271763Sdefan@nginx.com<changes apply="unit-php
6281763Sdefan@nginx.com                unit-python unit-python2.7
6291763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6301763Sdefan@nginx.com                unit-python3.8
6311763Sdefan@nginx.com                unit-go
6321763Sdefan@nginx.com                unit-perl
6331763Sdefan@nginx.com                unit-ruby
6341763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
6351763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
6361763Sdefan@nginx.com         ver="1.22.0" rev="1"
6371793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
6381763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6391763Sdefan@nginx.com
6401763Sdefan@nginx.com<change>
6411763Sdefan@nginx.com<para>
6421763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
6431763Sdefan@nginx.com</para>
6441763Sdefan@nginx.com</change>
6451763Sdefan@nginx.com
6461763Sdefan@nginx.com</changes>
6471763Sdefan@nginx.com
6481763Sdefan@nginx.com
6491727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
6501793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
6511727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6521727Svbart@nginx.com
6531759Svbart@nginx.com<change type="feature">
6541759Svbart@nginx.com<para>
6551792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
6561792Svbart@nginx.comcompliant with Stream API.
6571759Svbart@nginx.com</para>
6581759Svbart@nginx.com</change>
6591759Svbart@nginx.com
6601766Smax.romanov@nginx.com<change type="feature">
6611766Smax.romanov@nginx.com<para>
6621792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
6631792Svbart@nginx.comapps.
6641732Svbart@nginx.com</para>
6651732Svbart@nginx.com</change>
6661732Svbart@nginx.com
6671733Svbart@nginx.com<change type="bugfix">
6681733Svbart@nginx.com<para>
6691792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
6701792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
6711754Smax.romanov@nginx.com</para>
6721754Smax.romanov@nginx.com</change>
6731754Smax.romanov@nginx.com
6741755Smax.romanov@nginx.com<change type="bugfix">
6751755Smax.romanov@nginx.com<para>
6761790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
6771755Smax.romanov@nginx.comappeared in 1.19.0.
6781755Smax.romanov@nginx.com</para>
6791755Smax.romanov@nginx.com</change>
6801755Smax.romanov@nginx.com
6811756Smax.romanov@nginx.com<change type="bugfix">
6821756Smax.romanov@nginx.com<para>
6831790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
6841790Sartem.konev@nginx.comappeared in 1.19.0.
6851756Smax.romanov@nginx.com</para>
6861756Smax.romanov@nginx.com</change>
6871756Smax.romanov@nginx.com
6881760Smax.romanov@nginx.com<change type="bugfix">
6891760Smax.romanov@nginx.com<para>
6901792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
6911792Svbart@nginx.com</para>
6921792Svbart@nginx.com</change>
6931792Svbart@nginx.com
6941792Svbart@nginx.com<change type="bugfix">
6951792Svbart@nginx.com<para>
6961792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
6971792Svbart@nginx.commissing in the PHP module.
6981792Svbart@nginx.com</para>
6991792Svbart@nginx.com</change>
7001792Svbart@nginx.com
7011792Svbart@nginx.com<change type="bugfix">
7021792Svbart@nginx.com<para>
7031792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
7041792Svbart@nginx.com</para>
7051792Svbart@nginx.com</change>
7061792Svbart@nginx.com
7071792Svbart@nginx.com<change type="bugfix">
7081792Svbart@nginx.com<para>
7091792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
7101792Svbart@nginx.com</para>
7111792Svbart@nginx.com</change>
7121792Svbart@nginx.com
7131792Svbart@nginx.com<change type="bugfix">
7141792Svbart@nginx.com<para>
7151792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
7161792Svbart@nginx.comthe bug had appeared in 1.21.0.
7171760Smax.romanov@nginx.com</para>
7181760Smax.romanov@nginx.com</change>
7191760Smax.romanov@nginx.com
7201780Smax.romanov@nginx.com<change type="bugfix">
7211780Smax.romanov@nginx.com<para>
7221790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
7231790Sartem.konev@nginx.comWebSocket.
7241780Smax.romanov@nginx.com</para>
7251780Smax.romanov@nginx.com</change>
7261780Smax.romanov@nginx.com
7271789Smax.romanov@nginx.com<change type="bugfix">
7281789Smax.romanov@nginx.com<para>
7291789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
7301789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
7311789Smax.romanov@nginx.com</para>
7321789Smax.romanov@nginx.com</change>
7331789Smax.romanov@nginx.com
7341727Svbart@nginx.com</changes>
7351727Svbart@nginx.com
7361727Svbart@nginx.com
7371722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
7381722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7391722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7401722Svbart@nginx.com
7411722Svbart@nginx.com<change>
7421722Svbart@nginx.com<para>
7431722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
7441722Svbart@nginx.com</para>
7451722Svbart@nginx.com</change>
7461722Svbart@nginx.com
7471722Svbart@nginx.com</changes>
7481722Svbart@nginx.com
7491722Svbart@nginx.com
7501722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
7511722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7521722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7531722Svbart@nginx.com
7541722Svbart@nginx.com<change>
7551722Svbart@nginx.com<para>
7561722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
7571722Svbart@nginx.com</para>
7581722Svbart@nginx.com</change>
7591722Svbart@nginx.com
7601722Svbart@nginx.com</changes>
7611722Svbart@nginx.com
7621722Svbart@nginx.com
7631722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
7641722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7651722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7661722Svbart@nginx.com
7671722Svbart@nginx.com<change>
7681722Svbart@nginx.com<para>
7691722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
7701722Svbart@nginx.com</para>
7711722Svbart@nginx.com</change>
7721722Svbart@nginx.com
7731722Svbart@nginx.com</changes>
7741722Svbart@nginx.com
7751722Svbart@nginx.com
7761722Svbart@nginx.com<changes apply="unit-php
7771722Svbart@nginx.com                unit-python unit-python2.7
7781722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7791722Svbart@nginx.com                unit-python3.8
7801722Svbart@nginx.com                unit-go
7811722Svbart@nginx.com                unit-perl
7821722Svbart@nginx.com                unit-ruby
7831722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
7841722Svbart@nginx.com         ver="1.21.0" rev="1"
7851722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7861722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7871722Svbart@nginx.com
7881722Svbart@nginx.com<change>
7891722Svbart@nginx.com<para>
7901722Svbart@nginx.comNGINX Unit updated to 1.21.0.
7911722Svbart@nginx.com</para>
7921722Svbart@nginx.com</change>
7931722Svbart@nginx.com
7941722Svbart@nginx.com</changes>
7951722Svbart@nginx.com
7961722Svbart@nginx.com
7971722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
7981722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7991722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8001722Svbart@nginx.com
8011722Svbart@nginx.com<change type="change">
8021722Svbart@nginx.com<para>
8031722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
8041722Svbart@nginx.com</para>
8051722Svbart@nginx.com</change>
8061722Svbart@nginx.com
8071722Svbart@nginx.com<change type="change">
8081722Svbart@nginx.com<para>
8091722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
8101722Svbart@nginx.comnames.
8111722Svbart@nginx.com</para>
8121722Svbart@nginx.com</change>
8131722Svbart@nginx.com
8141722Svbart@nginx.com<change type="change">
8151722Svbart@nginx.com<para>
8161722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
8171722Svbart@nginx.comdefault.
8181722Svbart@nginx.com</para>
8191722Svbart@nginx.com</change>
8201722Svbart@nginx.com
8211722Svbart@nginx.com<change type="feature">
8221722Svbart@nginx.com<para>
8231722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
8241722Svbart@nginx.com</para>
8251722Svbart@nginx.com</change>
8261722Svbart@nginx.com
8271722Svbart@nginx.com<change type="feature">
8281722Svbart@nginx.com<para>
8291722Svbart@nginx.comregular expressions in route matching patterns.
8301722Svbart@nginx.com</para>
8311722Svbart@nginx.com</change>
8321722Svbart@nginx.com
8331722Svbart@nginx.com<change type="feature">
8341722Svbart@nginx.com<para>
8351722Svbart@nginx.comcompatibility with Python 3.9.
8361722Svbart@nginx.com</para>
8371722Svbart@nginx.com</change>
8381722Svbart@nginx.com
8391722Svbart@nginx.com<change type="feature">
8401722Svbart@nginx.com<para>
8411722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
8421722Svbart@nginx.com</para>
8431722Svbart@nginx.com</change>
8441722Svbart@nginx.com
8451722Svbart@nginx.com<change type="feature">
8461722Svbart@nginx.com<para>
8471722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
8481722Svbart@nginx.com</para>
8491722Svbart@nginx.com</change>
8501722Svbart@nginx.com
8511722Svbart@nginx.com<change type="feature">
8521722Svbart@nginx.com<para>
8531722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
8541722Svbart@nginx.comcontinues code execution without holding onto the client connection.
8551722Svbart@nginx.com</para>
8561722Svbart@nginx.com</change>
8571722Svbart@nginx.com
8581722Svbart@nginx.com<change type="feature">
8591722Svbart@nginx.com<para>
8601722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
8611722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
8621722Svbart@nginx.com</para>
8631722Svbart@nginx.com</change>
8641722Svbart@nginx.com
8651722Svbart@nginx.com<change type="feature">
8661722Svbart@nginx.com<para>
8671722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
8681722Svbart@nginx.commounting of eponymous filesystems.
8691722Svbart@nginx.com</para>
8701722Svbart@nginx.com</change>
8711722Svbart@nginx.com
8721722Svbart@nginx.com<change type="bugfix">
8731722Svbart@nginx.com<para>
8741722Svbart@nginx.comthe router process could crash when running Go applications under high load;
8751722Svbart@nginx.comthe bug had appeared in 1.19.0.
8761722Svbart@nginx.com</para>
8771722Svbart@nginx.com</change>
8781722Svbart@nginx.com
8791722Svbart@nginx.com<change type="bugfix">
8801722Svbart@nginx.com<para>
8811722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
8821722Svbart@nginx.com</para>
8831722Svbart@nginx.com</change>
8841722Svbart@nginx.com
8851722Svbart@nginx.com<change type="bugfix">
8861722Svbart@nginx.com<para>
8871722Svbart@nginx.comvarious compatibility issues in Java applications.
8881722Svbart@nginx.com</para>
8891722Svbart@nginx.com</change>
8901722Svbart@nginx.com
8911722Svbart@nginx.com<change type="bugfix">
8921722Svbart@nginx.com<para>
8931722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
8941722Svbart@nginx.comuse "rootfs" isolation.
8951722Svbart@nginx.com</para>
8961722Svbart@nginx.com</change>
8971722Svbart@nginx.com
8981722Svbart@nginx.com</changes>
8991722Svbart@nginx.com
9001722Svbart@nginx.com
9011330Svbart@nginx.com<changes apply="unit-php
9021330Svbart@nginx.com                unit-python unit-python2.7
9031330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9041330Svbart@nginx.com                unit-python3.8
9051330Svbart@nginx.com                unit-go
9061330Svbart@nginx.com                unit-perl
9071330Svbart@nginx.com                unit-ruby
9081330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9091640Svbart@nginx.com         ver="1.20.0" rev="1"
9101640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
9111640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9121640Svbart@nginx.com
9131640Svbart@nginx.com<change>
9141640Svbart@nginx.com<para>
9151640Svbart@nginx.comNGINX Unit updated to 1.20.0.
9161640Svbart@nginx.com</para>
9171640Svbart@nginx.com</change>
9181640Svbart@nginx.com
9191640Svbart@nginx.com</changes>
9201640Svbart@nginx.com
9211640Svbart@nginx.com
9221640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
9231640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
9241640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9251640Svbart@nginx.com
9261640Svbart@nginx.com<change type="change">
9271640Svbart@nginx.com<para>
9281640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
9291640Svbart@nginx.comextensions from the host system.
9301640Svbart@nginx.com</para>
9311640Svbart@nginx.com</change>
9321640Svbart@nginx.com
9331640Svbart@nginx.com<change type="change">
9341640Svbart@nginx.com<para>
9351640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
9361640Svbart@nginx.com</para>
9371640Svbart@nginx.com</change>
9381640Svbart@nginx.com
9391643Svbart@nginx.com<change type="change">
9401643Svbart@nginx.com<para>
9411643Svbart@nginx.comfunctional tests migrated to the pytest framework.
9421643Svbart@nginx.com</para>
9431643Svbart@nginx.com</change>
9441643Svbart@nginx.com
9451640Svbart@nginx.com<change type="feature">
9461640Svbart@nginx.com<para>
9471640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
9481640Svbart@nginx.cominterface.
9491640Svbart@nginx.com</para>
9501640Svbart@nginx.com</change>
9511640Svbart@nginx.com
9521640Svbart@nginx.com<change type="feature">
9531640Svbart@nginx.com<para>
9541640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
9551640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
9561640Svbart@nginx.comspecification.
9571640Svbart@nginx.com</para>
9581640Svbart@nginx.com</change>
9591640Svbart@nginx.com
9601640Svbart@nginx.com<change type="feature">
9611640Svbart@nginx.com<para>
9621640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
9631640Svbart@nginx.comenvironments.
9641640Svbart@nginx.com</para>
9651640Svbart@nginx.com</change>
9661640Svbart@nginx.com
9671640Svbart@nginx.com<change type="feature">
9681640Svbart@nginx.com<para>
9691640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
9701640Svbart@nginx.com</para>
9711640Svbart@nginx.com</change>
9721640Svbart@nginx.com
9731640Svbart@nginx.com<change type="feature">
9741640Svbart@nginx.com<para>
9751640Svbart@nginx.comthe "callable" option sets Python application callable names.
9761640Svbart@nginx.com</para>
9771640Svbart@nginx.com</change>
9781640Svbart@nginx.com
9791640Svbart@nginx.com<change type="feature">
9801640Svbart@nginx.com<para>
9811640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
9821640Svbart@nginx.com</para>
9831640Svbart@nginx.com</change>
9841640Svbart@nginx.com
9851640Svbart@nginx.com<change type="feature">
9861640Svbart@nginx.com<para>
9871640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
9881640Svbart@nginx.comautomatic mounting of language module dependencies.
9891640Svbart@nginx.com</para>
9901640Svbart@nginx.com</change>
9911640Svbart@nginx.com
9921640Svbart@nginx.com<change type="bugfix">
9931640Svbart@nginx.com<para>
9941640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
9951640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
9961640Svbart@nginx.com</para>
9971640Svbart@nginx.com</change>
9981640Svbart@nginx.com
9991640Svbart@nginx.com<change type="bugfix">
10001640Svbart@nginx.com<para>
10011640Svbart@nginx.comthe router process could crash during reconfiguration.
10021640Svbart@nginx.com</para>
10031640Svbart@nginx.com</change>
10041640Svbart@nginx.com
10051640Svbart@nginx.com<change type="bugfix">
10061640Svbart@nginx.com<para>
10071640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
10081640Svbart@nginx.com</para>
10091640Svbart@nginx.com</change>
10101640Svbart@nginx.com
10111640Svbart@nginx.com<change type="bugfix">
10121640Svbart@nginx.com<para>
10131640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
10141640Svbart@nginx.comthe bug had appeared in 1.19.0.
10151640Svbart@nginx.com</para>
10161640