xref: /unit/docs/changes.xml (revision 2069)
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
342060Smax.romanov@nginx.com<change type="bugfix">
352060Smax.romanov@nginx.com<para>
36*2069Sz.hong@f5.comthe controller process could crash when a chain with more than 4
37*2069Sz.hong@f5.comcertificates was uploaded.
38*2069Sz.hong@f5.com</para>
39*2069Sz.hong@f5.com</change>
40*2069Sz.hong@f5.com
41*2069Sz.hong@f5.com<change type="bugfix">
42*2069Sz.hong@f5.com<para>
432060Smax.romanov@nginx.comsome Perl applications failed to process the request body, notably with Plack.
442060Smax.romanov@nginx.com</para>
452060Smax.romanov@nginx.com</change>
462060Smax.romanov@nginx.com
472061Smax.romanov@nginx.com<change type="bugfix">
482061Smax.romanov@nginx.com<para>
492061Smax.romanov@nginx.comsome Spring Boot applications failed to start, notably with Grails.
502061Smax.romanov@nginx.com</para>
512061Smax.romanov@nginx.com</change>
522061Smax.romanov@nginx.com
532067Smax.romanov@nginx.com<change type="bugfix">
542067Smax.romanov@nginx.com<para>
552067Smax.romanov@nginx.comincorrect Python protocol auto detection (ASGI or WSGI) for native callable
562067Smax.romanov@nginx.comobject, notably with Falcon.
572067Smax.romanov@nginx.com</para>
582067Smax.romanov@nginx.com</change>
592067Smax.romanov@nginx.com
602050Svbart@nginx.com</changes>
612050Svbart@nginx.com
622050Svbart@nginx.com
632050Svbart@nginx.com<changes apply="unit-php
642050Svbart@nginx.com                unit-python unit-python2.7
652050Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
662050Svbart@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
672050Svbart@nginx.com                unit-go
682050Svbart@nginx.com                unit-perl
692050Svbart@nginx.com                unit-ruby
702050Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
712050Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
722029SN/A         ver="1.26.1" rev="1"
732045SN/A         date="2021-12-02" time="18:00:00 +0300"
742029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
752029SN/A
762029SN/A<change>
772029SN/A<para>
782029SN/ANGINX Unit updated to 1.26.1.
792029SN/A</para>
802029SN/A</change>
812029SN/A
822029SN/A</changes>
832029SN/A
842029SN/A
852029SN/A<changes apply="unit" ver="1.26.1" rev="1"
862045SN/A         date="2021-12-02" time="18:00:00 +0300"
872029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
882029SN/A
892033SN/A<change type="bugfix">
902033SN/A<para>
912044SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had
922044SN/Aappeared in 1.26.0.
932033SN/A</para>
942033SN/A</change>
952033SN/A
962034SN/A<change type="bugfix">
972034SN/A<para>
982044SN/Aa prototype process could crash on an application process exit; the bug had
992034SN/Aappeared in 1.26.0.
1002034SN/A</para>
1012034SN/A</change>
1022034SN/A
1032035SN/A<change type="bugfix">
1042035SN/A<para>
1052044SN/Athe router process crashed on reconfiguration if "access_log" was configured
1062044SN/Awithout listeners.
1072044SN/A</para>
1082044SN/A</change>
1092044SN/A
1102044SN/A<change type="bugfix">
1112044SN/A<para>
1122035SN/Aa segmentation fault occurred in the PHP module if chdir() or
1132035SN/Afastcgi_finish_request() was called in the OPcache preloading script.
1142035SN/A</para>
1152035SN/A</change>
1162035SN/A
1172040SN/A<change type="bugfix">
1182040SN/A<para>
1192041SN/Afatal errors on DragonFly BSD; the bug had appeared in 1.26.0.
1202041SN/A</para>
1212041SN/A</change>
1222041SN/A
1232029SN/A</changes>
1242029SN/A
1252029SN/A
1261973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1"
1272007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1281973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1291973Sdefan@nginx.com
1301973Sdefan@nginx.com<change>
1311973Sdefan@nginx.com<para>
1321973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit.
1331973Sdefan@nginx.com</para>
1341973Sdefan@nginx.com</change>
1351973Sdefan@nginx.com
1361973Sdefan@nginx.com</changes>
1371973Sdefan@nginx.com
1381973Sdefan@nginx.com
1391973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1"
1402007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1411973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1421973Sdefan@nginx.com
1431973Sdefan@nginx.com<change>
1441973Sdefan@nginx.com<para>
1451973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit.
1461973Sdefan@nginx.com</para>
1471973Sdefan@nginx.com</change>
1481973Sdefan@nginx.com
1491973Sdefan@nginx.com</changes>
1501973Sdefan@nginx.com
1511973Sdefan@nginx.com
1521896Svbart@nginx.com<changes apply="unit-php
1531896Svbart@nginx.com                unit-python unit-python2.7
1541896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1551896Svbart@nginx.com                unit-python3.8 unit-python3.9
1561896Svbart@nginx.com                unit-go
1571896Svbart@nginx.com                unit-perl
1581896Svbart@nginx.com                unit-ruby
1591896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1601896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
1611951Svbart@nginx.com         ver="1.26.0" rev="1"
1622007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1631951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1641951Svbart@nginx.com
1651951Svbart@nginx.com<change>
1661951Svbart@nginx.com<para>
1671951Svbart@nginx.comNGINX Unit updated to 1.26.0.
1681951Svbart@nginx.com</para>
1691951Svbart@nginx.com</change>
1701951Svbart@nginx.com
1711951Svbart@nginx.com</changes>
1721951Svbart@nginx.com
1731951Svbart@nginx.com
1741951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
1752007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1761951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1771951Svbart@nginx.com
1781960Sz.hong@f5.com<change type="change">
1791960Sz.hong@f5.com<para>
1801960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
1811960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
1821960Sz.hong@f5.com</para>
1831960Sz.hong@f5.com</change>
1841960Sz.hong@f5.com
1851960Sz.hong@f5.com<change type="feature">
1861960Sz.hong@f5.com<para>
1872006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior
1882006Svbart@nginx.comwhen updating from previous versions.
1892006Svbart@nginx.com</para>
1902006Svbart@nginx.com</change>
1912006Svbart@nginx.com
1922006Svbart@nginx.com<change type="feature">
1932006Svbart@nginx.com<para>
1941960Sz.hong@f5.comvariables support in the "share" option.
1951960Sz.hong@f5.com</para>
1961960Sz.hong@f5.com</change>
1971960Sz.hong@f5.com
1981959Sz.hong@f5.com<change type="feature">
1991959Sz.hong@f5.com<para>
2001961Sz.hong@f5.commultiple paths in the "share" option.
2011961Sz.hong@f5.com</para>
2021961Sz.hong@f5.com</change>
2031961Sz.hong@f5.com
2041961Sz.hong@f5.com<change type="feature">
2051961Sz.hong@f5.com<para>
2061959Sz.hong@f5.comvariables support in the "chroot" option.
2071959Sz.hong@f5.com</para>
2081959Sz.hong@f5.com</change>
2091959Sz.hong@f5.com
2101969Sz.hong@f5.com<change type="feature">
2111969Sz.hong@f5.com<para>
2122006Svbart@nginx.comPHP opcache is shared between application processes.
2131969Sz.hong@f5.com</para>
2141969Sz.hong@f5.com</change>
2151969Sz.hong@f5.com
2161991Sz.hong@f5.com<change type="feature">
2171991Sz.hong@f5.com<para>
2181991Sz.hong@f5.comrequest routing by the query string.
2191991Sz.hong@f5.com</para>
2201991Sz.hong@f5.com</change>
2211991Sz.hong@f5.com
2221955Smax.romanov@nginx.com<change type="bugfix">
2231955Smax.romanov@nginx.com<para>
2242006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached
2252006Svbart@nginx.comby asynchronous or multithreaded apps.
2261955Smax.romanov@nginx.com</para>
2271955Smax.romanov@nginx.com</change>
2281955Smax.romanov@nginx.com
2291956Smax.romanov@nginx.com<change type="bugfix">
2301956Smax.romanov@nginx.com<para>
2311956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
2321956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
2331956Smax.romanov@nginx.com</para>
2341956Smax.romanov@nginx.com</change>
2351956Smax.romanov@nginx.com
2361992Smax.romanov@nginx.com<change type="bugfix">
2371992Smax.romanov@nginx.com<para>
2382006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35.
2391992Smax.romanov@nginx.com</para>
2401992Smax.romanov@nginx.com</change>
2411992Smax.romanov@nginx.com
2421951Svbart@nginx.com</changes>
2431951Svbart@nginx.com
2441951Svbart@nginx.com
2451951Svbart@nginx.com<changes apply="unit-php
2461951Svbart@nginx.com                unit-python unit-python2.7
2471951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2481951Svbart@nginx.com                unit-python3.8 unit-python3.9
2491951Svbart@nginx.com                unit-go
2501951Svbart@nginx.com                unit-perl
2511951Svbart@nginx.com                unit-ruby
2521951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2531951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
2541896Svbart@nginx.com         ver="1.25.0" rev="1"
2551945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
2561896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2571896Svbart@nginx.com
2581896Svbart@nginx.com<change>
2591896Svbart@nginx.com<para>
2601896Svbart@nginx.comNGINX Unit updated to 1.25.0.
2611896Svbart@nginx.com</para>
2621896Svbart@nginx.com</change>
2631896Svbart@nginx.com
2641896Svbart@nginx.com</changes>
2651896Svbart@nginx.com
2661896Svbart@nginx.com
2671896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
2681945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
2691896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2701896Svbart@nginx.com
2711910So.canty@f5.com<change type="feature">
2721910So.canty@f5.com<para>
2731944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
2741942Sa.suvorov@f5.com</para>
2751942Sa.suvorov@f5.com</change>
2761942Sa.suvorov@f5.com
2771942Sa.suvorov@f5.com<change type="feature">
2781942Sa.suvorov@f5.com<para>
2791920Sa.suvorov@f5.comTLS sessions cache.
2801920Sa.suvorov@f5.com</para>
2811920Sa.suvorov@f5.com</change>
2821920Sa.suvorov@f5.com
2831920Sa.suvorov@f5.com<change type="feature">
2841920Sa.suvorov@f5.com<para>
2851944Svbart@nginx.comTLS session tickets.
2861910So.canty@f5.com</para>
2871910So.canty@f5.com</change>
2881910So.canty@f5.com
2891926Smax.romanov@nginx.com<change type="feature">
2901926Smax.romanov@nginx.com<para>
2911926Smax.romanov@nginx.comapplication restart control.
2921926Smax.romanov@nginx.com</para>
2931926Smax.romanov@nginx.com</change>
2941926Smax.romanov@nginx.com
2951936So.canty@f5.com<change type="feature">
2961936So.canty@f5.com<para>
2971944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
2981936So.canty@f5.com</para>
2991936So.canty@f5.com</change>
3001936So.canty@f5.com
3011907Smax.romanov@nginx.com<change type="bugfix">
3021907Smax.romanov@nginx.com<para>
3031944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
3041944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
3051921Sa.suvorov@f5.com</para>
3061921Sa.suvorov@f5.com</change>
3071921Sa.suvorov@f5.com
3081921Sa.suvorov@f5.com<change type="bugfix">
3091921Sa.suvorov@f5.com<para>
3101944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
3111944Svbart@nginx.combundles in a listener if the client did not use SNI.
3121907Smax.romanov@nginx.com</para>
3131907Smax.romanov@nginx.com</change>
3141907Smax.romanov@nginx.com
3151907Smax.romanov@nginx.com<change type="bugfix">
3161907Smax.romanov@nginx.com<para>
3171950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
3181915Smax.romanov@nginx.comreconfiguration.
3191915Smax.romanov@nginx.com</para>
3201915Smax.romanov@nginx.com</change>
3211915Smax.romanov@nginx.com
3221915Smax.romanov@nginx.com<change type="bugfix">
3231915Smax.romanov@nginx.com<para>
3241944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
3251944Svbart@nginx.comframework.
3261944Svbart@nginx.com</para>
3271944Svbart@nginx.com</change>
3281944Svbart@nginx.com
3291944Svbart@nginx.com<change type="bugfix">
3301944Svbart@nginx.com<para>
3311944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
3321944Svbart@nginx.comstopped or crashed.
3331907Smax.romanov@nginx.com</para>
3341907Smax.romanov@nginx.com</change>
3351907Smax.romanov@nginx.com
3361909So.canty@f5.com<change type="bugfix">
3371909So.canty@f5.com<para>
3381909So.canty@f5.comthe controller or router process could crash if the configuration contained
3391909So.canty@f5.coma full-form IPv6 in a listener address.
3401909So.canty@f5.com</para>
3411909So.canty@f5.com</change>
3421909So.canty@f5.com
3431916Smax.romanov@nginx.com<change type="bugfix">
3441916Smax.romanov@nginx.com<para>
3451929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
3461929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
3471929Sz.hong@f5.com</para>
3481929Sz.hong@f5.com</change>
3491929Sz.hong@f5.com
3501930So.canty@f5.com<change type="bugfix">
3511930So.canty@f5.com<para>
3521944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
3531944Svbart@nginx.comor destination address patterns.
3541930So.canty@f5.com</para>
3551930So.canty@f5.com</change>
3561930So.canty@f5.com
3571896Svbart@nginx.com</changes>
3581896Svbart@nginx.com
3591896Svbart@nginx.com
3601887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
3611891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3621887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3631887Sdefan@nginx.com
3641887Sdefan@nginx.com<change>
3651887Sdefan@nginx.com<para>
3661887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
3671887Sdefan@nginx.com</para>
3681887Sdefan@nginx.com</change>
3691887Sdefan@nginx.com
3701887Sdefan@nginx.com</changes>
3711887Sdefan@nginx.com
3721887Sdefan@nginx.com
3731887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
3741891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3751887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3761887Sdefan@nginx.com
3771887Sdefan@nginx.com<change>
3781887Sdefan@nginx.com<para>
3791887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
3801887Sdefan@nginx.com</para>
3811887Sdefan@nginx.com</change>
3821887Sdefan@nginx.com
3831887Sdefan@nginx.com</changes>
3841887Sdefan@nginx.com
3851887Sdefan@nginx.com
3861834Svbart@nginx.com<changes apply="unit-php
3871834Svbart@nginx.com                unit-python unit-python2.7
3881834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3891834Svbart@nginx.com                unit-python3.8 unit-python3.9
3901834Svbart@nginx.com                unit-go
3911834Svbart@nginx.com                unit-perl
3921834Svbart@nginx.com                unit-ruby
3931834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3941834Svbart@nginx.com                unit-jsc14 unit-jsc15"
3951839Svbart@nginx.com         ver="1.24.0" rev="1"
3961891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3971839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3981839Svbart@nginx.com
3991839Svbart@nginx.com<change>
4001839Svbart@nginx.com<para>
4011839Svbart@nginx.comNGINX Unit updated to 1.24.0.
4021839Svbart@nginx.com</para>
4031839Svbart@nginx.com</change>
4041839Svbart@nginx.com
4051839Svbart@nginx.com</changes>
4061839Svbart@nginx.com
4071839Svbart@nginx.com
4081839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
4091891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4101839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4111839Svbart@nginx.com
4121882So.canty@f5.com<change type="change">
4131882So.canty@f5.com<para>
4141882So.canty@f5.comPHP added to the default MIME type list.
4151882So.canty@f5.com</para>
4161882So.canty@f5.com</change>
4171882So.canty@f5.com
4181855Sz.hong@f5.com<change type="feature">
4191855Sz.hong@f5.com<para>
4201885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
4211885Sa.suvorov@f5.com</para>
4221885Sa.suvorov@f5.com</change>
4231885Sa.suvorov@f5.com
4241885Sa.suvorov@f5.com<change type="feature">
4251885Sa.suvorov@f5.com<para>
4261890Svbart@nginx.comthe ability to limit static file serving by MIME types.
4271890Svbart@nginx.com</para>
4281890Svbart@nginx.com</change>
4291890Svbart@nginx.com
4301890Svbart@nginx.com<change type="feature">
4311890Svbart@nginx.com<para>
4321890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
4331890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
4341872So.canty@f5.com</para>
4351872So.canty@f5.com</change>
4361872So.canty@f5.com
4371872So.canty@f5.com<change type="feature">
4381872So.canty@f5.com<para>
4391889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
4401889Sartem.konev@nginx.comNode.js.
4411865So.canty@f5.com</para>
4421865So.canty@f5.com</change>
4431865So.canty@f5.com
4441865So.canty@f5.com<change type="feature">
4451865So.canty@f5.com<para>
4461890Svbart@nginx.commultiple "targets" in Python applications.
4471855Sz.hong@f5.com</para>
4481855Sz.hong@f5.com</change>
4491855Sz.hong@f5.com
4501870So.canty@f5.com<change type="feature">
4511870So.canty@f5.com<para>
4521870So.canty@f5.comcompatibility with Ruby 3.0.
4531870So.canty@f5.com</para>
4541870So.canty@f5.com</change>
4551870So.canty@f5.com
4561861Svbart@nginx.com<change type="bugfix">
4571861Svbart@nginx.com<para>
4581889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
4591884Sa.suvorov@f5.com</para>
4601884Sa.suvorov@f5.com</change>
4611884Sa.suvorov@f5.com
4621884Sa.suvorov@f5.com<change type="bugfix">
4631884Sa.suvorov@f5.com<para>
4641861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
4651861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
4661861Svbart@nginx.com</para>
4671861Svbart@nginx.com</change>
4681861Svbart@nginx.com
4691839Svbart@nginx.com</changes>
4701839Svbart@nginx.com
4711839Svbart@nginx.com
4721839Svbart@nginx.com<changes apply="unit-php
4731839Svbart@nginx.com                unit-python unit-python2.7
4741839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4751839Svbart@nginx.com                unit-python3.8 unit-python3.9
4761839Svbart@nginx.com                unit-go
4771839Svbart@nginx.com                unit-perl
4781839Svbart@nginx.com                unit-ruby
4791839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4801839Svbart@nginx.com                unit-jsc14 unit-jsc15"
4811834Svbart@nginx.com         ver="1.23.0" rev="1"
4821834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
4831834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4841834Svbart@nginx.com
4851834Svbart@nginx.com<change>
4861834Svbart@nginx.com<para>
4871834Svbart@nginx.comNGINX Unit updated to 1.23.0.
4881834Svbart@nginx.com</para>
4891834Svbart@nginx.com</change>
4901834Svbart@nginx.com
4911834Svbart@nginx.com</changes>
4921834Svbart@nginx.com
4931834Svbart@nginx.com
4941806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
4951834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
4961806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4971806Svbart@nginx.com
4981825Sthresh@nginx.com<change type="feature">
4991825Sthresh@nginx.com<para>
5001833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
5011828Sa.suvorov@f5.comIndication (SNI) TLS extension.
5021828Sa.suvorov@f5.com</para>
5031828Sa.suvorov@f5.com</change>
5041828Sa.suvorov@f5.com
5051828Sa.suvorov@f5.com<change type="feature">
5061828Sa.suvorov@f5.com<para>
5071833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
5081833Sartem.konev@nginx.cominstallation.
5091825Sthresh@nginx.com</para>
5101825Sthresh@nginx.com</change>
5111825Sthresh@nginx.com
5121811Smax.romanov@nginx.com<change type="bugfix">
5131811Smax.romanov@nginx.com<para>
5141812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
5151812Svbart@nginx.comappeared in 1.17.0.
5161812Svbart@nginx.com</para>
5171812Svbart@nginx.com</change>
5181812Svbart@nginx.com
5191812Svbart@nginx.com<change type="bugfix">
5201812Svbart@nginx.com<para>
5211833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
5221812Svbart@nginx.comappeared in 1.6.
5231812Svbart@nginx.com</para>
5241812Svbart@nginx.com</change>
5251812Svbart@nginx.com
5261812Svbart@nginx.com<change type="bugfix">
5271812Svbart@nginx.com<para>
5281833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
5291832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
5301832Smax.romanov@nginx.com</para>
5311832Smax.romanov@nginx.com</change>
5321832Smax.romanov@nginx.com
5331832Smax.romanov@nginx.com<change type="bugfix">
5341832Smax.romanov@nginx.com<para>
5351833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
5361811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
5371811Smax.romanov@nginx.com</para>
5381811Smax.romanov@nginx.com</change>
5391806Svbart@nginx.com
5401813Svbart@nginx.com<change type="bugfix">
5411813Svbart@nginx.com<para>
5421813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
5431813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
5441813Svbart@nginx.com</para>
5451813Svbart@nginx.com</change>
5461813Svbart@nginx.com
5471814Svbart@nginx.com<change type="bugfix">
5481814Svbart@nginx.com<para>
5491820Svbart@nginx.comthe controller process could crash while requesting information about a
5501820Svbart@nginx.comcertificate with a non-DNS SAN entry.
5511820Svbart@nginx.com</para>
5521820Svbart@nginx.com</change>
5531820Svbart@nginx.com
5541820Svbart@nginx.com<change type="bugfix">
5551820Svbart@nginx.com<para>
5561822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
5571833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
5581822Svbart@nginx.com</para>
5591822Svbart@nginx.com</change>
5601822Svbart@nginx.com
5611822Svbart@nginx.com<change type="bugfix">
5621822Svbart@nginx.com<para>
5631833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
5641833Sartem.konev@nginx.comclass.
5651814Svbart@nginx.com</para>
5661814Svbart@nginx.com</change>
5671814Svbart@nginx.com
5681815Svbart@nginx.com<change type="bugfix">
5691815Svbart@nginx.com<para>
5701815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
5711815Svbart@nginx.comappeared in 1.22.0.
5721815Svbart@nginx.com</para>
5731815Svbart@nginx.com</change>
5741815Svbart@nginx.com
5751806Svbart@nginx.com</changes>
5761806Svbart@nginx.com
5771806Svbart@nginx.com
5781798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
5791798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
5801798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5811798Sdefan@nginx.com
5821798Sdefan@nginx.com<change>
5831798Sdefan@nginx.com<para>
5841798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
5851798Sdefan@nginx.com</para>
5861798Sdefan@nginx.com</change>
5871798Sdefan@nginx.com
5881798Sdefan@nginx.com</changes>
5891798Sdefan@nginx.com
5901798Sdefan@nginx.com
5911763Sdefan@nginx.com<changes apply="unit-php
5921763Sdefan@nginx.com                unit-python unit-python2.7
5931763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5941763Sdefan@nginx.com                unit-python3.8
5951763Sdefan@nginx.com                unit-go
5961763Sdefan@nginx.com                unit-perl
5971763Sdefan@nginx.com                unit-ruby
5981763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
5991763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
6001763Sdefan@nginx.com         ver="1.22.0" rev="1"
6011793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
6021763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6031763Sdefan@nginx.com
6041763Sdefan@nginx.com<change>
6051763Sdefan@nginx.com<para>
6061763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
6071763Sdefan@nginx.com</para>
6081763Sdefan@nginx.com</change>
6091763Sdefan@nginx.com
6101763Sdefan@nginx.com</changes>
6111763Sdefan@nginx.com
6121763Sdefan@nginx.com
6131727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
6141793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
6151727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6161727Svbart@nginx.com
6171759Svbart@nginx.com<change type="feature">
6181759Svbart@nginx.com<para>
6191792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
6201792Svbart@nginx.comcompliant with Stream API.
6211759Svbart@nginx.com</para>
6221759Svbart@nginx.com</change>
6231759Svbart@nginx.com
6241766Smax.romanov@nginx.com<change type="feature">
6251766Smax.romanov@nginx.com<para>
6261792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
6271792Svbart@nginx.comapps.
6281732Svbart@nginx.com</para>
6291732Svbart@nginx.com</change>
6301732Svbart@nginx.com
6311733Svbart@nginx.com<change type="bugfix">
6321733Svbart@nginx.com<para>
6331792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
6341792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
6351754Smax.romanov@nginx.com</para>
6361754Smax.romanov@nginx.com</change>
6371754Smax.romanov@nginx.com
6381755Smax.romanov@nginx.com<change type="bugfix">
6391755Smax.romanov@nginx.com<para>
6401790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
6411755Smax.romanov@nginx.comappeared in 1.19.0.
6421755Smax.romanov@nginx.com</para>
6431755Smax.romanov@nginx.com</change>
6441755Smax.romanov@nginx.com
6451756Smax.romanov@nginx.com<change type="bugfix">
6461756Smax.romanov@nginx.com<para>
6471790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
6481790Sartem.konev@nginx.comappeared in 1.19.0.
6491756Smax.romanov@nginx.com</para>
6501756Smax.romanov@nginx.com</change>
6511756Smax.romanov@nginx.com
6521760Smax.romanov@nginx.com<change type="bugfix">
6531760Smax.romanov@nginx.com<para>
6541792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
6551792Svbart@nginx.com</para>
6561792Svbart@nginx.com</change>
6571792Svbart@nginx.com
6581792Svbart@nginx.com<change type="bugfix">
6591792Svbart@nginx.com<para>
6601792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
6611792Svbart@nginx.commissing in the PHP module.
6621792Svbart@nginx.com</para>
6631792Svbart@nginx.com</change>
6641792Svbart@nginx.com
6651792Svbart@nginx.com<change type="bugfix">
6661792Svbart@nginx.com<para>
6671792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
6681792Svbart@nginx.com</para>
6691792Svbart@nginx.com</change>
6701792Svbart@nginx.com
6711792Svbart@nginx.com<change type="bugfix">
6721792Svbart@nginx.com<para>
6731792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
6741792Svbart@nginx.com</para>
6751792Svbart@nginx.com</change>
6761792Svbart@nginx.com
6771792Svbart@nginx.com<change type="bugfix">
6781792Svbart@nginx.com<para>
6791792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
6801792Svbart@nginx.comthe bug had appeared in 1.21.0.
6811760Smax.romanov@nginx.com</para>
6821760Smax.romanov@nginx.com</change>
6831760Smax.romanov@nginx.com
6841780Smax.romanov@nginx.com<change type="bugfix">
6851780Smax.romanov@nginx.com<para>
6861790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
6871790Sartem.konev@nginx.comWebSocket.
6881780Smax.romanov@nginx.com</para>
6891780Smax.romanov@nginx.com</change>
6901780Smax.romanov@nginx.com
6911789Smax.romanov@nginx.com<change type="bugfix">
6921789Smax.romanov@nginx.com<para>
6931789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
6941789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
6951789Smax.romanov@nginx.com</para>
6961789Smax.romanov@nginx.com</change>
6971789Smax.romanov@nginx.com
6981727Svbart@nginx.com</changes>
6991727Svbart@nginx.com
7001727Svbart@nginx.com
7011722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
7021722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7031722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7041722Svbart@nginx.com
7051722Svbart@nginx.com<change>
7061722Svbart@nginx.com<para>
7071722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
7081722Svbart@nginx.com</para>
7091722Svbart@nginx.com</change>
7101722Svbart@nginx.com
7111722Svbart@nginx.com</changes>
7121722Svbart@nginx.com
7131722Svbart@nginx.com
7141722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
7151722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7161722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7171722Svbart@nginx.com
7181722Svbart@nginx.com<change>
7191722Svbart@nginx.com<para>
7201722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
7211722Svbart@nginx.com</para>
7221722Svbart@nginx.com</change>
7231722Svbart@nginx.com
7241722Svbart@nginx.com</changes>
7251722Svbart@nginx.com
7261722Svbart@nginx.com
7271722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
7281722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7291722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7301722Svbart@nginx.com
7311722Svbart@nginx.com<change>
7321722Svbart@nginx.com<para>
7331722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
7341722Svbart@nginx.com</para>
7351722Svbart@nginx.com</change>
7361722Svbart@nginx.com
7371722Svbart@nginx.com</changes>
7381722Svbart@nginx.com
7391722Svbart@nginx.com
7401722Svbart@nginx.com<changes apply="unit-php
7411722Svbart@nginx.com                unit-python unit-python2.7
7421722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7431722Svbart@nginx.com                unit-python3.8
7441722Svbart@nginx.com                unit-go
7451722Svbart@nginx.com                unit-perl
7461722Svbart@nginx.com                unit-ruby
7471722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
7481722Svbart@nginx.com         ver="1.21.0" rev="1"
7491722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7501722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7511722Svbart@nginx.com
7521722Svbart@nginx.com<change>
7531722Svbart@nginx.com<para>
7541722Svbart@nginx.comNGINX Unit updated to 1.21.0.
7551722Svbart@nginx.com</para>
7561722Svbart@nginx.com</change>
7571722Svbart@nginx.com
7581722Svbart@nginx.com</changes>
7591722Svbart@nginx.com
7601722Svbart@nginx.com
7611722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
7621722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7631722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7641722Svbart@nginx.com
7651722Svbart@nginx.com<change type="change">
7661722Svbart@nginx.com<para>
7671722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
7681722Svbart@nginx.com</para>
7691722Svbart@nginx.com</change>
7701722Svbart@nginx.com
7711722Svbart@nginx.com<change type="change">
7721722Svbart@nginx.com<para>
7731722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
7741722Svbart@nginx.comnames.
7751722Svbart@nginx.com</para>
7761722Svbart@nginx.com</change>
7771722Svbart@nginx.com
7781722Svbart@nginx.com<change type="change">
7791722Svbart@nginx.com<para>
7801722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
7811722Svbart@nginx.comdefault.
7821722Svbart@nginx.com</para>
7831722Svbart@nginx.com</change>
7841722Svbart@nginx.com
7851722Svbart@nginx.com<change type="feature">
7861722Svbart@nginx.com<para>
7871722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
7881722Svbart@nginx.com</para>
7891722Svbart@nginx.com</change>
7901722Svbart@nginx.com
7911722Svbart@nginx.com<change type="feature">
7921722Svbart@nginx.com<para>
7931722Svbart@nginx.comregular expressions in route matching patterns.
7941722Svbart@nginx.com</para>
7951722Svbart@nginx.com</change>
7961722Svbart@nginx.com
7971722Svbart@nginx.com<change type="feature">
7981722Svbart@nginx.com<para>
7991722Svbart@nginx.comcompatibility with Python 3.9.
8001722Svbart@nginx.com</para>
8011722Svbart@nginx.com</change>
8021722Svbart@nginx.com
8031722Svbart@nginx.com<change type="feature">
8041722Svbart@nginx.com<para>
8051722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
8061722Svbart@nginx.com</para>
8071722Svbart@nginx.com</change>
8081722Svbart@nginx.com
8091722Svbart@nginx.com<change type="feature">
8101722Svbart@nginx.com<para>
8111722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
8121722Svbart@nginx.com</para>
8131722Svbart@nginx.com</change>
8141722Svbart@nginx.com
8151722Svbart@nginx.com<change type="feature">
8161722Svbart@nginx.com<para>
8171722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
8181722Svbart@nginx.comcontinues code execution without holding onto the client connection.
8191722Svbart@nginx.com</para>
8201722Svbart@nginx.com</change>
8211722Svbart@nginx.com
8221722Svbart@nginx.com<change type="feature">
8231722Svbart@nginx.com<para>
8241722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
8251722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
8261722Svbart@nginx.com</para>
8271722Svbart@nginx.com</change>
8281722Svbart@nginx.com
8291722Svbart@nginx.com<change type="feature">
8301722Svbart@nginx.com<para>
8311722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
8321722Svbart@nginx.commounting of eponymous filesystems.
8331722Svbart@nginx.com</para>
8341722Svbart@nginx.com</change>
8351722Svbart@nginx.com
8361722Svbart@nginx.com<change type="bugfix">
8371722Svbart@nginx.com<para>
8381722Svbart@nginx.comthe router process could crash when running Go applications under high load;
8391722Svbart@nginx.comthe bug had appeared in 1.19.0.
8401722Svbart@nginx.com</para>
8411722Svbart@nginx.com</change>
8421722Svbart@nginx.com
8431722Svbart@nginx.com<change type="bugfix">
8441722Svbart@nginx.com<para>
8451722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
8461722Svbart@nginx.com</para>
8471722Svbart@nginx.com</change>
8481722Svbart@nginx.com
8491722Svbart@nginx.com<change type="bugfix">
8501722Svbart@nginx.com<para>
8511722Svbart@nginx.comvarious compatibility issues in Java applications.
8521722Svbart@nginx.com</para>
8531722Svbart@nginx.com</change>
8541722Svbart@nginx.com
8551722Svbart@nginx.com<change type="bugfix">
8561722Svbart@nginx.com<para>
8571722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
8581722Svbart@nginx.comuse "rootfs" isolation.
8591722Svbart@nginx.com</para>
8601722Svbart@nginx.com</change>
8611722Svbart@nginx.com
8621722Svbart@nginx.com</changes>
8631722Svbart@nginx.com
8641722Svbart@nginx.com
8651330Svbart@nginx.com<changes apply="unit-php
8661330Svbart@nginx.com                unit-python unit-python2.7
8671330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8681330Svbart@nginx.com                unit-python3.8
8691330Svbart@nginx.com                unit-go
8701330Svbart@nginx.com                unit-perl
8711330Svbart@nginx.com                unit-ruby
8721330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8731640Svbart@nginx.com         ver="1.20.0" rev="1"
8741640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
8751640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8761640Svbart@nginx.com
8771640Svbart@nginx.com<change>
8781640Svbart@nginx.com<para>
8791640Svbart@nginx.comNGINX Unit updated to 1.20.0.
8801640Svbart@nginx.com</para>
8811640Svbart@nginx.com</change>
8821640Svbart@nginx.com
8831640Svbart@nginx.com</changes>
8841640Svbart@nginx.com
8851640Svbart@nginx.com
8861640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
8871640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
8881640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8891640Svbart@nginx.com
8901640Svbart@nginx.com<change type="change">
8911640Svbart@nginx.com<para>
8921640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
8931640Svbart@nginx.comextensions from the host system.
8941640Svbart@nginx.com</para>
8951640Svbart@nginx.com</change>
8961640Svbart@nginx.com
8971640Svbart@nginx.com<change type="change">
8981640Svbart@nginx.com<para>
8991640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
9001640Svbart@nginx.com</para>
9011640Svbart@nginx.com</change>
9021640Svbart@nginx.com
9031643Svbart@nginx.com<change type="change">
9041643Svbart@nginx.com<para>
9051643Svbart@nginx.comfunctional tests migrated to the pytest framework.
9061643Svbart@nginx.com</para>
9071643Svbart@nginx.com</change>
9081643Svbart@nginx.com
9091640Svbart@nginx.com<change type="feature">
9101640Svbart@nginx.com<para>
9111640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
9121640Svbart@nginx.cominterface.
9131640Svbart@nginx.com</para>
9141640Svbart@nginx.com</change>
9151640Svbart@nginx.com
9161640Svbart@nginx.com<change type="feature">
9171640Svbart@nginx.com<para>
9181640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
9191640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
9201640Svbart@nginx.comspecification.
9211640Svbart@nginx.com</para>
9221640Svbart@nginx.com</change>
9231640Svbart@nginx.com
9241640Svbart@nginx.com<change type="feature">
9251640Svbart@nginx.com<para>
9261640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
9271640Svbart@nginx.comenvironments.
9281640Svbart@nginx.com</para>
9291640Svbart@nginx.com</change>
9301640Svbart@nginx.com
9311640Svbart@nginx.com<change type="feature">
9321640Svbart@nginx.com<para>
9331640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
9341640Svbart@nginx.com</para>
9351640Svbart@nginx.com</change>
9361640Svbart@nginx.com
9371640Svbart@nginx.com<change type="feature">
9381640Svbart@nginx.com<para>
9391640Svbart@nginx.comthe "callable" option sets Python application callable names.
9401640Svbart@nginx.com</para>
9411640Svbart@nginx.com</change>
9421640Svbart@nginx.com
9431640Svbart@nginx.com<change type="feature">
9441640Svbart@nginx.com<para>
9451640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
9461640Svbart@nginx.com</para>
9471640Svbart@nginx.com</change>
9481640Svbart@nginx.com
9491640Svbart@nginx.com<change type="feature">
9501640Svbart@nginx.com<para>
9511640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
9521640Svbart@nginx.comautomatic mounting of language module dependencies.
9531640Svbart@nginx.com</para>
9541640Svbart@nginx.com</change>
9551640Svbart@nginx.com
9561640Svbart@nginx.com<change type="bugfix">
9571640Svbart@nginx.com<para>
9581640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
9591640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
9601640Svbart@nginx.com</para>
9611640Svbart@nginx.com</change>
9621640Svbart@nginx.com
9631640Svbart@nginx.com<change type="bugfix">
9641640Svbart@nginx.com<para>
9651640Svbart@nginx.comthe router process could crash during reconfiguration.
9661640Svbart@nginx.com</para>
9671640Svbart@nginx.com</change>
9681640Svbart@nginx.com
9691640Svbart@nginx.com<change type="bugfix">
9701640Svbart@nginx.com<para>
9711640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
9721640Svbart@nginx.com</para>
9731640Svbart@nginx.com</change>
9741640Svbart@nginx.com
9751640Svbart@nginx.com<change type="bugfix">
9761640Svbart@nginx.com<para>
9771640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
9781640Svbart@nginx.comthe bug had appeared in 1.19.0.
9791640Svbart@nginx.com</para>
9801640Svbart@nginx.com</change>
9811640Svbart@nginx.com
9821640Svbart@nginx.com<change type="bugfix">
9831640Svbart@nginx.com<para>
9841640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
9851640Svbart@nginx.comthe bug had appeared in 1.16.0.
9861640Svbart@nginx.com</para>
9871640Svbart@nginx.com</change>
9881640Svbart@nginx.com
9891640Svbart@nginx.com</changes>
9901640Svbart@nginx.com
9911640Svbart@nginx.com
9921640Svbart@nginx.com<changes apply="unit-php
9931640Svbart@nginx.com                unit-python unit-python2.7
9941640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9951640Svbart@nginx.com                unit-python3.8
9961640Svbart@nginx.com                unit-go
9971640Svbart@nginx.com                unit-perl
9981640Svbart@nginx.com                unit-ruby
9991640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10001570Svbart@nginx.com         ver="1.19.0" rev="1"
10011570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
10021570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10031570Svbart@nginx.com
10041570Svbart@nginx.com<change>
10051570Svbart@nginx.com<para>
10061570Svbart@nginx.comNGINX Unit updated to 1.19.0.
10071570Svbart@nginx.com</para>
10081570Svbart@nginx.com</change>
10091570Svbart@nginx.com
10101570Svbart@nginx.com</changes>
10111570Svbart@nginx.com
10121570Svbart@nginx.com
10131570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1"
10141570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
10151570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10161570Svbart@nginx.com
10171570Svbart@nginx.com<change type="feature">
10181570Svbart@nginx.com<para>
10191570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
10201570Svbart@nginx.comincrease performance, and improve scalability.
10211570Svbart@nginx.com</para>
10221570Svbart@nginx.com</change>
10231570Svbart@nginx.com
10241570Svbart@nginx.com<change type="feature">
10251570Svbart@nginx.com<para>
10261570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns.
10271570Svbart@nginx.com</para>
10281570Svbart@nginx.com</change>
10291570Svbart@nginx.com
10301570Svbart@nginx.com<change type="feature">
10311570Svbart@nginx.com<para>
10321570Svbart@nginx.comchunked transfer encoding in proxy responses.
10331570Svbart@nginx.com</para>
10341570Svbart@nginx.com</change>
10351570Svbart@nginx.com
10361570Svbart@nginx.com<change type="feature">
10371570Svbart@nginx.com<para>
10381570Svbart@nginx.combasic variables support in the "pass" option.
10391570Svbart@nginx.com</para>
10401570Svbart@nginx.com</change>
10411570Svbart@nginx.com
10421570Svbart@nginx.com<change type="feature">
10431570Svbart@nginx.com<para>
10441570Svbart@nginx.comcompatibility with PHP 8 Beta 1.
10451570Svbart@nginx.comThanks to Remi Collet.
10461570Svbart@nginx.com</para>
10471570Svbart@nginx.com</change>
10481570Svbart@nginx.com
10491570Svbart@nginx.com<change type="bugfix">
10501570Svbart@nginx.com<para>
10511570Svbart@nginx.comthe router process could crash while passing requests to an application under
10521570Svbart@nginx.comhigh load.
10531570Svbart@nginx.com</para>
10541570Svbart@nginx.com</change>
10551570Svbart@nginx.com
10561570Svbart@nginx.com<change type="bugfix">
10571570Svbart@nginx.com<para>
10581570Svbart@nginx.coma number of language modules failed to build on some systems;
10591570Svbart@nginx.comthe bug had appeared in 1.18.0.
10601570Svbart@nginx.com</para>
10611570Svbart@nginx.com</change>
10621570Svbart@nginx.com
10631570Svbart@nginx.com<change type="bugfix">
10641570Svbart@nginx.com<para>
10651570Svbart@nginx.comtime in error log messages from PHP applications could lag.
10661570Svbart@nginx.com</para>
10671570Svbart@nginx.com</change>
10681570Svbart@nginx.com
10691570Svbart@nginx.com<change type="bugfix">
10701570Svbart@nginx.com<para>
10711570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start;
10721570Svbart@nginx.comthe bug had appeared in 1.18.0.
10731570Svbart@nginx.com</para>
10741570Svbart@nginx.com</change>
10751570Svbart@nginx.com
10761570Svbart@nginx.com<change type="bugfix">
10771570Svbart@nginx.com<para>
10781570Svbart@nginx.commemory leak during reconfiguration.
10791570Svbart@nginx.com</para>
10801570Svbart@nginx.com</change>
10811570Svbart@nginx.com
10821570Svbart@nginx.com<change type="bugfix">
10831570Svbart@nginx.com<para>
10841570Svbart@nginx.comthe daemon didn't start without language modules;
10851570Svbart@nginx.comthe bug had appeared in 1.18.0.
10861570Svbart@nginx.com</para>
10871570Svbart@nginx.com</change>
10881570Svbart@nginx.com
10891570Svbart@nginx.com<change type="bugfix">
10901570Svbart@nginx.com<para>
10911570Svbart@nginx.comthe router process could crash at exit.
10921570Svbart@nginx.com</para>
10931570Svbart@nginx.com</change>
10941570Svbart@nginx.com
10951570Svbart@nginx.com<change type="bugfix">
10961570Svbart@nginx.com<para>
10971570Svbart@nginx.comNode.js applications could crash at exit.
10981570Svbart@nginx.com</para>
10991570Svbart@nginx.com</change>
11001570Svbart@nginx.com
11011570Svbart@nginx.com<change type="bugfix">
11021570Svbart@nginx.com<para>
11031570Svbart@nginx.comthe Ruby module could be linked against a wrong library version.
11041570Svbart@nginx.com</para>
11051570Svbart@nginx.com</change>
11061570Svbart@nginx.com
11071570Svbart@nginx.com</changes>
11081570Svbart@nginx.com
11091570Svbart@nginx.com
11101570Svbart@nginx.com<changes apply="unit-php
11111570Svbart@nginx.com                unit-python unit-python2.7
11121570Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11131570Svbart@nginx.com                unit-python3.8
11141570Svbart@nginx.com                unit-go
11151570Svbart@nginx.com                unit-perl
11161570Svbart@nginx.com                unit-ruby
11171570Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11181491Svbart@nginx.com         ver="1.18.0" rev="1"
11191491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
11201491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11211491Svbart@nginx.com
11221491Svbart@nginx.com<change>
11231491Svbart@nginx.com<para>
11241491Svbart@nginx.comNGINX Unit updated to 1.18.0.
11251491Svbart@nginx.com</para>
11261491Svbart@nginx.com</change>
11271491Svbart@nginx.com
11281491Svbart@nginx.com</changes>
11291491Svbart@nginx.com
11301491Svbart@nginx.com
11311491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1"
11321491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
11331491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11341491Svbart@nginx.com
11351491Svbart@nginx.com<change type="feature">
11361491Svbart@nginx.com<para>
11371491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application.
11381491Svbart@nginx.com</para>
11391491Svbart@nginx.com</change>
11401491Svbart@nginx.com
11411491Svbart@nginx.com<change type="feature">
11421491Svbart@nginx.com<para>
11431491Svbart@nginx.commultiple "targets" in PHP applications.
11441491Svbart@nginx.com</para>
11451491Svbart@nginx.com</change>
11461491Svbart@nginx.com
11471491Svbart@nginx.com<change type="feature">
11481491Svbart@nginx.com<para>
11491491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options
11501491Svbart@nginx.comand in the "pass" option.
11511491Svbart@nginx.com</para>
11521491Svbart@nginx.com</change>
1153