xref: /unit/docs/changes.xml (revision 2129)
1369Sdefan@nginx.com<?xml version="1.0" ?>
2369Sdefan@nginx.com<!DOCTYPE change_log SYSTEM "changes.dtd" >
3369Sdefan@nginx.com
4369Sdefan@nginx.com
5369Sdefan@nginx.com<change_log title="unit">
6369Sdefan@nginx.com
7369Sdefan@nginx.com
82029SN/A<changes apply="unit-php
92029SN/A                unit-python unit-python2.7
102029SN/A                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
112029SN/A                unit-python3.8 unit-python3.9 unit-python3.10
122029SN/A                unit-go
132029SN/A                unit-perl
142029SN/A                unit-ruby
152029SN/A                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
162029SN/A                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
17*2129Szelenkov@nginx.com         ver="1.28.0" rev="1"
18*2129Szelenkov@nginx.com         date="" time=""
19*2129Szelenkov@nginx.com         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
20*2129Szelenkov@nginx.com
21*2129Szelenkov@nginx.com<change>
22*2129Szelenkov@nginx.com<para>
23*2129Szelenkov@nginx.comNGINX Unit updated to 1.28.0.
24*2129Szelenkov@nginx.com</para>
25*2129Szelenkov@nginx.com</change>
26*2129Szelenkov@nginx.com
27*2129Szelenkov@nginx.com</changes>
28*2129Szelenkov@nginx.com
29*2129Szelenkov@nginx.com
30*2129Szelenkov@nginx.com<changes apply="unit" ver="1.28.0" rev="1"
31*2129Szelenkov@nginx.com         date="" time=""
32*2129Szelenkov@nginx.com         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
33*2129Szelenkov@nginx.com
34*2129Szelenkov@nginx.com</changes>
35*2129Szelenkov@nginx.com
36*2129Szelenkov@nginx.com
37*2129Szelenkov@nginx.com<changes apply="unit-php
38*2129Szelenkov@nginx.com                unit-python unit-python2.7
39*2129Szelenkov@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
40*2129Szelenkov@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
41*2129Szelenkov@nginx.com                unit-go
42*2129Szelenkov@nginx.com                unit-perl
43*2129Szelenkov@nginx.com                unit-ruby
44*2129Szelenkov@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
45*2129Szelenkov@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
462012Svbart@nginx.com         ver="1.27.0" rev="1"
472127Szelenkov@nginx.com         date="2022-06-02" time="18:00:00 +0300"
482012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
492012Svbart@nginx.com
502012Svbart@nginx.com<change>
512012Svbart@nginx.com<para>
522012Svbart@nginx.comNGINX Unit updated to 1.27.0.
532012Svbart@nginx.com</para>
542012Svbart@nginx.com</change>
552012Svbart@nginx.com
562012Svbart@nginx.com</changes>
572012Svbart@nginx.com
582012Svbart@nginx.com
592012Svbart@nginx.com<changes apply="unit" ver="1.27.0" rev="1"
602127Szelenkov@nginx.com         date="2022-06-02" time="18:00:00 +0300"
612012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
622012Svbart@nginx.com
632072Sz.hong@f5.com<change type="feature">
642072Sz.hong@f5.com<para>
652108Salx.manpages@gmail.comability to specify a custom index file name when serving static files.
662108Salx.manpages@gmail.com</para>
672108Salx.manpages@gmail.com</change>
682108Salx.manpages@gmail.com
692108Salx.manpages@gmail.com<change type="feature">
702108Salx.manpages@gmail.com<para>
712081Salx.manpages@gmail.comvariables support in the "location" option of the "return" action.
722081Salx.manpages@gmail.com</para>
732081Salx.manpages@gmail.com</change>
742081Salx.manpages@gmail.com
752081Salx.manpages@gmail.com<change type="feature">
762081Salx.manpages@gmail.com<para>
772113Sartem.konev@nginx.comsupport empty strings in the "location" option of the "return" action.
782113Sartem.konev@nginx.com</para>
792113Sartem.konev@nginx.com</change>
802113Sartem.konev@nginx.com
812113Sartem.konev@nginx.com<change type="feature">
822113Sartem.konev@nginx.com<para>
832113Sartem.konev@nginx.comadded a new variable, $request_uri, that includes both the path and the query
842113Sartem.konev@nginx.comparts as per RFC 3986, sections 3-4.
852113Sartem.konev@nginx.com</para>
862113Sartem.konev@nginx.com</change>
872113Sartem.konev@nginx.com
882113Sartem.konev@nginx.com<change type="feature">
892113Sartem.konev@nginx.com<para>
902113Sartem.konev@nginx.comRuby Rack environment parameter "SCRIPT_NAME" support.
912110Salx.manpages@gmail.com</para>
922110Salx.manpages@gmail.com</change>
932110Salx.manpages@gmail.com
942110Salx.manpages@gmail.com<change type="feature">
952110Salx.manpages@gmail.com<para>
962072Sz.hong@f5.comcompatibility with GCC 12.
972072Sz.hong@f5.com</para>
982072Sz.hong@f5.com</change>
992072Sz.hong@f5.com
1002060Smax.romanov@nginx.com<change type="bugfix">
1012060Smax.romanov@nginx.com<para>
1022093Sz.hong@f5.comRuby Sinatra applications don't work without custom logging.
1032093Sz.hong@f5.com</para>
1042093Sz.hong@f5.com</change>
1052093Sz.hong@f5.com
1062093Sz.hong@f5.com<change type="bugfix">
1072093Sz.hong@f5.com<para>
1082113Sartem.konev@nginx.comthe controller process could crash when a chain of more than four
1092069Sz.hong@f5.comcertificates was uploaded.
1102069Sz.hong@f5.com</para>
1112069Sz.hong@f5.com</change>
1122069Sz.hong@f5.com
1132069Sz.hong@f5.com<change type="bugfix">
1142069Sz.hong@f5.com<para>
1152060Smax.romanov@nginx.comsome Perl applications failed to process the request body, notably with Plack.
1162060Smax.romanov@nginx.com</para>
1172060Smax.romanov@nginx.com</change>
1182060Smax.romanov@nginx.com
1192061Smax.romanov@nginx.com<change type="bugfix">
1202061Smax.romanov@nginx.com<para>
1212061Smax.romanov@nginx.comsome Spring Boot applications failed to start, notably with Grails.
1222061Smax.romanov@nginx.com</para>
1232061Smax.romanov@nginx.com</change>
1242061Smax.romanov@nginx.com
1252067Smax.romanov@nginx.com<change type="bugfix">
1262067Smax.romanov@nginx.com<para>
1272067Smax.romanov@nginx.comincorrect Python protocol auto detection (ASGI or WSGI) for native callable
1282067Smax.romanov@nginx.comobject, notably with Falcon.
1292067Smax.romanov@nginx.com</para>
1302067Smax.romanov@nginx.com</change>
1312067Smax.romanov@nginx.com
1322117Szelenkov@nginx.com<change type="bugfix">
1332117Szelenkov@nginx.com<para>
1342117Szelenkov@nginx.comECMAScript modules did not work with the recent Node.js versions.
1352117Szelenkov@nginx.com</para>
1362117Szelenkov@nginx.com</change>
1372117Szelenkov@nginx.com
1382050Svbart@nginx.com</changes>
1392050Svbart@nginx.com
1402050Svbart@nginx.com
1412050Svbart@nginx.com<changes apply="unit-php
1422050Svbart@nginx.com                unit-python unit-python2.7
1432050Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1442050Svbart@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
1452050Svbart@nginx.com                unit-go
1462050Svbart@nginx.com                unit-perl
1472050Svbart@nginx.com                unit-ruby
1482050Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1492050Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
1502029SN/A         ver="1.26.1" rev="1"
1512045SN/A         date="2021-12-02" time="18:00:00 +0300"
1522029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1532029SN/A
1542029SN/A<change>
1552029SN/A<para>
1562029SN/ANGINX Unit updated to 1.26.1.
1572029SN/A</para>
1582029SN/A</change>
1592029SN/A
1602029SN/A</changes>
1612029SN/A
1622029SN/A
1632029SN/A<changes apply="unit" ver="1.26.1" rev="1"
1642045SN/A         date="2021-12-02" time="18:00:00 +0300"
1652029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1662029SN/A
1672033SN/A<change type="bugfix">
1682033SN/A<para>
1692044SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had
1702044SN/Aappeared in 1.26.0.
1712033SN/A</para>
1722033SN/A</change>
1732033SN/A
1742034SN/A<change type="bugfix">
1752034SN/A<para>
1762044SN/Aa prototype process could crash on an application process exit; the bug had
1772034SN/Aappeared in 1.26.0.
1782034SN/A</para>
1792034SN/A</change>
1802034SN/A
1812035SN/A<change type="bugfix">
1822035SN/A<para>
1832044SN/Athe router process crashed on reconfiguration if "access_log" was configured
1842044SN/Awithout listeners.
1852044SN/A</para>
1862044SN/A</change>
1872044SN/A
1882044SN/A<change type="bugfix">
1892044SN/A<para>
1902035SN/Aa segmentation fault occurred in the PHP module if chdir() or
1912035SN/Afastcgi_finish_request() was called in the OPcache preloading script.
1922035SN/A</para>
1932035SN/A</change>
1942035SN/A
1952040SN/A<change type="bugfix">
1962040SN/A<para>
1972041SN/Afatal errors on DragonFly BSD; the bug had appeared in 1.26.0.
1982041SN/A</para>
1992041SN/A</change>
2002041SN/A
2012029SN/A</changes>
2022029SN/A
2032029SN/A
2041973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1"
2052007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2061973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2071973Sdefan@nginx.com
2081973Sdefan@nginx.com<change>
2091973Sdefan@nginx.com<para>
2101973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit.
2111973Sdefan@nginx.com</para>
2121973Sdefan@nginx.com</change>
2131973Sdefan@nginx.com
2141973Sdefan@nginx.com</changes>
2151973Sdefan@nginx.com
2161973Sdefan@nginx.com
2171973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1"
2182007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2191973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2201973Sdefan@nginx.com
2211973Sdefan@nginx.com<change>
2221973Sdefan@nginx.com<para>
2231973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit.
2241973Sdefan@nginx.com</para>
2251973Sdefan@nginx.com</change>
2261973Sdefan@nginx.com
2271973Sdefan@nginx.com</changes>
2281973Sdefan@nginx.com
2291973Sdefan@nginx.com
2301896Svbart@nginx.com<changes apply="unit-php
2311896Svbart@nginx.com                unit-python unit-python2.7
2321896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2331896Svbart@nginx.com                unit-python3.8 unit-python3.9
2341896Svbart@nginx.com                unit-go
2351896Svbart@nginx.com                unit-perl
2361896Svbart@nginx.com                unit-ruby
2371896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2381896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
2391951Svbart@nginx.com         ver="1.26.0" rev="1"
2402007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2411951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2421951Svbart@nginx.com
2431951Svbart@nginx.com<change>
2441951Svbart@nginx.com<para>
2451951Svbart@nginx.comNGINX Unit updated to 1.26.0.
2461951Svbart@nginx.com</para>
2471951Svbart@nginx.com</change>
2481951Svbart@nginx.com
2491951Svbart@nginx.com</changes>
2501951Svbart@nginx.com
2511951Svbart@nginx.com
2521951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
2532007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2541951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2551951Svbart@nginx.com
2561960Sz.hong@f5.com<change type="change">
2571960Sz.hong@f5.com<para>
2581960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
2591960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
2601960Sz.hong@f5.com</para>
2611960Sz.hong@f5.com</change>
2621960Sz.hong@f5.com
2631960Sz.hong@f5.com<change type="feature">
2641960Sz.hong@f5.com<para>
2652006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior
2662006Svbart@nginx.comwhen updating from previous versions.
2672006Svbart@nginx.com</para>
2682006Svbart@nginx.com</change>
2692006Svbart@nginx.com
2702006Svbart@nginx.com<change type="feature">
2712006Svbart@nginx.com<para>
2721960Sz.hong@f5.comvariables support in the "share" option.
2731960Sz.hong@f5.com</para>
2741960Sz.hong@f5.com</change>
2751960Sz.hong@f5.com
2761959Sz.hong@f5.com<change type="feature">
2771959Sz.hong@f5.com<para>
2781961Sz.hong@f5.commultiple paths in the "share" option.
2791961Sz.hong@f5.com</para>
2801961Sz.hong@f5.com</change>
2811961Sz.hong@f5.com
2821961Sz.hong@f5.com<change type="feature">
2831961Sz.hong@f5.com<para>
2841959Sz.hong@f5.comvariables support in the "chroot" option.
2851959Sz.hong@f5.com</para>
2861959Sz.hong@f5.com</change>
2871959Sz.hong@f5.com
2881969Sz.hong@f5.com<change type="feature">
2891969Sz.hong@f5.com<para>
2902006Svbart@nginx.comPHP opcache is shared between application processes.
2911969Sz.hong@f5.com</para>
2921969Sz.hong@f5.com</change>
2931969Sz.hong@f5.com
2941991Sz.hong@f5.com<change type="feature">
2951991Sz.hong@f5.com<para>
2961991Sz.hong@f5.comrequest routing by the query string.
2971991Sz.hong@f5.com</para>
2981991Sz.hong@f5.com</change>
2991991Sz.hong@f5.com
3001955Smax.romanov@nginx.com<change type="bugfix">
3011955Smax.romanov@nginx.com<para>
3022006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached
3032006Svbart@nginx.comby asynchronous or multithreaded apps.
3041955Smax.romanov@nginx.com</para>
3051955Smax.romanov@nginx.com</change>
3061955Smax.romanov@nginx.com
3071956Smax.romanov@nginx.com<change type="bugfix">
3081956Smax.romanov@nginx.com<para>
3091956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
3101956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
3111956Smax.romanov@nginx.com</para>
3121956Smax.romanov@nginx.com</change>
3131956Smax.romanov@nginx.com
3141992Smax.romanov@nginx.com<change type="bugfix">
3151992Smax.romanov@nginx.com<para>
3162006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35.
3171992Smax.romanov@nginx.com</para>
3181992Smax.romanov@nginx.com</change>
3191992Smax.romanov@nginx.com
3201951Svbart@nginx.com</changes>
3211951Svbart@nginx.com
3221951Svbart@nginx.com
3231951Svbart@nginx.com<changes apply="unit-php
3241951Svbart@nginx.com                unit-python unit-python2.7
3251951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3261951Svbart@nginx.com                unit-python3.8 unit-python3.9
3271951Svbart@nginx.com                unit-go
3281951Svbart@nginx.com                unit-perl
3291951Svbart@nginx.com                unit-ruby
3301951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3311951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
3321896Svbart@nginx.com         ver="1.25.0" rev="1"
3331945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
3341896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3351896Svbart@nginx.com
3361896Svbart@nginx.com<change>
3371896Svbart@nginx.com<para>
3381896Svbart@nginx.comNGINX Unit updated to 1.25.0.
3391896Svbart@nginx.com</para>
3401896Svbart@nginx.com</change>
3411896Svbart@nginx.com
3421896Svbart@nginx.com</changes>
3431896Svbart@nginx.com
3441896Svbart@nginx.com
3451896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
3461945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
3471896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3481896Svbart@nginx.com
3491910So.canty@f5.com<change type="feature">
3501910So.canty@f5.com<para>
3511944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
3521942Sa.suvorov@f5.com</para>
3531942Sa.suvorov@f5.com</change>
3541942Sa.suvorov@f5.com
3551942Sa.suvorov@f5.com<change type="feature">
3561942Sa.suvorov@f5.com<para>
3571920Sa.suvorov@f5.comTLS sessions cache.
3581920Sa.suvorov@f5.com</para>
3591920Sa.suvorov@f5.com</change>
3601920Sa.suvorov@f5.com
3611920Sa.suvorov@f5.com<change type="feature">
3621920Sa.suvorov@f5.com<para>
3631944Svbart@nginx.comTLS session tickets.
3641910So.canty@f5.com</para>
3651910So.canty@f5.com</change>
3661910So.canty@f5.com
3671926Smax.romanov@nginx.com<change type="feature">
3681926Smax.romanov@nginx.com<para>
3691926Smax.romanov@nginx.comapplication restart control.
3701926Smax.romanov@nginx.com</para>
3711926Smax.romanov@nginx.com</change>
3721926Smax.romanov@nginx.com
3731936So.canty@f5.com<change type="feature">
3741936So.canty@f5.com<para>
3751944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
3761936So.canty@f5.com</para>
3771936So.canty@f5.com</change>
3781936So.canty@f5.com
3791907Smax.romanov@nginx.com<change type="bugfix">
3801907Smax.romanov@nginx.com<para>
3811944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
3821944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
3831921Sa.suvorov@f5.com</para>
3841921Sa.suvorov@f5.com</change>
3851921Sa.suvorov@f5.com
3861921Sa.suvorov@f5.com<change type="bugfix">
3871921Sa.suvorov@f5.com<para>
3881944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
3891944Svbart@nginx.combundles in a listener if the client did not use SNI.
3901907Smax.romanov@nginx.com</para>
3911907Smax.romanov@nginx.com</change>
3921907Smax.romanov@nginx.com
3931907Smax.romanov@nginx.com<change type="bugfix">
3941907Smax.romanov@nginx.com<para>
3951950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
3961915Smax.romanov@nginx.comreconfiguration.
3971915Smax.romanov@nginx.com</para>
3981915Smax.romanov@nginx.com</change>
3991915Smax.romanov@nginx.com
4001915Smax.romanov@nginx.com<change type="bugfix">
4011915Smax.romanov@nginx.com<para>
4021944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
4031944Svbart@nginx.comframework.
4041944Svbart@nginx.com</para>
4051944Svbart@nginx.com</change>
4061944Svbart@nginx.com
4071944Svbart@nginx.com<change type="bugfix">
4081944Svbart@nginx.com<para>
4091944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
4101944Svbart@nginx.comstopped or crashed.
4111907Smax.romanov@nginx.com</para>
4121907Smax.romanov@nginx.com</change>
4131907Smax.romanov@nginx.com
4141909So.canty@f5.com<change type="bugfix">
4151909So.canty@f5.com<para>
4161909So.canty@f5.comthe controller or router process could crash if the configuration contained
4171909So.canty@f5.coma full-form IPv6 in a listener address.
4181909So.canty@f5.com</para>
4191909So.canty@f5.com</change>
4201909So.canty@f5.com
4211916Smax.romanov@nginx.com<change type="bugfix">
4221916Smax.romanov@nginx.com<para>
4231929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
4241929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
4251929Sz.hong@f5.com</para>
4261929Sz.hong@f5.com</change>
4271929Sz.hong@f5.com
4281930So.canty@f5.com<change type="bugfix">
4291930So.canty@f5.com<para>
4301944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
4311944Svbart@nginx.comor destination address patterns.
4321930So.canty@f5.com</para>
4331930So.canty@f5.com</change>
4341930So.canty@f5.com
4351896Svbart@nginx.com</changes>
4361896Svbart@nginx.com
4371896Svbart@nginx.com
4381887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
4391891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4401887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4411887Sdefan@nginx.com
4421887Sdefan@nginx.com<change>
4431887Sdefan@nginx.com<para>
4441887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
4451887Sdefan@nginx.com</para>
4461887Sdefan@nginx.com</change>
4471887Sdefan@nginx.com
4481887Sdefan@nginx.com</changes>
4491887Sdefan@nginx.com
4501887Sdefan@nginx.com
4511887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
4521891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4531887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4541887Sdefan@nginx.com
4551887Sdefan@nginx.com<change>
4561887Sdefan@nginx.com<para>
4571887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
4581887Sdefan@nginx.com</para>
4591887Sdefan@nginx.com</change>
4601887Sdefan@nginx.com
4611887Sdefan@nginx.com</changes>
4621887Sdefan@nginx.com
4631887Sdefan@nginx.com
4641834Svbart@nginx.com<changes apply="unit-php
4651834Svbart@nginx.com                unit-python unit-python2.7
4661834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4671834Svbart@nginx.com                unit-python3.8 unit-python3.9
4681834Svbart@nginx.com                unit-go
4691834Svbart@nginx.com                unit-perl
4701834Svbart@nginx.com                unit-ruby
4711834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4721834Svbart@nginx.com                unit-jsc14 unit-jsc15"
4731839Svbart@nginx.com         ver="1.24.0" rev="1"
4741891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4751839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4761839Svbart@nginx.com
4771839Svbart@nginx.com<change>
4781839Svbart@nginx.com<para>
4791839Svbart@nginx.comNGINX Unit updated to 1.24.0.
4801839Svbart@nginx.com</para>
4811839Svbart@nginx.com</change>
4821839Svbart@nginx.com
4831839Svbart@nginx.com</changes>
4841839Svbart@nginx.com
4851839Svbart@nginx.com
4861839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
4871891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4881839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4891839Svbart@nginx.com
4901882So.canty@f5.com<change type="change">
4911882So.canty@f5.com<para>
4921882So.canty@f5.comPHP added to the default MIME type list.
4931882So.canty@f5.com</para>
4941882So.canty@f5.com</change>
4951882So.canty@f5.com
4961855Sz.hong@f5.com<change type="feature">
4971855Sz.hong@f5.com<para>
4981885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
4991885Sa.suvorov@f5.com</para>
5001885Sa.suvorov@f5.com</change>
5011885Sa.suvorov@f5.com
5021885Sa.suvorov@f5.com<change type="feature">
5031885Sa.suvorov@f5.com<para>
5041890Svbart@nginx.comthe ability to limit static file serving by MIME types.
5051890Svbart@nginx.com</para>
5061890Svbart@nginx.com</change>
5071890Svbart@nginx.com
5081890Svbart@nginx.com<change type="feature">
5091890Svbart@nginx.com<para>
5101890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
5111890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
5121872So.canty@f5.com</para>
5131872So.canty@f5.com</change>
5141872So.canty@f5.com
5151872So.canty@f5.com<change type="feature">
5161872So.canty@f5.com<para>
5171889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
5181889Sartem.konev@nginx.comNode.js.
5191865So.canty@f5.com</para>
5201865So.canty@f5.com</change>
5211865So.canty@f5.com
5221865So.canty@f5.com<change type="feature">
5231865So.canty@f5.com<para>
5241890Svbart@nginx.commultiple "targets" in Python applications.
5251855Sz.hong@f5.com</para>
5261855Sz.hong@f5.com</change>
5271855Sz.hong@f5.com
5281870So.canty@f5.com<change type="feature">
5291870So.canty@f5.com<para>
5301870So.canty@f5.comcompatibility with Ruby 3.0.
5311870So.canty@f5.com</para>
5321870So.canty@f5.com</change>
5331870So.canty@f5.com
5341861Svbart@nginx.com<change type="bugfix">
5351861Svbart@nginx.com<para>
5361889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
5371884Sa.suvorov@f5.com</para>
5381884Sa.suvorov@f5.com</change>
5391884Sa.suvorov@f5.com
5401884Sa.suvorov@f5.com<change type="bugfix">
5411884Sa.suvorov@f5.com<para>
5421861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
5431861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
5441861Svbart@nginx.com</para>
5451861Svbart@nginx.com</change>
5461861Svbart@nginx.com
5471839Svbart@nginx.com</changes>
5481839Svbart@nginx.com
5491839Svbart@nginx.com
5501839Svbart@nginx.com<changes apply="unit-php
5511839Svbart@nginx.com                unit-python unit-python2.7
5521839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5531839Svbart@nginx.com                unit-python3.8 unit-python3.9
5541839Svbart@nginx.com                unit-go
5551839Svbart@nginx.com                unit-perl
5561839Svbart@nginx.com                unit-ruby
5571839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
5581839Svbart@nginx.com                unit-jsc14 unit-jsc15"
5591834Svbart@nginx.com         ver="1.23.0" rev="1"
5601834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
5611834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5621834Svbart@nginx.com
5631834Svbart@nginx.com<change>
5641834Svbart@nginx.com<para>
5651834Svbart@nginx.comNGINX Unit updated to 1.23.0.
5661834Svbart@nginx.com</para>
5671834Svbart@nginx.com</change>
5681834Svbart@nginx.com
5691834Svbart@nginx.com</changes>
5701834Svbart@nginx.com
5711834Svbart@nginx.com
5721806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
5731834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
5741806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5751806Svbart@nginx.com
5761825Sthresh@nginx.com<change type="feature">
5771825Sthresh@nginx.com<para>
5781833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
5791828Sa.suvorov@f5.comIndication (SNI) TLS extension.
5801828Sa.suvorov@f5.com</para>
5811828Sa.suvorov@f5.com</change>
5821828Sa.suvorov@f5.com
5831828Sa.suvorov@f5.com<change type="feature">
5841828Sa.suvorov@f5.com<para>
5851833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
5861833Sartem.konev@nginx.cominstallation.
5871825Sthresh@nginx.com</para>
5881825Sthresh@nginx.com</change>
5891825Sthresh@nginx.com
5901811Smax.romanov@nginx.com<change type="bugfix">
5911811Smax.romanov@nginx.com<para>
5921812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
5931812Svbart@nginx.comappeared in 1.17.0.
5941812Svbart@nginx.com</para>
5951812Svbart@nginx.com</change>
5961812Svbart@nginx.com
5971812Svbart@nginx.com<change type="bugfix">
5981812Svbart@nginx.com<para>
5991833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
6001812Svbart@nginx.comappeared in 1.6.
6011812Svbart@nginx.com</para>
6021812Svbart@nginx.com</change>
6031812Svbart@nginx.com
6041812Svbart@nginx.com<change type="bugfix">
6051812Svbart@nginx.com<para>
6061833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
6071832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
6081832Smax.romanov@nginx.com</para>
6091832Smax.romanov@nginx.com</change>
6101832Smax.romanov@nginx.com
6111832Smax.romanov@nginx.com<change type="bugfix">
6121832Smax.romanov@nginx.com<para>
6131833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
6141811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
6151811Smax.romanov@nginx.com</para>
6161811Smax.romanov@nginx.com</change>
6171806Svbart@nginx.com
6181813Svbart@nginx.com<change type="bugfix">
6191813Svbart@nginx.com<para>
6201813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
6211813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
6221813Svbart@nginx.com</para>
6231813Svbart@nginx.com</change>
6241813Svbart@nginx.com
6251814Svbart@nginx.com<change type="bugfix">
6261814Svbart@nginx.com<para>
6271820Svbart@nginx.comthe controller process could crash while requesting information about a
6281820Svbart@nginx.comcertificate with a non-DNS SAN entry.
6291820Svbart@nginx.com</para>
6301820Svbart@nginx.com</change>
6311820Svbart@nginx.com
6321820Svbart@nginx.com<change type="bugfix">
6331820Svbart@nginx.com<para>
6341822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
6351833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
6361822Svbart@nginx.com</para>
6371822Svbart@nginx.com</change>
6381822Svbart@nginx.com
6391822Svbart@nginx.com<change type="bugfix">
6401822Svbart@nginx.com<para>
6411833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
6421833Sartem.konev@nginx.comclass.
6431814Svbart@nginx.com</para>
6441814Svbart@nginx.com</change>
6451814Svbart@nginx.com
6461815Svbart@nginx.com<change type="bugfix">
6471815Svbart@nginx.com<para>
6481815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
6491815Svbart@nginx.comappeared in 1.22.0.
6501815Svbart@nginx.com</para>
6511815Svbart@nginx.com</change>
6521815Svbart@nginx.com
6531806Svbart@nginx.com</changes>
6541806Svbart@nginx.com
6551806Svbart@nginx.com
6561798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
6571798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
6581798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6591798Sdefan@nginx.com
6601798Sdefan@nginx.com<change>
6611798Sdefan@nginx.com<para>
6621798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
6631798Sdefan@nginx.com</para>
6641798Sdefan@nginx.com</change>
6651798Sdefan@nginx.com
6661798Sdefan@nginx.com</changes>
6671798Sdefan@nginx.com
6681798Sdefan@nginx.com
6691763Sdefan@nginx.com<changes apply="unit-php
6701763Sdefan@nginx.com                unit-python unit-python2.7
6711763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6721763Sdefan@nginx.com                unit-python3.8
6731763Sdefan@nginx.com                unit-go
6741763Sdefan@nginx.com                unit-perl
6751763Sdefan@nginx.com                unit-ruby
6761763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
6771763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
6781763Sdefan@nginx.com         ver="1.22.0" rev="1"
6791793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
6801763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6811763Sdefan@nginx.com
6821763Sdefan@nginx.com<change>
6831763Sdefan@nginx.com<para>
6841763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
6851763Sdefan@nginx.com</para>
6861763Sdefan@nginx.com</change>
6871763Sdefan@nginx.com
6881763Sdefan@nginx.com</changes>
6891763Sdefan@nginx.com
6901763Sdefan@nginx.com
6911727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
6921793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
6931727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6941727Svbart@nginx.com
6951759Svbart@nginx.com<change type="feature">
6961759Svbart@nginx.com<para>
6971792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
6981792Svbart@nginx.comcompliant with Stream API.
6991759Svbart@nginx.com</para>
7001759Svbart@nginx.com</change>
7011759Svbart@nginx.com
7021766Smax.romanov@nginx.com<change type="feature">
7031766Smax.romanov@nginx.com<para>
7041792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
7051792Svbart@nginx.comapps.
7061732Svbart@nginx.com</para>
7071732Svbart@nginx.com</change>
7081732Svbart@nginx.com
7091733Svbart@nginx.com<change type="bugfix">
7101733Svbart@nginx.com<para>
7111792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
7121792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
7131754Smax.romanov@nginx.com</para>
7141754Smax.romanov@nginx.com</change>
7151754Smax.romanov@nginx.com
7161755Smax.romanov@nginx.com<change type="bugfix">
7171755Smax.romanov@nginx.com<para>
7181790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
7191755Smax.romanov@nginx.comappeared in 1.19.0.
7201755Smax.romanov@nginx.com</para>
7211755Smax.romanov@nginx.com</change>
7221755Smax.romanov@nginx.com
7231756Smax.romanov@nginx.com<change type="bugfix">
7241756Smax.romanov@nginx.com<para>
7251790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
7261790Sartem.konev@nginx.comappeared in 1.19.0.
7271756Smax.romanov@nginx.com</para>
7281756Smax.romanov@nginx.com</change>
7291756Smax.romanov@nginx.com
7301760Smax.romanov@nginx.com<change type="bugfix">
7311760Smax.romanov@nginx.com<para>
7321792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
7331792Svbart@nginx.com</para>
7341792Svbart@nginx.com</change>
7351792Svbart@nginx.com
7361792Svbart@nginx.com<change type="bugfix">
7371792Svbart@nginx.com<para>
7381792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
7391792Svbart@nginx.commissing in the PHP module.
7401792Svbart@nginx.com</para>
7411792Svbart@nginx.com</change>
7421792Svbart@nginx.com
7431792Svbart@nginx.com<change type="bugfix">
7441792Svbart@nginx.com<para>
7451792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
7461792Svbart@nginx.com</para>
7471792Svbart@nginx.com</change>
7481792Svbart@nginx.com
7491792Svbart@nginx.com<change type="bugfix">
7501792Svbart@nginx.com<para>
7511792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
7521792Svbart@nginx.com</para>
7531792Svbart@nginx.com</change>
7541792Svbart@nginx.com
7551792Svbart@nginx.com<change type="bugfix">
7561792Svbart@nginx.com<para>
7571792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
7581792Svbart@nginx.comthe bug had appeared in 1.21.0.
7591760Smax.romanov@nginx.com</para>
7601760Smax.romanov@nginx.com</change>
7611760Smax.romanov@nginx.com
7621780Smax.romanov@nginx.com<change type="bugfix">
7631780Smax.romanov@nginx.com<para>
7641790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
7651790Sartem.konev@nginx.comWebSocket.
7661780Smax.romanov@nginx.com</para>
7671780Smax.romanov@nginx.com</change>
7681780Smax.romanov@nginx.com
7691789Smax.romanov@nginx.com<change type="bugfix">
7701789Smax.romanov@nginx.com<para>
7711789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
7721789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
7731789Smax.romanov@nginx.com</para>
7741789Smax.romanov@nginx.com</change>
7751789Smax.romanov@nginx.com
7761727Svbart@nginx.com</changes>
7771727Svbart@nginx.com
7781727Svbart@nginx.com
7791722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
7801722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7811722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7821722Svbart@nginx.com
7831722Svbart@nginx.com<change>
7841722Svbart@nginx.com<para>
7851722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
7861722Svbart@nginx.com</para>
7871722Svbart@nginx.com</change>
7881722Svbart@nginx.com
7891722Svbart@nginx.com</changes>
7901722Svbart@nginx.com
7911722Svbart@nginx.com
7921722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
7931722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7941722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7951722Svbart@nginx.com
7961722Svbart@nginx.com<change>
7971722Svbart@nginx.com<para>
7981722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
7991722Svbart@nginx.com</para>
8001722Svbart@nginx.com</change>
8011722Svbart@nginx.com
8021722Svbart@nginx.com</changes>
8031722Svbart@nginx.com
8041722Svbart@nginx.com
8051722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
8061722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
8071722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8081722Svbart@nginx.com
8091722Svbart@nginx.com<change>
8101722Svbart@nginx.com<para>
8111722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
8121722Svbart@nginx.com</para>
8131722Svbart@nginx.com</change>
8141722Svbart@nginx.com
8151722Svbart@nginx.com</changes>
8161722Svbart@nginx.com
8171722Svbart@nginx.com
8181722Svbart@nginx.com<changes apply="unit-php
8191722Svbart@nginx.com                unit-python unit-python2.7
8201722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8211722Svbart@nginx.com                unit-python3.8
8221722Svbart@nginx.com                unit-go
8231722Svbart@nginx.com                unit-perl
8241722Svbart@nginx.com                unit-ruby
8251722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8261722Svbart@nginx.com         ver="1.21.0" rev="1"
8271722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
8281722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8291722Svbart@nginx.com
8301722Svbart@nginx.com<change>
8311722Svbart@nginx.com<para>
8321722Svbart@nginx.comNGINX Unit updated to 1.21.0.
8331722Svbart@nginx.com</para>
8341722Svbart@nginx.com</change>
8351722Svbart@nginx.com
8361722Svbart@nginx.com</changes>
8371722Svbart@nginx.com
8381722Svbart@nginx.com
8391722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
8401722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
8411722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8421722Svbart@nginx.com
8431722Svbart@nginx.com<change type="change">
8441722Svbart@nginx.com<para>
8451722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
8461722Svbart@nginx.com</para>
8471722Svbart@nginx.com</change>
8481722Svbart@nginx.com
8491722Svbart@nginx.com<change type="change">
8501722Svbart@nginx.com<para>
8511722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
8521722Svbart@nginx.comnames.
8531722Svbart@nginx.com</para>
8541722Svbart@nginx.com</change>
8551722Svbart@nginx.com
8561722Svbart@nginx.com<change type="change">
8571722Svbart@nginx.com<para>
8581722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
8591722Svbart@nginx.comdefault.
8601722Svbart@nginx.com</para>
8611722Svbart@nginx.com</change>
8621722Svbart@nginx.com
8631722Svbart@nginx.com<change type="feature">
8641722Svbart@nginx.com<para>
8651722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
8661722Svbart@nginx.com</para>
8671722Svbart@nginx.com</change>
8681722Svbart@nginx.com
8691722Svbart@nginx.com<change type="feature">
8701722Svbart@nginx.com<para>
8711722Svbart@nginx.comregular expressions in route matching patterns.
8721722Svbart@nginx.com</para>
8731722Svbart@nginx.com</change>
8741722Svbart@nginx.com
8751722Svbart@nginx.com<change type="feature">
8761722Svbart@nginx.com<para>
8771722Svbart@nginx.comcompatibility with Python 3.9.
8781722Svbart@nginx.com</para>
8791722Svbart@nginx.com</change>
8801722Svbart@nginx.com
8811722Svbart@nginx.com<change type="feature">
8821722Svbart@nginx.com<para>
8831722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
8841722Svbart@nginx.com</para>
8851722Svbart@nginx.com</change>
8861722Svbart@nginx.com
8871722Svbart@nginx.com<change type="feature">
8881722Svbart@nginx.com<para>
8891722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
8901722Svbart@nginx.com</para>
8911722Svbart@nginx.com</change>
8921722Svbart@nginx.com
8931722Svbart@nginx.com<change type="feature">
8941722Svbart@nginx.com<para>
8951722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
8961722Svbart@nginx.comcontinues code execution without holding onto the client connection.
8971722Svbart@nginx.com</para>
8981722Svbart@nginx.com</change>
8991722Svbart@nginx.com
9001722Svbart@nginx.com<change type="feature">
9011722Svbart@nginx.com<para>
9021722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
9031722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
9041722Svbart@nginx.com</para>
9051722Svbart@nginx.com</change>
9061722Svbart@nginx.com
9071722Svbart@nginx.com<change type="feature">
9081722Svbart@nginx.com<para>
9091722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
9101722Svbart@nginx.commounting of eponymous filesystems.
9111722Svbart@nginx.com</para>
9121722Svbart@nginx.com</change>
9131722Svbart@nginx.com
9141722Svbart@nginx.com<change type="bugfix">
9151722Svbart@nginx.com<para>
9161722Svbart@nginx.comthe router process could crash when running Go applications under high load;
9171722Svbart@nginx.comthe bug had appeared in 1.19.0.
9181722Svbart@nginx.com</para>
9191722Svbart@nginx.com</change>
9201722Svbart@nginx.com
9211722Svbart@nginx.com<change type="bugfix">
9221722Svbart@nginx.com<para>
9231722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
9241722Svbart@nginx.com</para>
9251722Svbart@nginx.com</change>
9261722Svbart@nginx.com
9271722Svbart@nginx.com<change type="bugfix">
9281722Svbart@nginx.com<para>
9291722Svbart@nginx.comvarious compatibility issues in Java applications.
9301722Svbart@nginx.com</para>
9311722Svbart@nginx.com</change>
9321722Svbart@nginx.com
9331722Svbart@nginx.com<change type="bugfix">
9341722Svbart@nginx.com<para>
9351722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
9361722Svbart@nginx.comuse "rootfs" isolation.
9371722Svbart@nginx.com</para>
9381722Svbart@nginx.com</change>
9391722Svbart@nginx.com
9401722Svbart@nginx.com</changes>
9411722Svbart@nginx.com
9421722Svbart@nginx.com
9431330Svbart@nginx.com<changes apply="unit-php
9441330Svbart@nginx.com                unit-python unit-python2.7
9451330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9461330Svbart@nginx.com                unit-python3.8
9471330Svbart@nginx.com                unit-go
9481330Svbart@nginx.com                unit-perl
9491330Svbart@nginx.com                unit-ruby
9501330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9511640Svbart@nginx.com         ver="1.20.0" rev="1"
9521640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
9531640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9541640Svbart@nginx.com
9551640Svbart@nginx.com<change>
9561640Svbart@nginx.com<para>
9571640Svbart@nginx.comNGINX Unit updated to 1.20.0.
9581640Svbart@nginx.com</para>
9591640Svbart@nginx.com</change>
9601640Svbart@nginx.com
9611640Svbart@nginx.com</changes>
9621640Svbart@nginx.com
9631640Svbart@nginx.com
9641640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
9651640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
9661640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9671640Svbart@nginx.com
9681640Svbart@nginx.com<change type="change">
9691640Svbart@nginx.com<para>
9701640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
9711640Svbart@nginx.comextensions from the host system.
9721640Svbart@nginx.com</para>
9731640Svbart@nginx.com</change>
9741640Svbart@nginx.com
9751640Svbart@nginx.com<change type="change">
9761640Svbart@nginx.com<para>
9771640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
9781640Svbart@nginx.com</para>
9791640Svbart@nginx.com</change>
9801640Svbart@nginx.com
9811643Svbart@nginx.com<change type="change">
9821643Svbart@nginx.com<para>
9831643Svbart@nginx.comfunctional tests migrated to the pytest framework.
9841643Svbart@nginx.com</para>
9851643Svbart@nginx.com</change>
9861643Svbart@nginx.com
9871640Svbart@nginx.com<change type="feature">
9881640Svbart@nginx.com<para>
9891640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
9901640Svbart@nginx.cominterface.
9911640Svbart@nginx.com</para>
9921640Svbart@nginx.com</change>
9931640Svbart@nginx.com
9941640Svbart@nginx.com<change type="feature">
9951640Svbart@nginx.com<para>
9961640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
9971640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
9981640Svbart@nginx.comspecification.
9991640Svbart@nginx.com</para>
10001640Svbart@nginx.com</change>
10011640Svbart@nginx.com
10021640