xref: /unit/docs/changes.xml (revision 2135)
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=""
19*2135Sthresh@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=""
32*2135Sthresh@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>
362133Sz.hong@f5.comforwarded header to replace client address and protocol.
372133Sz.hong@f5.com</para>
382133Sz.hong@f5.com</change>
392133Sz.hong@f5.com
402129Szelenkov@nginx.com</changes>
412129Szelenkov@nginx.com
422129Szelenkov@nginx.com
432129Szelenkov@nginx.com<changes apply="unit-php
442129Szelenkov@nginx.com                unit-python unit-python2.7
452129Szelenkov@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
462129Szelenkov@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
472129Szelenkov@nginx.com                unit-go
482129Szelenkov@nginx.com                unit-perl
492129Szelenkov@nginx.com                unit-ruby
502129Szelenkov@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
512129Szelenkov@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
522012Svbart@nginx.com         ver="1.27.0" rev="1"
532127Szelenkov@nginx.com         date="2022-06-02" time="18:00:00 +0300"
542012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
552012Svbart@nginx.com
562012Svbart@nginx.com<change>
572012Svbart@nginx.com<para>
582012Svbart@nginx.comNGINX Unit updated to 1.27.0.
592012Svbart@nginx.com</para>
602012Svbart@nginx.com</change>
612012Svbart@nginx.com
622012Svbart@nginx.com</changes>
632012Svbart@nginx.com
642012Svbart@nginx.com
652012Svbart@nginx.com<changes apply="unit" ver="1.27.0" rev="1"
662127Szelenkov@nginx.com         date="2022-06-02" time="18:00:00 +0300"
672012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
682012Svbart@nginx.com
692072Sz.hong@f5.com<change type="feature">
702072Sz.hong@f5.com<para>
712108Salx.manpages@gmail.comability to specify a custom index file name when serving static files.
722108Salx.manpages@gmail.com</para>
732108Salx.manpages@gmail.com</change>
742108Salx.manpages@gmail.com
752108Salx.manpages@gmail.com<change type="feature">
762108Salx.manpages@gmail.com<para>
772081Salx.manpages@gmail.comvariables support in the "location" option of the "return" action.
782081Salx.manpages@gmail.com</para>
792081Salx.manpages@gmail.com</change>
802081Salx.manpages@gmail.com
812081Salx.manpages@gmail.com<change type="feature">
822081Salx.manpages@gmail.com<para>
832113Sartem.konev@nginx.comsupport empty strings in the "location" option of the "return" action.
842113Sartem.konev@nginx.com</para>
852113Sartem.konev@nginx.com</change>
862113Sartem.konev@nginx.com
872113Sartem.konev@nginx.com<change type="feature">
882113Sartem.konev@nginx.com<para>
892113Sartem.konev@nginx.comadded a new variable, $request_uri, that includes both the path and the query
902113Sartem.konev@nginx.comparts as per RFC 3986, sections 3-4.
912113Sartem.konev@nginx.com</para>
922113Sartem.konev@nginx.com</change>
932113Sartem.konev@nginx.com
942113Sartem.konev@nginx.com<change type="feature">
952113Sartem.konev@nginx.com<para>
962113Sartem.konev@nginx.comRuby Rack environment parameter "SCRIPT_NAME" support.
972110Salx.manpages@gmail.com</para>
982110Salx.manpages@gmail.com</change>
992110Salx.manpages@gmail.com
1002110Salx.manpages@gmail.com<change type="feature">
1012110Salx.manpages@gmail.com<para>
1022072Sz.hong@f5.comcompatibility with GCC 12.
1032072Sz.hong@f5.com</para>
1042072Sz.hong@f5.com</change>
1052072Sz.hong@f5.com
1062060Smax.romanov@nginx.com<change type="bugfix">
1072060Smax.romanov@nginx.com<para>
1082093Sz.hong@f5.comRuby Sinatra applications don't work without custom logging.
1092093Sz.hong@f5.com</para>
1102093Sz.hong@f5.com</change>
1112093Sz.hong@f5.com
1122093Sz.hong@f5.com<change type="bugfix">
1132093Sz.hong@f5.com<para>
1142113Sartem.konev@nginx.comthe controller process could crash when a chain of more than four
1152069Sz.hong@f5.comcertificates was uploaded.
1162069Sz.hong@f5.com</para>
1172069Sz.hong@f5.com</change>
1182069Sz.hong@f5.com
1192069Sz.hong@f5.com<change type="bugfix">
1202069Sz.hong@f5.com<para>
1212060Smax.romanov@nginx.comsome Perl applications failed to process the request body, notably with Plack.
1222060Smax.romanov@nginx.com</para>
1232060Smax.romanov@nginx.com</change>
1242060Smax.romanov@nginx.com
1252061Smax.romanov@nginx.com<change type="bugfix">
1262061Smax.romanov@nginx.com<para>
1272061Smax.romanov@nginx.comsome Spring Boot applications failed to start, notably with Grails.
1282061Smax.romanov@nginx.com</para>
1292061Smax.romanov@nginx.com</change>
1302061Smax.romanov@nginx.com
1312067Smax.romanov@nginx.com<change type="bugfix">
1322067Smax.romanov@nginx.com<para>
1332067Smax.romanov@nginx.comincorrect Python protocol auto detection (ASGI or WSGI) for native callable
1342067Smax.romanov@nginx.comobject, notably with Falcon.
1352067Smax.romanov@nginx.com</para>
1362067Smax.romanov@nginx.com</change>
1372067Smax.romanov@nginx.com
1382117Szelenkov@nginx.com<change type="bugfix">
1392117Szelenkov@nginx.com<para>
1402117Szelenkov@nginx.comECMAScript modules did not work with the recent Node.js versions.
1412117Szelenkov@nginx.com</para>
1422117Szelenkov@nginx.com</change>
1432117Szelenkov@nginx.com
1442050Svbart@nginx.com</changes>
1452050Svbart@nginx.com
1462050Svbart@nginx.com
1472050Svbart@nginx.com<changes apply="unit-php
1482050Svbart@nginx.com                unit-python unit-python2.7
1492050Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1502050Svbart@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
1512050Svbart@nginx.com                unit-go
1522050Svbart@nginx.com                unit-perl
1532050Svbart@nginx.com                unit-ruby
1542050Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1552050Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
1562029SN/A         ver="1.26.1" rev="1"
1572045SN/A         date="2021-12-02" time="18:00:00 +0300"
1582029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1592029SN/A
1602029SN/A<change>
1612029SN/A<para>
1622029SN/ANGINX Unit updated to 1.26.1.
1632029SN/A</para>
1642029SN/A</change>
1652029SN/A
1662029SN/A</changes>
1672029SN/A
1682029SN/A
1692029SN/A<changes apply="unit" ver="1.26.1" rev="1"
1702045SN/A         date="2021-12-02" time="18:00:00 +0300"
1712029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1722029SN/A
1732033SN/A<change type="bugfix">
1742033SN/A<para>
1752044SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had
1762044SN/Aappeared in 1.26.0.
1772033SN/A</para>
1782033SN/A</change>
1792033SN/A
1802034SN/A<change type="bugfix">
1812034SN/A<para>
1822044SN/Aa prototype process could crash on an application process exit; the bug had
1832034SN/Aappeared in 1.26.0.
1842034SN/A</para>
1852034SN/A</change>
1862034SN/A
1872035SN/A<change type="bugfix">
1882035SN/A<para>
1892044SN/Athe router process crashed on reconfiguration if "access_log" was configured
1902044SN/Awithout listeners.
1912044SN/A</para>
1922044SN/A</change>
1932044SN/A
1942044SN/A<change type="bugfix">
1952044SN/A<para>
1962035SN/Aa segmentation fault occurred in the PHP module if chdir() or
1972035SN/Afastcgi_finish_request() was called in the OPcache preloading script.
1982035SN/A</para>
1992035SN/A</change>
2002035SN/A
2012040SN/A<change type="bugfix">
2022040SN/A<para>
2032041SN/Afatal errors on DragonFly BSD; the bug had appeared in 1.26.0.
2042041SN/A</para>
2052041SN/A</change>
2062041SN/A
2072029SN/A</changes>
2082029SN/A
2092029SN/A
2101973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1"
2112007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2121973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2131973Sdefan@nginx.com
2141973Sdefan@nginx.com<change>
2151973Sdefan@nginx.com<para>
2161973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit.
2171973Sdefan@nginx.com</para>
2181973Sdefan@nginx.com</change>
2191973Sdefan@nginx.com
2201973Sdefan@nginx.com</changes>
2211973Sdefan@nginx.com
2221973Sdefan@nginx.com
2231973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1"
2242007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2251973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2261973Sdefan@nginx.com
2271973Sdefan@nginx.com<change>
2281973Sdefan@nginx.com<para>
2291973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit.
2301973Sdefan@nginx.com</para>
2311973Sdefan@nginx.com</change>
2321973Sdefan@nginx.com
2331973Sdefan@nginx.com</changes>
2341973Sdefan@nginx.com
2351973Sdefan@nginx.com
2361896Svbart@nginx.com<changes apply="unit-php
2371896Svbart@nginx.com                unit-python unit-python2.7
2381896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2391896Svbart@nginx.com                unit-python3.8 unit-python3.9
2401896Svbart@nginx.com                unit-go
2411896Svbart@nginx.com                unit-perl
2421896Svbart@nginx.com                unit-ruby
2431896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2441896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
2451951Svbart@nginx.com         ver="1.26.0" rev="1"
2462007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2471951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2481951Svbart@nginx.com
2491951Svbart@nginx.com<change>
2501951Svbart@nginx.com<para>
2511951Svbart@nginx.comNGINX Unit updated to 1.26.0.
2521951Svbart@nginx.com</para>
2531951Svbart@nginx.com</change>
2541951Svbart@nginx.com
2551951Svbart@nginx.com</changes>
2561951Svbart@nginx.com
2571951Svbart@nginx.com
2581951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
2592007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2601951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2611951Svbart@nginx.com
2621960Sz.hong@f5.com<change type="change">
2631960Sz.hong@f5.com<para>
2641960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
2651960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
2661960Sz.hong@f5.com</para>
2671960Sz.hong@f5.com</change>
2681960Sz.hong@f5.com
2691960Sz.hong@f5.com<change type="feature">
2701960Sz.hong@f5.com<para>
2712006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior
2722006Svbart@nginx.comwhen updating from previous versions.
2732006Svbart@nginx.com</para>
2742006Svbart@nginx.com</change>
2752006Svbart@nginx.com
2762006Svbart@nginx.com<change type="feature">
2772006Svbart@nginx.com<para>
2781960Sz.hong@f5.comvariables support in the "share" option.
2791960Sz.hong@f5.com</para>
2801960Sz.hong@f5.com</change>
2811960Sz.hong@f5.com
2821959Sz.hong@f5.com<change type="feature">
2831959Sz.hong@f5.com<para>
2841961Sz.hong@f5.commultiple paths in the "share" option.
2851961Sz.hong@f5.com</para>
2861961Sz.hong@f5.com</change>
2871961Sz.hong@f5.com
2881961Sz.hong@f5.com<change type="feature">
2891961Sz.hong@f5.com<para>
2901959Sz.hong@f5.comvariables support in the "chroot" option.
2911959Sz.hong@f5.com</para>
2921959Sz.hong@f5.com</change>
2931959Sz.hong@f5.com
2941969Sz.hong@f5.com<change type="feature">
2951969Sz.hong@f5.com<para>
2962006Svbart@nginx.comPHP opcache is shared between application processes.
2971969Sz.hong@f5.com</para>
2981969Sz.hong@f5.com</change>
2991969Sz.hong@f5.com
3001991Sz.hong@f5.com<change type="feature">
3011991Sz.hong@f5.com<para>
3021991Sz.hong@f5.comrequest routing by the query string.
3031991Sz.hong@f5.com</para>
3041991Sz.hong@f5.com</change>
3051991Sz.hong@f5.com
3061955Smax.romanov@nginx.com<change type="bugfix">
3071955Smax.romanov@nginx.com<para>
3082006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached
3092006Svbart@nginx.comby asynchronous or multithreaded apps.
3101955Smax.romanov@nginx.com</para>
3111955Smax.romanov@nginx.com</change>
3121955Smax.romanov@nginx.com
3131956Smax.romanov@nginx.com<change type="bugfix">
3141956Smax.romanov@nginx.com<para>
3151956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
3161956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
3171956Smax.romanov@nginx.com</para>
3181956Smax.romanov@nginx.com</change>
3191956Smax.romanov@nginx.com
3201992Smax.romanov@nginx.com<change type="bugfix">
3211992Smax.romanov@nginx.com<para>
3222006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35.
3231992Smax.romanov@nginx.com</para>
3241992Smax.romanov@nginx.com</change>
3251992Smax.romanov@nginx.com
3261951Svbart@nginx.com</changes>
3271951Svbart@nginx.com
3281951Svbart@nginx.com
3291951Svbart@nginx.com<changes apply="unit-php
3301951Svbart@nginx.com                unit-python unit-python2.7
3311951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3321951Svbart@nginx.com                unit-python3.8 unit-python3.9
3331951Svbart@nginx.com                unit-go
3341951Svbart@nginx.com                unit-perl
3351951Svbart@nginx.com                unit-ruby
3361951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3371951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
3381896Svbart@nginx.com         ver="1.25.0" rev="1"
3391945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
3401896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3411896Svbart@nginx.com
3421896Svbart@nginx.com<change>
3431896Svbart@nginx.com<para>
3441896Svbart@nginx.comNGINX Unit updated to 1.25.0.
3451896Svbart@nginx.com</para>
3461896Svbart@nginx.com</change>
3471896Svbart@nginx.com
3481896Svbart@nginx.com</changes>
3491896Svbart@nginx.com
3501896Svbart@nginx.com
3511896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
3521945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
3531896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3541896Svbart@nginx.com
3551910So.canty@f5.com<change type="feature">
3561910So.canty@f5.com<para>
3571944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
3581942Sa.suvorov@f5.com</para>
3591942Sa.suvorov@f5.com</change>
3601942Sa.suvorov@f5.com
3611942Sa.suvorov@f5.com<change type="feature">
3621942Sa.suvorov@f5.com<para>
3631920Sa.suvorov@f5.comTLS sessions cache.
3641920Sa.suvorov@f5.com</para>
3651920Sa.suvorov@f5.com</change>
3661920Sa.suvorov@f5.com
3671920Sa.suvorov@f5.com<change type="feature">
3681920Sa.suvorov@f5.com<para>
3691944Svbart@nginx.comTLS session tickets.
3701910So.canty@f5.com</para>
3711910So.canty@f5.com</change>
3721910So.canty@f5.com
3731926Smax.romanov@nginx.com<change type="feature">
3741926Smax.romanov@nginx.com<para>
3751926Smax.romanov@nginx.comapplication restart control.
3761926Smax.romanov@nginx.com</para>
3771926Smax.romanov@nginx.com</change>
3781926Smax.romanov@nginx.com
3791936So.canty@f5.com<change type="feature">
3801936So.canty@f5.com<para>
3811944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
3821936So.canty@f5.com</para>
3831936So.canty@f5.com</change>
3841936So.canty@f5.com
3851907Smax.romanov@nginx.com<change type="bugfix">
3861907Smax.romanov@nginx.com<para>
3871944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
3881944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
3891921Sa.suvorov@f5.com</para>
3901921Sa.suvorov@f5.com</change>
3911921Sa.suvorov@f5.com
3921921Sa.suvorov@f5.com<change type="bugfix">
3931921Sa.suvorov@f5.com<para>
3941944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
3951944Svbart@nginx.combundles in a listener if the client did not use SNI.
3961907Smax.romanov@nginx.com</para>
3971907Smax.romanov@nginx.com</change>
3981907Smax.romanov@nginx.com
3991907Smax.romanov@nginx.com<change type="bugfix">
4001907Smax.romanov@nginx.com<para>
4011950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
4021915Smax.romanov@nginx.comreconfiguration.
4031915Smax.romanov@nginx.com</para>
4041915Smax.romanov@nginx.com</change>
4051915Smax.romanov@nginx.com
4061915Smax.romanov@nginx.com<change type="bugfix">
4071915Smax.romanov@nginx.com<para>
4081944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
4091944Svbart@nginx.comframework.
4101944Svbart@nginx.com</para>
4111944Svbart@nginx.com</change>
4121944Svbart@nginx.com
4131944Svbart@nginx.com<change type="bugfix">
4141944Svbart@nginx.com<para>
4151944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
4161944Svbart@nginx.comstopped or crashed.
4171907Smax.romanov@nginx.com</para>
4181907Smax.romanov@nginx.com</change>
4191907Smax.romanov@nginx.com
4201909So.canty@f5.com<change type="bugfix">
4211909So.canty@f5.com<para>
4221909So.canty@f5.comthe controller or router process could crash if the configuration contained
4231909So.canty@f5.coma full-form IPv6 in a listener address.
4241909So.canty@f5.com</para>
4251909So.canty@f5.com</change>
4261909So.canty@f5.com
4271916Smax.romanov@nginx.com<change type="bugfix">
4281916Smax.romanov@nginx.com<para>
4291929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
4301929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
4311929Sz.hong@f5.com</para>
4321929Sz.hong@f5.com</change>
4331929Sz.hong@f5.com
4341930So.canty@f5.com<change type="bugfix">
4351930So.canty@f5.com<para>
4361944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
4371944Svbart@nginx.comor destination address patterns.
4381930So.canty@f5.com</para>
4391930So.canty@f5.com</change>
4401930So.canty@f5.com
4411896Svbart@nginx.com</changes>
4421896Svbart@nginx.com
4431896Svbart@nginx.com
4441887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
4451891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4461887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4471887Sdefan@nginx.com
4481887Sdefan@nginx.com<change>
4491887Sdefan@nginx.com<para>
4501887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
4511887Sdefan@nginx.com</para>
4521887Sdefan@nginx.com</change>
4531887Sdefan@nginx.com
4541887Sdefan@nginx.com</changes>
4551887Sdefan@nginx.com
4561887Sdefan@nginx.com
4571887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
4581891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4591887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4601887Sdefan@nginx.com
4611887Sdefan@nginx.com<change>
4621887Sdefan@nginx.com<para>
4631887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
4641887Sdefan@nginx.com</para>
4651887Sdefan@nginx.com</change>
4661887Sdefan@nginx.com
4671887Sdefan@nginx.com</changes>
4681887Sdefan@nginx.com
4691887Sdefan@nginx.com
4701834Svbart@nginx.com<changes apply="unit-php
4711834Svbart@nginx.com                unit-python unit-python2.7
4721834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4731834Svbart@nginx.com                unit-python3.8 unit-python3.9
4741834Svbart@nginx.com                unit-go
4751834Svbart@nginx.com                unit-perl
4761834Svbart@nginx.com                unit-ruby
4771834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4781834Svbart@nginx.com                unit-jsc14 unit-jsc15"
4791839Svbart@nginx.com         ver="1.24.0" rev="1"
4801891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4811839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4821839Svbart@nginx.com
4831839Svbart@nginx.com<change>
4841839Svbart@nginx.com<para>
4851839Svbart@nginx.comNGINX Unit updated to 1.24.0.
4861839Svbart@nginx.com</para>
4871839Svbart@nginx.com</change>
4881839Svbart@nginx.com
4891839Svbart@nginx.com</changes>
4901839Svbart@nginx.com
4911839Svbart@nginx.com
4921839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
4931891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4941839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4951839Svbart@nginx.com
4961882So.canty@f5.com<change type="change">
4971882So.canty@f5.com<para>
4981882So.canty@f5.comPHP added to the default MIME type list.
4991882So.canty@f5.com</para>
5001882So.canty@f5.com</change>
5011882So.canty@f5.com
5021855Sz.hong@f5.com<change type="feature">
5031855Sz.hong@f5.com<para>
5041885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
5051885Sa.suvorov@f5.com</para>
5061885Sa.suvorov@f5.com</change>
5071885Sa.suvorov@f5.com
5081885Sa.suvorov@f5.com<change type="feature">
5091885Sa.suvorov@f5.com<para>
5101890Svbart@nginx.comthe ability to limit static file serving by MIME types.
5111890Svbart@nginx.com</para>
5121890Svbart@nginx.com</change>
5131890Svbart@nginx.com
5141890Svbart@nginx.com<change type="feature">
5151890Svbart@nginx.com<para>
5161890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
5171890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
5181872So.canty@f5.com</para>
5191872So.canty@f5.com</change>
5201872So.canty@f5.com
5211872So.canty@f5.com<change type="feature">
5221872So.canty@f5.com<para>
5231889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
5241889Sartem.konev@nginx.comNode.js.
5251865So.canty@f5.com</para>
5261865So.canty@f5.com</change>
5271865So.canty@f5.com
5281865So.canty@f5.com<change type="feature">
5291865So.canty@f5.com<para>
5301890Svbart@nginx.commultiple "targets" in Python applications.
5311855Sz.hong@f5.com</para>
5321855Sz.hong@f5.com</change>
5331855Sz.hong@f5.com
5341870So.canty@f5.com<change type="feature">
5351870So.canty@f5.com<para>
5361870So.canty@f5.comcompatibility with Ruby 3.0.
5371870So.canty@f5.com</para>
5381870So.canty@f5.com</change>
5391870So.canty@f5.com
5401861Svbart@nginx.com<change type="bugfix">
5411861Svbart@nginx.com<para>
5421889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
5431884Sa.suvorov@f5.com</para>
5441884Sa.suvorov@f5.com</change>
5451884Sa.suvorov@f5.com
5461884Sa.suvorov@f5.com<change type="bugfix">
5471884Sa.suvorov@f5.com<para>
5481861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
5491861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
5501861Svbart@nginx.com</para>
5511861Svbart@nginx.com</change>
5521861Svbart@nginx.com
5531839Svbart@nginx.com</changes>
5541839Svbart@nginx.com
5551839Svbart@nginx.com
5561839Svbart@nginx.com<changes apply="unit-php
5571839Svbart@nginx.com                unit-python unit-python2.7
5581839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5591839Svbart@nginx.com                unit-python3.8 unit-python3.9
5601839Svbart@nginx.com                unit-go
5611839Svbart@nginx.com                unit-perl
5621839Svbart@nginx.com                unit-ruby
5631839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
5641839Svbart@nginx.com                unit-jsc14 unit-jsc15"
5651834Svbart@nginx.com         ver="1.23.0" rev="1"
5661834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
5671834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5681834Svbart@nginx.com
5691834Svbart@nginx.com<change>
5701834Svbart@nginx.com<para>
5711834Svbart@nginx.comNGINX Unit updated to 1.23.0.
5721834Svbart@nginx.com</para>
5731834Svbart@nginx.com</change>
5741834Svbart@nginx.com
5751834Svbart@nginx.com</changes>
5761834Svbart@nginx.com
5771834Svbart@nginx.com
5781806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
5791834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
5801806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5811806Svbart@nginx.com
5821825Sthresh@nginx.com<change type="feature">
5831825Sthresh@nginx.com<para>
5841833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
5851828Sa.suvorov@f5.comIndication (SNI) TLS extension.
5861828Sa.suvorov@f5.com</para>
5871828Sa.suvorov@f5.com</change>
5881828Sa.suvorov@f5.com
5891828Sa.suvorov@f5.com<change type="feature">
5901828Sa.suvorov@f5.com<para>
5911833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
5921833Sartem.konev@nginx.cominstallation.
5931825Sthresh@nginx.com</para>
5941825Sthresh@nginx.com</change>
5951825Sthresh@nginx.com
5961811Smax.romanov@nginx.com<change type="bugfix">
5971811Smax.romanov@nginx.com<para>
5981812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
5991812Svbart@nginx.comappeared in 1.17.0.
6001812Svbart@nginx.com</para>
6011812Svbart@nginx.com</change>
6021812Svbart@nginx.com
6031812Svbart@nginx.com<change type="bugfix">
6041812Svbart@nginx.com<para>
6051833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
6061812Svbart@nginx.comappeared in 1.6.
6071812Svbart@nginx.com</para>
6081812Svbart@nginx.com</change>
6091812Svbart@nginx.com
6101812Svbart@nginx.com<change type="bugfix">
6111812Svbart@nginx.com<para>
6121833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
6131832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
6141832Smax.romanov@nginx.com</para>
6151832Smax.romanov@nginx.com</change>
6161832Smax.romanov@nginx.com
6171832Smax.romanov@nginx.com<change type="bugfix">
6181832Smax.romanov@nginx.com<para>
6191833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
6201811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
6211811Smax.romanov@nginx.com</para>
6221811Smax.romanov@nginx.com</change>
6231806Svbart@nginx.com
6241813Svbart@nginx.com<change type="bugfix">
6251813Svbart@nginx.com<para>
6261813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
6271813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
6281813Svbart@nginx.com</para>
6291813Svbart@nginx.com</change>
6301813Svbart@nginx.com
6311814Svbart@nginx.com<change type="bugfix">
6321814Svbart@nginx.com<para>
6331820Svbart@nginx.comthe controller process could crash while requesting information about a
6341820Svbart@nginx.comcertificate with a non-DNS SAN entry.
6351820Svbart@nginx.com</para>
6361820Svbart@nginx.com</change>
6371820Svbart@nginx.com
6381820Svbart@nginx.com<change type="bugfix">
6391820Svbart@nginx.com<para>
6401822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
6411833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
6421822Svbart@nginx.com</para>
6431822Svbart@nginx.com</change>
6441822Svbart@nginx.com
6451822Svbart@nginx.com<change type="bugfix">
6461822Svbart@nginx.com<para>
6471833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
6481833Sartem.konev@nginx.comclass.
6491814Svbart@nginx.com</para>
6501814Svbart@nginx.com</change>
6511814Svbart@nginx.com
6521815Svbart@nginx.com<change type="bugfix">
6531815Svbart@nginx.com<para>
6541815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
6551815Svbart@nginx.comappeared in 1.22.0.
6561815Svbart@nginx.com</para>
6571815Svbart@nginx.com</change>
6581815Svbart@nginx.com
6591806Svbart@nginx.com</changes>
6601806Svbart@nginx.com
6611806Svbart@nginx.com
6621798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
6631798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
6641798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6651798Sdefan@nginx.com
6661798Sdefan@nginx.com<change>
6671798Sdefan@nginx.com<para>
6681798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
6691798Sdefan@nginx.com</para>
6701798Sdefan@nginx.com</change>
6711798Sdefan@nginx.com
6721798Sdefan@nginx.com</changes>
6731798Sdefan@nginx.com
6741798Sdefan@nginx.com
6751763Sdefan@nginx.com<changes apply="unit-php
6761763Sdefan@nginx.com                unit-python unit-python2.7
6771763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6781763Sdefan@nginx.com                unit-python3.8
6791763Sdefan@nginx.com                unit-go
6801763Sdefan@nginx.com                unit-perl
6811763Sdefan@nginx.com                unit-ruby
6821763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
6831763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
6841763Sdefan@nginx.com         ver="1.22.0" rev="1"
6851793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
6861763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6871763Sdefan@nginx.com
6881763Sdefan@nginx.com<change>
6891763Sdefan@nginx.com<para>
6901763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
6911763Sdefan@nginx.com</para>
6921763Sdefan@nginx.com</change>
6931763Sdefan@nginx.com
6941763Sdefan@nginx.com</changes>
6951763Sdefan@nginx.com
6961763Sdefan@nginx.com
6971727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
6981793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
6991727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7001727Svbart@nginx.com
7011759Svbart@nginx.com<change type="feature">
7021759Svbart@nginx.com<para>
7031792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
7041792Svbart@nginx.comcompliant with Stream API.
7051759Svbart@nginx.com</para>
7061759Svbart@nginx.com</change>
7071759Svbart@nginx.com
7081766Smax.romanov@nginx.com<change type="feature">
7091766Smax.romanov@nginx.com<para>
7101792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
7111792Svbart@nginx.comapps.
7121732Svbart@nginx.com</para>
7131732Svbart@nginx.com</change>
7141732Svbart@nginx.com
7151733Svbart@nginx.com<change type="bugfix">
7161733Svbart@nginx.com<para>
7171792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
7181792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
7191754Smax.romanov@nginx.com</para>
7201754Smax.romanov@nginx.com</change>
7211754Smax.romanov@nginx.com
7221755Smax.romanov@nginx.com<change type="bugfix">
7231755Smax.romanov@nginx.com<para>
7241790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
7251755Smax.romanov@nginx.comappeared in 1.19.0.
7261755Smax.romanov@nginx.com</para>
7271755Smax.romanov@nginx.com</change>
7281755Smax.romanov@nginx.com
7291756Smax.romanov@nginx.com<change type="bugfix">
7301756Smax.romanov@nginx.com<para>
7311790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
7321790Sartem.konev@nginx.comappeared in 1.19.0.
7331756Smax.romanov@nginx.com</para>
7341756Smax.romanov@nginx.com</change>
7351756Smax.romanov@nginx.com
7361760Smax.romanov@nginx.com<change type="bugfix">
7371760Smax.romanov@nginx.com<para>
7381792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
7391792Svbart@nginx.com</para>
7401792Svbart@nginx.com</change>
7411792Svbart@nginx.com
7421792Svbart@nginx.com<change type="bugfix">
7431792Svbart@nginx.com<para>
7441792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
7451792Svbart@nginx.commissing in the PHP module.
7461792Svbart@nginx.com</para>
7471792Svbart@nginx.com</change>
7481792Svbart@nginx.com
7491792Svbart@nginx.com<change type="bugfix">
7501792Svbart@nginx.com<para>
7511792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
7521792Svbart@nginx.com</para>
7531792Svbart@nginx.com</change>
7541792Svbart@nginx.com
7551792Svbart@nginx.com<change type="bugfix">
7561792Svbart@nginx.com<para>
7571792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
7581792Svbart@nginx.com</para>
7591792Svbart@nginx.com</change>
7601792Svbart@nginx.com
7611792Svbart@nginx.com<change type="bugfix">
7621792Svbart@nginx.com<para>
7631792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
7641792Svbart@nginx.comthe bug had appeared in 1.21.0.
7651760Smax.romanov@nginx.com</para>
7661760Smax.romanov@nginx.com</change>
7671760Smax.romanov@nginx.com
7681780Smax.romanov@nginx.com<change type="bugfix">
7691780Smax.romanov@nginx.com<para>
7701790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
7711790Sartem.konev@nginx.comWebSocket.
7721780Smax.romanov@nginx.com</para>
7731780Smax.romanov@nginx.com</change>
7741780Smax.romanov@nginx.com
7751789Smax.romanov@nginx.com<change type="bugfix">
7761789Smax.romanov@nginx.com<para>
7771789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
7781789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
7791789Smax.romanov@nginx.com</para>
7801789Smax.romanov@nginx.com</change>
7811789Smax.romanov@nginx.com
7821727Svbart@nginx.com</changes>
7831727Svbart@nginx.com
7841727Svbart@nginx.com
7851722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
7861722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7871722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7881722Svbart@nginx.com
7891722Svbart@nginx.com<change>
7901722Svbart@nginx.com<para>
7911722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
7921722Svbart@nginx.com</para>
7931722Svbart@nginx.com</change>
7941722Svbart@nginx.com
7951722Svbart@nginx.com</changes>
7961722Svbart@nginx.com
7971722Svbart@nginx.com
7981722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
7991722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
8001722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8011722Svbart@nginx.com
8021722Svbart@nginx.com<change>
8031722Svbart@nginx.com<para>
8041722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
8051722Svbart@nginx.com</para>
8061722Svbart@nginx.com</change>
8071722Svbart@nginx.com
8081722Svbart@nginx.com</changes>
8091722Svbart@nginx.com
8101722Svbart@nginx.com
8111722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
8121722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
8131722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8141722Svbart@nginx.com
8151722Svbart@nginx.com<change>
8161722Svbart@nginx.com<para>
8171722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
8181722Svbart@nginx.com</para>
8191722Svbart@nginx.com</change>
8201722Svbart@nginx.com
8211722Svbart@nginx.com</changes>
8221722Svbart@nginx.com
8231722Svbart@nginx.com
8241722Svbart@nginx.com<changes apply="unit-php
8251722Svbart@nginx.com                unit-python unit-python2.7
8261722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8271722Svbart@nginx.com                unit-python3.8
8281722Svbart@nginx.com                unit-go
8291722Svbart@nginx.com                unit-perl
8301722Svbart@nginx.com                unit-ruby
8311722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8321722Svbart@nginx.com         ver="1.21.0" rev="1"
8331722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
8341722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8351722Svbart@nginx.com
8361722Svbart@nginx.com<change>
8371722Svbart@nginx.com<para>
8381722Svbart@nginx.comNGINX Unit updated to 1.21.0.
8391722Svbart@nginx.com</para>
8401722Svbart@nginx.com</change>
8411722Svbart@nginx.com
8421722Svbart@nginx.com</changes>
8431722Svbart@nginx.com
8441722Svbart@nginx.com
8451722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
8461722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
8471722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8481722Svbart@nginx.com
8491722Svbart@nginx.com<change type="change">
8501722Svbart@nginx.com<para>
8511722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
8521722Svbart@nginx.com</para>
8531722Svbart@nginx.com</change>
8541722Svbart@nginx.com
8551722Svbart@nginx.com<change type="change">
8561722Svbart@nginx.com<para>
8571722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
8581722Svbart@nginx.comnames.
8591722Svbart@nginx.com</para>
8601722Svbart@nginx.com</change>
8611722Svbart@nginx.com
8621722Svbart@nginx.com<change type="change">
8631722Svbart@nginx.com<para>
8641722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
8651722Svbart@nginx.comdefault.
8661722Svbart@nginx.com</para>
8671722Svbart@nginx.com</change>
8681722Svbart@nginx.com
8691722Svbart@nginx.com<change type="feature">
8701722Svbart@nginx.com<para>
8711722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
8721722Svbart@nginx.com</para>
8731722Svbart@nginx.com</change>
8741722Svbart@nginx.com
8751722Svbart@nginx.com<change type="feature">
8761722Svbart@nginx.com<para>
8771722Svbart@nginx.comregular expressions in route matching patterns.
8781722Svbart@nginx.com</para>
8791722Svbart@nginx.com</change>
8801722Svbart@nginx.com
8811722Svbart@nginx.com<change type="feature">
8821722Svbart@nginx.com<para>
8831722Svbart@nginx.comcompatibility with Python 3.9.
8841722Svbart@nginx.com</para>
8851722Svbart@nginx.com</change>
8861722Svbart@nginx.com
8871722Svbart@nginx.com<change type="feature">
8881722Svbart@nginx.com<para>
8891722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
8901722Svbart@nginx.com</para>
8911722Svbart@nginx.com</change>
8921722Svbart@nginx.com
8931722Svbart@nginx.com<change type="feature">
8941722Svbart@nginx.com<para>
8951722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
8961722Svbart@nginx.com</para>
8971722Svbart@nginx.com</change>
8981722Svbart@nginx.com
8991722Svbart@nginx.com<change type="feature">
9001722Svbart@nginx.com<para>
9011722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
9021722Svbart@nginx.comcontinues code execution without holding onto the client connection.
9031722Svbart@nginx.com</para>
9041722Svbart@nginx.com</change>
9051722Svbart@nginx.com
9061722Svbart@nginx.com<change type="feature">
9071722Svbart@nginx.com<para>
9081722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
9091722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
9101722Svbart@nginx.com</para>
9111722Svbart@nginx.com</change>
9121722Svbart@nginx.com
9131722Svbart@nginx.com<change type="feature">
9141722Svbart@nginx.com<para>
9151722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
9161722Svbart@nginx.commounting of eponymous filesystems.
9171722Svbart@nginx.com</para>
9181722Svbart@nginx.com</change>
9191722Svbart@nginx.com
9201722Svbart@nginx.com<change type="bugfix">
9211722Svbart@nginx.com<para>
9221722Svbart@nginx.comthe router process could crash when running Go applications under high load;
9231722Svbart@nginx.comthe bug had appeared in 1.19.0.
9241722Svbart@nginx.com</para>
9251722Svbart@nginx.com</change>
9261722Svbart@nginx.com
9271722Svbart@nginx.com<change type="bugfix">
9281722Svbart@nginx.com<para>
9291722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
9301722Svbart@nginx.com</para>
9311722Svbart@nginx.com</change>
9321722Svbart@nginx.com
9331722Svbart@nginx.com<change type="bugfix">
9341722Svbart@nginx.com<para>
9351722Svbart@nginx.comvarious compatibility issues in Java applications.
9361722Svbart@nginx.com</para>
9371722Svbart@nginx.com</change>
9381722Svbart@nginx.com
9391722Svbart@nginx.com<change type="bugfix">
9401722Svbart@nginx.com<para>
9411722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
9421722Svbart@nginx.comuse "rootfs" isolation.
9431722Svbart@nginx.com</para>
9441722Svbart@nginx.com</change>
9451722Svbart@nginx.com
9461722Svbart@nginx.com</changes>
9471722Svbart@nginx.com
9481722Svbart@nginx.com
9491330Svbart@nginx.com<changes apply="unit-php
9501330Svbart@nginx.com                unit-python unit-python2.7
9511330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9521330Svbart@nginx.com                unit-python3.8
9531330Svbart@nginx.com                unit-go
9541330Svbart@nginx.com                unit-perl
9551330Svbart@nginx.com                unit-ruby
9561330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9571640Svbart@nginx.com         ver="1.20.0" rev="1"
9581640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
9591640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9601640Svbart@nginx.com
9611640Svbart@nginx.com<change>
9621640Svbart@nginx.com<para>
9631640Svbart@nginx.comNGINX Unit updated to 1.20.0.
9641640Svbart@nginx.com</para>
9651640Svbart@nginx.com</change>
9661640Svbart@nginx.com
9671640Svbart@nginx.com</changes>
9681640Svbart@nginx.com
9691640Svbart@nginx.com
9701640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
9711640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
9721640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9731640Svbart@nginx.com
9741640Svbart@nginx.com<change type="change">
9751640Svbart@nginx.com<para>
9761640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
9771640Svbart@nginx.comextensions from the host system.
9781640Svbart@nginx.com</para>
9791640Svbart@nginx.com</change>
9801640Svbart@nginx.com
9811640Svbart@nginx.com<change type="change">
9821640Svbart@nginx.com<para>
9831640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
9841640Svbart@nginx.com</para>
9851640Svbart@nginx.com</change>
9861640Svbart@nginx.com
9871643Svbart@nginx.com<change type="change">
9881643Svbart@nginx.com<para>
9891643Svbart@nginx.comfunctional tests migrated to the pytest framework.
9901643Svbart@nginx.com</para>
9911643Svbart@nginx.com</change>
9921643Svbart@nginx.com
9931640Svbart@nginx.com<change type="feature">
9941640Svbart@nginx.com<para>
9951640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
9961640Svbart@nginx.cominterface.
9971640Svbart@nginx.com</para>
9981640Svbart@nginx.com</change>
9991640Svbart@nginx.com
10001640Svbart@nginx.com<change type="feature">
10011640Svbart@nginx.com<para>
10021640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
10031640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1