xref: /unit/docs/changes.xml (revision 2072)
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
34*2072Sz.hong@f5.com<change type="feature">
35*2072Sz.hong@f5.com<para>
36*2072Sz.hong@f5.comcompatibility with GCC 12.
37*2072Sz.hong@f5.com</para>
38*2072Sz.hong@f5.com</change>
39*2072Sz.hong@f5.com
402060Smax.romanov@nginx.com<change type="bugfix">
412060Smax.romanov@nginx.com<para>
422069Sz.hong@f5.comthe controller process could crash when a chain with more than 4
432069Sz.hong@f5.comcertificates was uploaded.
442069Sz.hong@f5.com</para>
452069Sz.hong@f5.com</change>
462069Sz.hong@f5.com
472069Sz.hong@f5.com<change type="bugfix">
482069Sz.hong@f5.com<para>
492060Smax.romanov@nginx.comsome Perl applications failed to process the request body, notably with Plack.
502060Smax.romanov@nginx.com</para>
512060Smax.romanov@nginx.com</change>
522060Smax.romanov@nginx.com
532061Smax.romanov@nginx.com<change type="bugfix">
542061Smax.romanov@nginx.com<para>
552061Smax.romanov@nginx.comsome Spring Boot applications failed to start, notably with Grails.
562061Smax.romanov@nginx.com</para>
572061Smax.romanov@nginx.com</change>
582061Smax.romanov@nginx.com
592067Smax.romanov@nginx.com<change type="bugfix">
602067Smax.romanov@nginx.com<para>
612067Smax.romanov@nginx.comincorrect Python protocol auto detection (ASGI or WSGI) for native callable
622067Smax.romanov@nginx.comobject, notably with Falcon.
632067Smax.romanov@nginx.com</para>
642067Smax.romanov@nginx.com</change>
652067Smax.romanov@nginx.com
662050Svbart@nginx.com</changes>
672050Svbart@nginx.com
682050Svbart@nginx.com
692050Svbart@nginx.com<changes apply="unit-php
702050Svbart@nginx.com                unit-python unit-python2.7
712050Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
722050Svbart@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
732050Svbart@nginx.com                unit-go
742050Svbart@nginx.com                unit-perl
752050Svbart@nginx.com                unit-ruby
762050Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
772050Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
782029SN/A         ver="1.26.1" rev="1"
792045SN/A         date="2021-12-02" time="18:00:00 +0300"
802029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
812029SN/A
822029SN/A<change>
832029SN/A<para>
842029SN/ANGINX Unit updated to 1.26.1.
852029SN/A</para>
862029SN/A</change>
872029SN/A
882029SN/A</changes>
892029SN/A
902029SN/A
912029SN/A<changes apply="unit" ver="1.26.1" rev="1"
922045SN/A         date="2021-12-02" time="18:00:00 +0300"
932029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
942029SN/A
952033SN/A<change type="bugfix">
962033SN/A<para>
972044SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had
982044SN/Aappeared in 1.26.0.
992033SN/A</para>
1002033SN/A</change>
1012033SN/A
1022034SN/A<change type="bugfix">
1032034SN/A<para>
1042044SN/Aa prototype process could crash on an application process exit; the bug had
1052034SN/Aappeared in 1.26.0.
1062034SN/A</para>
1072034SN/A</change>
1082034SN/A
1092035SN/A<change type="bugfix">
1102035SN/A<para>
1112044SN/Athe router process crashed on reconfiguration if "access_log" was configured
1122044SN/Awithout listeners.
1132044SN/A</para>
1142044SN/A</change>
1152044SN/A
1162044SN/A<change type="bugfix">
1172044SN/A<para>
1182035SN/Aa segmentation fault occurred in the PHP module if chdir() or
1192035SN/Afastcgi_finish_request() was called in the OPcache preloading script.
1202035SN/A</para>
1212035SN/A</change>
1222035SN/A
1232040SN/A<change type="bugfix">
1242040SN/A<para>
1252041SN/Afatal errors on DragonFly BSD; the bug had appeared in 1.26.0.
1262041SN/A</para>
1272041SN/A</change>
1282041SN/A
1292029SN/A</changes>
1302029SN/A
1312029SN/A
1321973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1"
1332007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1341973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1351973Sdefan@nginx.com
1361973Sdefan@nginx.com<change>
1371973Sdefan@nginx.com<para>
1381973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit.
1391973Sdefan@nginx.com</para>
1401973Sdefan@nginx.com</change>
1411973Sdefan@nginx.com
1421973Sdefan@nginx.com</changes>
1431973Sdefan@nginx.com
1441973Sdefan@nginx.com
1451973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1"
1462007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1471973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1481973Sdefan@nginx.com
1491973Sdefan@nginx.com<change>
1501973Sdefan@nginx.com<para>
1511973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit.
1521973Sdefan@nginx.com</para>
1531973Sdefan@nginx.com</change>
1541973Sdefan@nginx.com
1551973Sdefan@nginx.com</changes>
1561973Sdefan@nginx.com
1571973Sdefan@nginx.com
1581896Svbart@nginx.com<changes apply="unit-php
1591896Svbart@nginx.com                unit-python unit-python2.7
1601896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1611896Svbart@nginx.com                unit-python3.8 unit-python3.9
1621896Svbart@nginx.com                unit-go
1631896Svbart@nginx.com                unit-perl
1641896Svbart@nginx.com                unit-ruby
1651896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1661896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
1671951Svbart@nginx.com         ver="1.26.0" rev="1"
1682007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1691951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1701951Svbart@nginx.com
1711951Svbart@nginx.com<change>
1721951Svbart@nginx.com<para>
1731951Svbart@nginx.comNGINX Unit updated to 1.26.0.
1741951Svbart@nginx.com</para>
1751951Svbart@nginx.com</change>
1761951Svbart@nginx.com
1771951Svbart@nginx.com</changes>
1781951Svbart@nginx.com
1791951Svbart@nginx.com
1801951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
1812007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1821951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1831951Svbart@nginx.com
1841960Sz.hong@f5.com<change type="change">
1851960Sz.hong@f5.com<para>
1861960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
1871960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
1881960Sz.hong@f5.com</para>
1891960Sz.hong@f5.com</change>
1901960Sz.hong@f5.com
1911960Sz.hong@f5.com<change type="feature">
1921960Sz.hong@f5.com<para>
1932006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior
1942006Svbart@nginx.comwhen updating from previous versions.
1952006Svbart@nginx.com</para>
1962006Svbart@nginx.com</change>
1972006Svbart@nginx.com
1982006Svbart@nginx.com<change type="feature">
1992006Svbart@nginx.com<para>
2001960Sz.hong@f5.comvariables support in the "share" option.
2011960Sz.hong@f5.com</para>
2021960Sz.hong@f5.com</change>
2031960Sz.hong@f5.com
2041959Sz.hong@f5.com<change type="feature">
2051959Sz.hong@f5.com<para>
2061961Sz.hong@f5.commultiple paths in the "share" option.
2071961Sz.hong@f5.com</para>
2081961Sz.hong@f5.com</change>
2091961Sz.hong@f5.com
2101961Sz.hong@f5.com<change type="feature">
2111961Sz.hong@f5.com<para>
2121959Sz.hong@f5.comvariables support in the "chroot" option.
2131959Sz.hong@f5.com</para>
2141959Sz.hong@f5.com</change>
2151959Sz.hong@f5.com
2161969Sz.hong@f5.com<change type="feature">
2171969Sz.hong@f5.com<para>
2182006Svbart@nginx.comPHP opcache is shared between application processes.
2191969Sz.hong@f5.com</para>
2201969Sz.hong@f5.com</change>
2211969Sz.hong@f5.com
2221991Sz.hong@f5.com<change type="feature">
2231991Sz.hong@f5.com<para>
2241991Sz.hong@f5.comrequest routing by the query string.
2251991Sz.hong@f5.com</para>
2261991Sz.hong@f5.com</change>
2271991Sz.hong@f5.com
2281955Smax.romanov@nginx.com<change type="bugfix">
2291955Smax.romanov@nginx.com<para>
2302006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached
2312006Svbart@nginx.comby asynchronous or multithreaded apps.
2321955Smax.romanov@nginx.com</para>
2331955Smax.romanov@nginx.com</change>
2341955Smax.romanov@nginx.com
2351956Smax.romanov@nginx.com<change type="bugfix">
2361956Smax.romanov@nginx.com<para>
2371956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
2381956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
2391956Smax.romanov@nginx.com</para>
2401956Smax.romanov@nginx.com</change>
2411956Smax.romanov@nginx.com
2421992Smax.romanov@nginx.com<change type="bugfix">
2431992Smax.romanov@nginx.com<para>
2442006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35.
2451992Smax.romanov@nginx.com</para>
2461992Smax.romanov@nginx.com</change>
2471992Smax.romanov@nginx.com
2481951Svbart@nginx.com</changes>
2491951Svbart@nginx.com
2501951Svbart@nginx.com
2511951Svbart@nginx.com<changes apply="unit-php
2521951Svbart@nginx.com                unit-python unit-python2.7
2531951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2541951Svbart@nginx.com                unit-python3.8 unit-python3.9
2551951Svbart@nginx.com                unit-go
2561951Svbart@nginx.com                unit-perl
2571951Svbart@nginx.com                unit-ruby
2581951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2591951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
2601896Svbart@nginx.com         ver="1.25.0" rev="1"
2611945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
2621896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2631896Svbart@nginx.com
2641896Svbart@nginx.com<change>
2651896Svbart@nginx.com<para>
2661896Svbart@nginx.comNGINX Unit updated to 1.25.0.
2671896Svbart@nginx.com</para>
2681896Svbart@nginx.com</change>
2691896Svbart@nginx.com
2701896Svbart@nginx.com</changes>
2711896Svbart@nginx.com
2721896Svbart@nginx.com
2731896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
2741945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
2751896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2761896Svbart@nginx.com
2771910So.canty@f5.com<change type="feature">
2781910So.canty@f5.com<para>
2791944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
2801942Sa.suvorov@f5.com</para>
2811942Sa.suvorov@f5.com</change>
2821942Sa.suvorov@f5.com
2831942Sa.suvorov@f5.com<change type="feature">
2841942Sa.suvorov@f5.com<para>
2851920Sa.suvorov@f5.comTLS sessions cache.
2861920Sa.suvorov@f5.com</para>
2871920Sa.suvorov@f5.com</change>
2881920Sa.suvorov@f5.com
2891920Sa.suvorov@f5.com<change type="feature">
2901920Sa.suvorov@f5.com<para>
2911944Svbart@nginx.comTLS session tickets.
2921910So.canty@f5.com</para>
2931910So.canty@f5.com</change>
2941910So.canty@f5.com
2951926Smax.romanov@nginx.com<change type="feature">
2961926Smax.romanov@nginx.com<para>
2971926Smax.romanov@nginx.comapplication restart control.
2981926Smax.romanov@nginx.com</para>
2991926Smax.romanov@nginx.com</change>
3001926Smax.romanov@nginx.com
3011936So.canty@f5.com<change type="feature">
3021936So.canty@f5.com<para>
3031944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
3041936So.canty@f5.com</para>
3051936So.canty@f5.com</change>
3061936So.canty@f5.com
3071907Smax.romanov@nginx.com<change type="bugfix">
3081907Smax.romanov@nginx.com<para>
3091944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
3101944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
3111921Sa.suvorov@f5.com</para>
3121921Sa.suvorov@f5.com</change>
3131921Sa.suvorov@f5.com
3141921Sa.suvorov@f5.com<change type="bugfix">
3151921Sa.suvorov@f5.com<para>
3161944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
3171944Svbart@nginx.combundles in a listener if the client did not use SNI.
3181907Smax.romanov@nginx.com</para>
3191907Smax.romanov@nginx.com</change>
3201907Smax.romanov@nginx.com
3211907Smax.romanov@nginx.com<change type="bugfix">
3221907Smax.romanov@nginx.com<para>
3231950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
3241915Smax.romanov@nginx.comreconfiguration.
3251915Smax.romanov@nginx.com</para>
3261915Smax.romanov@nginx.com</change>
3271915Smax.romanov@nginx.com
3281915Smax.romanov@nginx.com<change type="bugfix">
3291915Smax.romanov@nginx.com<para>
3301944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
3311944Svbart@nginx.comframework.
3321944Svbart@nginx.com</para>
3331944Svbart@nginx.com</change>
3341944Svbart@nginx.com
3351944Svbart@nginx.com<change type="bugfix">
3361944Svbart@nginx.com<para>
3371944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
3381944Svbart@nginx.comstopped or crashed.
3391907Smax.romanov@nginx.com</para>
3401907Smax.romanov@nginx.com</change>
3411907Smax.romanov@nginx.com
3421909So.canty@f5.com<change type="bugfix">
3431909So.canty@f5.com<para>
3441909So.canty@f5.comthe controller or router process could crash if the configuration contained
3451909So.canty@f5.coma full-form IPv6 in a listener address.
3461909So.canty@f5.com</para>
3471909So.canty@f5.com</change>
3481909So.canty@f5.com
3491916Smax.romanov@nginx.com<change type="bugfix">
3501916Smax.romanov@nginx.com<para>
3511929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
3521929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
3531929Sz.hong@f5.com</para>
3541929Sz.hong@f5.com</change>
3551929Sz.hong@f5.com
3561930So.canty@f5.com<change type="bugfix">
3571930So.canty@f5.com<para>
3581944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
3591944Svbart@nginx.comor destination address patterns.
3601930So.canty@f5.com</para>
3611930So.canty@f5.com</change>
3621930So.canty@f5.com
3631896Svbart@nginx.com</changes>
3641896Svbart@nginx.com
3651896Svbart@nginx.com
3661887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
3671891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3681887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3691887Sdefan@nginx.com
3701887Sdefan@nginx.com<change>
3711887Sdefan@nginx.com<para>
3721887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
3731887Sdefan@nginx.com</para>
3741887Sdefan@nginx.com</change>
3751887Sdefan@nginx.com
3761887Sdefan@nginx.com</changes>
3771887Sdefan@nginx.com
3781887Sdefan@nginx.com
3791887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
3801891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3811887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3821887Sdefan@nginx.com
3831887Sdefan@nginx.com<change>
3841887Sdefan@nginx.com<para>
3851887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
3861887Sdefan@nginx.com</para>
3871887Sdefan@nginx.com</change>
3881887Sdefan@nginx.com
3891887Sdefan@nginx.com</changes>
3901887Sdefan@nginx.com
3911887Sdefan@nginx.com
3921834Svbart@nginx.com<changes apply="unit-php
3931834Svbart@nginx.com                unit-python unit-python2.7
3941834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3951834Svbart@nginx.com                unit-python3.8 unit-python3.9
3961834Svbart@nginx.com                unit-go
3971834Svbart@nginx.com                unit-perl
3981834Svbart@nginx.com                unit-ruby
3991834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4001834Svbart@nginx.com                unit-jsc14 unit-jsc15"
4011839Svbart@nginx.com         ver="1.24.0" rev="1"
4021891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4031839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4041839Svbart@nginx.com
4051839Svbart@nginx.com<change>
4061839Svbart@nginx.com<para>
4071839Svbart@nginx.comNGINX Unit updated to 1.24.0.
4081839Svbart@nginx.com</para>
4091839Svbart@nginx.com</change>
4101839Svbart@nginx.com
4111839Svbart@nginx.com</changes>
4121839Svbart@nginx.com
4131839Svbart@nginx.com
4141839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
4151891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4161839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4171839Svbart@nginx.com
4181882So.canty@f5.com<change type="change">
4191882So.canty@f5.com<para>
4201882So.canty@f5.comPHP added to the default MIME type list.
4211882So.canty@f5.com</para>
4221882So.canty@f5.com</change>
4231882So.canty@f5.com
4241855Sz.hong@f5.com<change type="feature">
4251855Sz.hong@f5.com<para>
4261885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
4271885Sa.suvorov@f5.com</para>
4281885Sa.suvorov@f5.com</change>
4291885Sa.suvorov@f5.com
4301885Sa.suvorov@f5.com<change type="feature">
4311885Sa.suvorov@f5.com<para>
4321890Svbart@nginx.comthe ability to limit static file serving by MIME types.
4331890Svbart@nginx.com</para>
4341890Svbart@nginx.com</change>
4351890Svbart@nginx.com
4361890Svbart@nginx.com<change type="feature">
4371890Svbart@nginx.com<para>
4381890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
4391890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
4401872So.canty@f5.com</para>
4411872So.canty@f5.com</change>
4421872So.canty@f5.com
4431872So.canty@f5.com<change type="feature">
4441872So.canty@f5.com<para>
4451889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
4461889Sartem.konev@nginx.comNode.js.
4471865So.canty@f5.com</para>
4481865So.canty@f5.com</change>
4491865So.canty@f5.com
4501865So.canty@f5.com<change type="feature">
4511865So.canty@f5.com<para>
4521890Svbart@nginx.commultiple "targets" in Python applications.
4531855Sz.hong@f5.com</para>
4541855Sz.hong@f5.com</change>
4551855Sz.hong@f5.com
4561870So.canty@f5.com<change type="feature">
4571870So.canty@f5.com<para>
4581870So.canty@f5.comcompatibility with Ruby 3.0.
4591870So.canty@f5.com</para>
4601870So.canty@f5.com</change>
4611870So.canty@f5.com
4621861Svbart@nginx.com<change type="bugfix">
4631861Svbart@nginx.com<para>
4641889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
4651884Sa.suvorov@f5.com</para>
4661884Sa.suvorov@f5.com</change>
4671884Sa.suvorov@f5.com
4681884Sa.suvorov@f5.com<change type="bugfix">
4691884Sa.suvorov@f5.com<para>
4701861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
4711861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
4721861Svbart@nginx.com</para>
4731861Svbart@nginx.com</change>
4741861Svbart@nginx.com
4751839Svbart@nginx.com</changes>
4761839Svbart@nginx.com
4771839Svbart@nginx.com
4781839Svbart@nginx.com<changes apply="unit-php
4791839Svbart@nginx.com                unit-python unit-python2.7
4801839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4811839Svbart@nginx.com                unit-python3.8 unit-python3.9
4821839Svbart@nginx.com                unit-go
4831839Svbart@nginx.com                unit-perl
4841839Svbart@nginx.com                unit-ruby
4851839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4861839Svbart@nginx.com                unit-jsc14 unit-jsc15"
4871834Svbart@nginx.com         ver="1.23.0" rev="1"
4881834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
4891834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4901834Svbart@nginx.com
4911834Svbart@nginx.com<change>
4921834Svbart@nginx.com<para>
4931834Svbart@nginx.comNGINX Unit updated to 1.23.0.
4941834Svbart@nginx.com</para>
4951834Svbart@nginx.com</change>
4961834Svbart@nginx.com
4971834Svbart@nginx.com</changes>
4981834Svbart@nginx.com
4991834Svbart@nginx.com
5001806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
5011834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
5021806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5031806Svbart@nginx.com
5041825Sthresh@nginx.com<change type="feature">
5051825Sthresh@nginx.com<para>
5061833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
5071828Sa.suvorov@f5.comIndication (SNI) TLS extension.
5081828Sa.suvorov@f5.com</para>
5091828Sa.suvorov@f5.com</change>
5101828Sa.suvorov@f5.com
5111828Sa.suvorov@f5.com<change type="feature">
5121828Sa.suvorov@f5.com<para>
5131833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
5141833Sartem.konev@nginx.cominstallation.
5151825Sthresh@nginx.com</para>
5161825Sthresh@nginx.com</change>
5171825Sthresh@nginx.com
5181811Smax.romanov@nginx.com<change type="bugfix">
5191811Smax.romanov@nginx.com<para>
5201812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
5211812Svbart@nginx.comappeared in 1.17.0.
5221812Svbart@nginx.com</para>
5231812Svbart@nginx.com</change>
5241812Svbart@nginx.com
5251812Svbart@nginx.com<change type="bugfix">
5261812Svbart@nginx.com<para>
5271833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
5281812Svbart@nginx.comappeared in 1.6.
5291812Svbart@nginx.com</para>
5301812Svbart@nginx.com</change>
5311812Svbart@nginx.com
5321812Svbart@nginx.com<change type="bugfix">
5331812Svbart@nginx.com<para>
5341833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
5351832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
5361832Smax.romanov@nginx.com</para>
5371832Smax.romanov@nginx.com</change>
5381832Smax.romanov@nginx.com
5391832Smax.romanov@nginx.com<change type="bugfix">
5401832Smax.romanov@nginx.com<para>
5411833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
5421811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
5431811Smax.romanov@nginx.com</para>
5441811Smax.romanov@nginx.com</change>
5451806Svbart@nginx.com
5461813Svbart@nginx.com<change type="bugfix">
5471813Svbart@nginx.com<para>
5481813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
5491813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
5501813Svbart@nginx.com</para>
5511813Svbart@nginx.com</change>
5521813Svbart@nginx.com
5531814Svbart@nginx.com<change type="bugfix">
5541814Svbart@nginx.com<para>
5551820Svbart@nginx.comthe controller process could crash while requesting information about a
5561820Svbart@nginx.comcertificate with a non-DNS SAN entry.
5571820Svbart@nginx.com</para>
5581820Svbart@nginx.com</change>
5591820Svbart@nginx.com
5601820Svbart@nginx.com<change type="bugfix">
5611820Svbart@nginx.com<para>
5621822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
5631833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
5641822Svbart@nginx.com</para>
5651822Svbart@nginx.com</change>
5661822Svbart@nginx.com
5671822Svbart@nginx.com<change type="bugfix">
5681822Svbart@nginx.com<para>
5691833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
5701833Sartem.konev@nginx.comclass.
5711814Svbart@nginx.com</para>
5721814Svbart@nginx.com</change>
5731814Svbart@nginx.com
5741815Svbart@nginx.com<change type="bugfix">
5751815Svbart@nginx.com<para>
5761815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
5771815Svbart@nginx.comappeared in 1.22.0.
5781815Svbart@nginx.com</para>
5791815Svbart@nginx.com</change>
5801815Svbart@nginx.com
5811806Svbart@nginx.com</changes>
5821806Svbart@nginx.com
5831806Svbart@nginx.com
5841798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
5851798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
5861798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5871798Sdefan@nginx.com
5881798Sdefan@nginx.com<change>
5891798Sdefan@nginx.com<para>
5901798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
5911798Sdefan@nginx.com</para>
5921798Sdefan@nginx.com</change>
5931798Sdefan@nginx.com
5941798Sdefan@nginx.com</changes>
5951798Sdefan@nginx.com
5961798Sdefan@nginx.com
5971763Sdefan@nginx.com<changes apply="unit-php
5981763Sdefan@nginx.com                unit-python unit-python2.7
5991763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6001763Sdefan@nginx.com                unit-python3.8
6011763Sdefan@nginx.com                unit-go
6021763Sdefan@nginx.com                unit-perl
6031763Sdefan@nginx.com                unit-ruby
6041763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
6051763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
6061763Sdefan@nginx.com         ver="1.22.0" rev="1"
6071793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
6081763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6091763Sdefan@nginx.com
6101763Sdefan@nginx.com<change>
6111763Sdefan@nginx.com<para>
6121763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
6131763Sdefan@nginx.com</para>
6141763Sdefan@nginx.com</change>
6151763Sdefan@nginx.com
6161763Sdefan@nginx.com</changes>
6171763Sdefan@nginx.com
6181763Sdefan@nginx.com
6191727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
6201793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
6211727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6221727Svbart@nginx.com
6231759Svbart@nginx.com<change type="feature">
6241759Svbart@nginx.com<para>
6251792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
6261792Svbart@nginx.comcompliant with Stream API.
6271759Svbart@nginx.com</para>
6281759Svbart@nginx.com</change>
6291759Svbart@nginx.com
6301766Smax.romanov@nginx.com<change type="feature">
6311766Smax.romanov@nginx.com<para>
6321792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
6331792Svbart@nginx.comapps.
6341732Svbart@nginx.com</para>
6351732Svbart@nginx.com</change>
6361732Svbart@nginx.com
6371733Svbart@nginx.com<change type="bugfix">
6381733Svbart@nginx.com<para>
6391792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
6401792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
6411754Smax.romanov@nginx.com</para>
6421754Smax.romanov@nginx.com</change>
6431754Smax.romanov@nginx.com
6441755Smax.romanov@nginx.com<change type="bugfix">
6451755Smax.romanov@nginx.com<para>
6461790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
6471755Smax.romanov@nginx.comappeared in 1.19.0.
6481755Smax.romanov@nginx.com</para>
6491755Smax.romanov@nginx.com</change>
6501755Smax.romanov@nginx.com
6511756Smax.romanov@nginx.com<change type="bugfix">
6521756Smax.romanov@nginx.com<para>
6531790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
6541790Sartem.konev@nginx.comappeared in 1.19.0.
6551756Smax.romanov@nginx.com</para>
6561756Smax.romanov@nginx.com</change>
6571756Smax.romanov@nginx.com
6581760Smax.romanov@nginx.com<change type="bugfix">
6591760Smax.romanov@nginx.com<para>
6601792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
6611792Svbart@nginx.com</para>
6621792Svbart@nginx.com</change>
6631792Svbart@nginx.com
6641792Svbart@nginx.com<change type="bugfix">
6651792Svbart@nginx.com<para>
6661792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
6671792Svbart@nginx.commissing in the PHP module.
6681792Svbart@nginx.com</para>
6691792Svbart@nginx.com</change>
6701792Svbart@nginx.com
6711792Svbart@nginx.com<change type="bugfix">
6721792Svbart@nginx.com<para>
6731792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
6741792Svbart@nginx.com</para>
6751792Svbart@nginx.com</change>
6761792Svbart@nginx.com
6771792Svbart@nginx.com<change type="bugfix">
6781792Svbart@nginx.com<para>
6791792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
6801792Svbart@nginx.com</para>
6811792Svbart@nginx.com</change>
6821792Svbart@nginx.com
6831792Svbart@nginx.com<change type="bugfix">
6841792Svbart@nginx.com<para>
6851792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
6861792Svbart@nginx.comthe bug had appeared in 1.21.0.
6871760Smax.romanov@nginx.com</para>
6881760Smax.romanov@nginx.com</change>
6891760Smax.romanov@nginx.com
6901780Smax.romanov@nginx.com<change type="bugfix">
6911780Smax.romanov@nginx.com<para>
6921790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
6931790Sartem.konev@nginx.comWebSocket.
6941780Smax.romanov@nginx.com</para>
6951780Smax.romanov@nginx.com</change>
6961780Smax.romanov@nginx.com
6971789Smax.romanov@nginx.com<change type="bugfix">
6981789Smax.romanov@nginx.com<para>
6991789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
7001789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
7011789Smax.romanov@nginx.com</para>
7021789Smax.romanov@nginx.com</change>
7031789Smax.romanov@nginx.com
7041727Svbart@nginx.com</changes>
7051727Svbart@nginx.com
7061727Svbart@nginx.com
7071722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
7081722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7091722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7101722Svbart@nginx.com
7111722Svbart@nginx.com<change>
7121722Svbart@nginx.com<para>
7131722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
7141722Svbart@nginx.com</para>
7151722Svbart@nginx.com</change>
7161722Svbart@nginx.com
7171722Svbart@nginx.com</changes>
7181722Svbart@nginx.com
7191722Svbart@nginx.com
7201722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
7211722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7221722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7231722Svbart@nginx.com
7241722Svbart@nginx.com<change>
7251722Svbart@nginx.com<para>
7261722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
7271722Svbart@nginx.com</para>
7281722Svbart@nginx.com</change>
7291722Svbart@nginx.com
7301722Svbart@nginx.com</changes>
7311722Svbart@nginx.com
7321722Svbart@nginx.com
7331722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
7341722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7351722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7361722Svbart@nginx.com
7371722Svbart@nginx.com<change>
7381722Svbart@nginx.com<para>
7391722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
7401722Svbart@nginx.com</para>
7411722Svbart@nginx.com</change>
7421722Svbart@nginx.com
7431722Svbart@nginx.com</changes>
7441722Svbart@nginx.com
7451722Svbart@nginx.com
7461722Svbart@nginx.com<changes apply="unit-php
7471722Svbart@nginx.com                unit-python unit-python2.7
7481722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7491722Svbart@nginx.com                unit-python3.8
7501722Svbart@nginx.com                unit-go
7511722Svbart@nginx.com                unit-perl
7521722Svbart@nginx.com                unit-ruby
7531722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
7541722Svbart@nginx.com         ver="1.21.0" rev="1"
7551722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7561722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7571722Svbart@nginx.com
7581722Svbart@nginx.com<change>
7591722Svbart@nginx.com<para>
7601722Svbart@nginx.comNGINX Unit updated to 1.21.0.
7611722Svbart@nginx.com</para>
7621722Svbart@nginx.com</change>
7631722Svbart@nginx.com
7641722Svbart@nginx.com</changes>
7651722Svbart@nginx.com
7661722Svbart@nginx.com
7671722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
7681722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7691722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7701722Svbart@nginx.com
7711722Svbart@nginx.com<change type="change">
7721722Svbart@nginx.com<para>
7731722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
7741722Svbart@nginx.com</para>
7751722Svbart@nginx.com</change>
7761722Svbart@nginx.com
7771722Svbart@nginx.com<change type="change">
7781722Svbart@nginx.com<para>
7791722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
7801722Svbart@nginx.comnames.
7811722Svbart@nginx.com</para>
7821722Svbart@nginx.com</change>
7831722Svbart@nginx.com
7841722Svbart@nginx.com<change type="change">
7851722Svbart@nginx.com<para>
7861722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
7871722Svbart@nginx.comdefault.
7881722Svbart@nginx.com</para>
7891722Svbart@nginx.com</change>
7901722Svbart@nginx.com
7911722Svbart@nginx.com<change type="feature">
7921722Svbart@nginx.com<para>
7931722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
7941722Svbart@nginx.com</para>
7951722Svbart@nginx.com</change>
7961722Svbart@nginx.com
7971722Svbart@nginx.com<change type="feature">
7981722Svbart@nginx.com<para>
7991722Svbart@nginx.comregular expressions in route matching patterns.
8001722Svbart@nginx.com</para>
8011722Svbart@nginx.com</change>
8021722Svbart@nginx.com
8031722Svbart@nginx.com<change type="feature">
8041722Svbart@nginx.com<para>
8051722Svbart@nginx.comcompatibility with Python 3.9.
8061722Svbart@nginx.com</para>
8071722Svbart@nginx.com</change>
8081722Svbart@nginx.com
8091722Svbart@nginx.com<change type="feature">
8101722Svbart@nginx.com<para>
8111722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
8121722Svbart@nginx.com</para>
8131722Svbart@nginx.com</change>
8141722Svbart@nginx.com
8151722Svbart@nginx.com<change type="feature">
8161722Svbart@nginx.com<para>
8171722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
8181722Svbart@nginx.com</para>
8191722Svbart@nginx.com</change>
8201722Svbart@nginx.com
8211722Svbart@nginx.com<change type="feature">
8221722Svbart@nginx.com<para>
8231722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
8241722Svbart@nginx.comcontinues code execution without holding onto the client connection.
8251722Svbart@nginx.com</para>
8261722Svbart@nginx.com</change>
8271722Svbart@nginx.com
8281722Svbart@nginx.com<change type="feature">
8291722Svbart@nginx.com<para>
8301722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
8311722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
8321722Svbart@nginx.com</para>
8331722Svbart@nginx.com</change>
8341722Svbart@nginx.com
8351722Svbart@nginx.com<change type="feature">
8361722Svbart@nginx.com<para>
8371722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
8381722Svbart@nginx.commounting of eponymous filesystems.
8391722Svbart@nginx.com</para>
8401722Svbart@nginx.com</change>
8411722Svbart@nginx.com
8421722Svbart@nginx.com<change type="bugfix">
8431722Svbart@nginx.com<para>
8441722Svbart@nginx.comthe router process could crash when running Go applications under high load;
8451722Svbart@nginx.comthe bug had appeared in 1.19.0.
8461722Svbart@nginx.com</para>
8471722Svbart@nginx.com</change>
8481722Svbart@nginx.com
8491722Svbart@nginx.com<change type="bugfix">
8501722Svbart@nginx.com<para>
8511722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
8521722Svbart@nginx.com</para>
8531722Svbart@nginx.com</change>
8541722Svbart@nginx.com
8551722Svbart@nginx.com<change type="bugfix">
8561722Svbart@nginx.com<para>
8571722Svbart@nginx.comvarious compatibility issues in Java applications.
8581722Svbart@nginx.com</para>
8591722Svbart@nginx.com</change>
8601722Svbart@nginx.com
8611722Svbart@nginx.com<change type="bugfix">
8621722Svbart@nginx.com<para>
8631722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
8641722Svbart@nginx.comuse "rootfs" isolation.
8651722Svbart@nginx.com</para>
8661722Svbart@nginx.com</change>
8671722Svbart@nginx.com
8681722Svbart@nginx.com</changes>
8691722Svbart@nginx.com
8701722Svbart@nginx.com
8711330Svbart@nginx.com<changes apply="unit-php
8721330Svbart@nginx.com                unit-python unit-python2.7
8731330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8741330Svbart@nginx.com                unit-python3.8
8751330Svbart@nginx.com                unit-go
8761330Svbart@nginx.com                unit-perl
8771330Svbart@nginx.com                unit-ruby
8781330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8791640Svbart@nginx.com         ver="1.20.0" rev="1"
8801640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
8811640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8821640Svbart@nginx.com
8831640Svbart@nginx.com<change>
8841640Svbart@nginx.com<para>
8851640Svbart@nginx.comNGINX Unit updated to 1.20.0.
8861640Svbart@nginx.com</para>
8871640Svbart@nginx.com</change>
8881640Svbart@nginx.com
8891640Svbart@nginx.com</changes>
8901640Svbart@nginx.com
8911640Svbart@nginx.com
8921640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
8931640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
8941640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8951640Svbart@nginx.com
8961640Svbart@nginx.com<change type="change">
8971640Svbart@nginx.com<para>
8981640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
8991640Svbart@nginx.comextensions from the host system.
9001640Svbart@nginx.com</para>
9011640Svbart@nginx.com</change>
9021640Svbart@nginx.com
9031640Svbart@nginx.com<change type="change">
9041640Svbart@nginx.com<para>
9051640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
9061640Svbart@nginx.com</para>
9071640Svbart@nginx.com</change>
9081640Svbart@nginx.com
9091643Svbart@nginx.com<change type="change">
9101643Svbart@nginx.com<para>
9111643Svbart@nginx.comfunctional tests migrated to the pytest framework.
9121643Svbart@nginx.com</para>
9131643Svbart@nginx.com</change>
9141643Svbart@nginx.com
9151640Svbart@nginx.com<change type="feature">
9161640Svbart@nginx.com<para>
9171640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
9181640Svbart@nginx.cominterface.
9191640Svbart@nginx.com</para>
9201640Svbart@nginx.com</change>
9211640Svbart@nginx.com
9221640Svbart@nginx.com<change type="feature">
9231640Svbart@nginx.com<para>
9241640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
9251640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
9261640Svbart@nginx.comspecification.
9271640Svbart@nginx.com</para>
9281640Svbart@nginx.com</change>
9291640Svbart@nginx.com
9301640Svbart@nginx.com<change type="feature">
9311640Svbart@nginx.com<para>
9321640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
9331640Svbart@nginx.comenvironments.
9341640Svbart@nginx.com</para>
9351640Svbart@nginx.com</change>
9361640Svbart@nginx.com
9371640Svbart@nginx.com<change type="feature">
9381640Svbart@nginx.com<para>
9391640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
9401640Svbart@nginx.com</para>
9411640Svbart@nginx.com</change>
9421640Svbart@nginx.com
9431640Svbart@nginx.com<change type="feature">
9441640Svbart@nginx.com<para>
9451640Svbart@nginx.comthe "callable" option sets Python application callable names.
9461640Svbart@nginx.com</para>
9471640Svbart@nginx.com</change>
9481640Svbart@nginx.com
9491640Svbart@nginx.com<change type="feature">
9501640Svbart@nginx.com<para>
9511640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
9521640Svbart@nginx.com</para>
9531640Svbart@nginx.com</change>
9541640Svbart@nginx.com
9551640Svbart@nginx.com<change type="feature">
9561640Svbart@nginx.com<para>
9571640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
9581640Svbart@nginx.comautomatic mounting of language module dependencies.
9591640Svbart@nginx.com</para>
9601640Svbart@nginx.com</change>
9611640Svbart@nginx.com
9621640Svbart@nginx.com<change type="bugfix">
9631640Svbart@nginx.com<para>
9641640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
9651640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
9661640Svbart@nginx.com</para>
9671640Svbart@nginx.com</change>
9681640Svbart@nginx.com
9691640Svbart@nginx.com<change type="bugfix">
9701640Svbart@nginx.com<para>
9711640Svbart@nginx.comthe router process could crash during reconfiguration.
9721640Svbart@nginx.com</para>
9731640Svbart@nginx.com</change>
9741640Svbart@nginx.com
9751640Svbart@nginx.com<change type="bugfix">
9761640Svbart@nginx.com<para>
9771640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
9781640Svbart@nginx.com</para>
9791640Svbart@nginx.com</change>
9801640Svbart@nginx.com
9811640Svbart@nginx.com<change type="bugfix">
9821640Svbart@nginx.com<para>
9831640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
9841640Svbart@nginx.comthe bug had appeared in 1.19.0.
9851640Svbart@nginx.com</para>
9861640Svbart@nginx.com</change>
9871640Svbart@nginx.com
9881640Svbart@nginx.com<change type="bugfix">
9891640Svbart@nginx.com<para>
9901640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
9911640Svbart@nginx.comthe bug had appeared in 1.16.0.
9921640Svbart@nginx.com</para>
9931640Svbart@nginx.com</change>
9941640Svbart@nginx.com
9951640Svbart@nginx.com</changes>
9961640Svbart@nginx.com
9971640Svbart@nginx.com
9981640Svbart@nginx.com<changes apply="unit-php
9991640Svbart@nginx.com                unit-python unit-python2.7
10001640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10011640Svbart@nginx.com                unit-python3.8
10021640Svbart@nginx.com                unit-go
10031640Svbart@nginx.com                unit-perl
10041640Svbart@nginx.com                unit-ruby
10051640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10061570Svbart@nginx.com         ver="1.19.0" rev="1"
10071570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
10081570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10091570Svbart@nginx.com
10101570Svbart@nginx.com<change>
10111570Svbart@nginx.com<para>
10121570Svbart@nginx.comNGINX Unit updated to 1.19.0.
10131570Svbart@nginx.com</para>
10141570Svbart@nginx.com</change>
10151570Svbart@nginx.com
10161570Svbart@nginx.com</changes>
10171570Svbart@nginx.com
10181570Svbart@nginx.com
10191570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1"
10201570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
10211570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10221570Svbart@nginx.com
10231570Svbart@nginx.com<change type="feature">
10241570Svbart@nginx.com<para>
10251570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
10261570Svbart@nginx.comincrease performance, and improve scalability.
10271570Svbart@nginx.com</para>
10281570Svbart@nginx.com</change>
10291570Svbart@nginx.com
10301570Svbart@nginx.com<change type="feature">
10311570Svbart@nginx.com<para>
10321570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns.
10331570Svbart@nginx.com</para>
10341570Svbart@nginx.com</change>
10351570Svbart@nginx.com
10361570Svbart@nginx.com<change type="feature">
10371570Svbart@nginx.com<para>
10381570Svbart@nginx.comchunked transfer encoding in proxy responses.
10391570Svbart@nginx.com</para>
10401570Svbart@nginx.com</change>
10411570Svbart@nginx.com
10421570Svbart@nginx.com<change type="feature">
10431570Svbart@nginx.com<para>
10441570Svbart@nginx.combasic variables support in the "pass" option.
10451570Svbart@nginx.com</para>
10461570Svbart@nginx.com</change>
10471570Svbart@nginx.com
10481570Svbart@nginx.com<change type="feature">
10491570Svbart@nginx.com<para>
10501570Svbart@nginx.comcompatibility with PHP 8 Beta 1.
10511570Svbart@nginx.comThanks to Remi Collet.
10521570Svbart@nginx.com</para>
10531570Svbart@nginx.com</change>
10541570Svbart@nginx.com
10551570Svbart@nginx.com<change type="bugfix">
10561570Svbart@nginx.com<para>
10571570Svbart@nginx.comthe router process could crash while passing requests to an application under
10581570Svbart@nginx.comhigh load.
10591570Svbart@nginx.com</para>
10601570Svbart@nginx.com</change>
10611570Svbart@nginx.com
10621570Svbart@nginx.com<change type="bugfix">
10631570Svbart@nginx.com<para>
10641570Svbart@nginx.coma number of language modules failed to build on some systems;
10651570Svbart@nginx.comthe bug had appeared in 1.18.0.
10661570Svbart@nginx.com</para>
10671570Svbart@nginx.com</change>
10681570Svbart@nginx.com
10691570Svbart@nginx.com<change type="bugfix">
10701570Svbart@nginx.com<para>
10711570Svbart@nginx.comtime in error log messages from PHP applications could lag.
10721570Svbart@nginx.com</para>
10731570Svbart@nginx.com</change>
10741570Svbart@nginx.com
10751570Svbart@nginx.com<change type="bugfix">
10761570Svbart@nginx.com<para>
10771570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start;
10781570Svbart@nginx.comthe bug had appeared in 1.18.0.
10791570Svbart@nginx.com</para>
10801570Svbart@nginx.com</change>
10811570Svbart@nginx.com
10821570Svbart@nginx.com<change type="bugfix">
10831570Svbart@nginx.com<para>
10841570Svbart@nginx.commemory leak during reconfiguration.
10851570Svbart@nginx.com</para>
10861570Svbart@nginx.com</change>
10871570Svbart@nginx.com
10881570Svbart@nginx.com<change type="bugfix">
10891570Svbart@nginx.com<para>
10901570Svbart@nginx.comthe daemon didn't start without language modules;
10911570Svbart@nginx.comthe bug had appeared in 1.18.0.
10921570Svbart@nginx.com</para>
10931570Svbart@nginx.com</change>
10941570Svbart@nginx.com
10951570Svbart@nginx.com<change type="bugfix">
10961570Svbart@nginx.com<para>
10971570Svbart@nginx.comthe router process 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.comNode.js applications could crash at exit.
11041570Svbart@nginx.com</para>
11051570Svbart@nginx.com</change>
11061570Svbart@nginx.com
11071570Svbart@nginx.com<change type="bugfix">
11081570Svbart@nginx.com<para>
11091570Svbart@nginx.comthe Ruby module could be linked against a wrong library version.
11101570Svbart@nginx.com</para>
11111570Svbart@nginx.com</change>
11121570Svbart@nginx.com
11131570Svbart@nginx.com</changes>
11141570Svbart@nginx.com
11151570Svbart@nginx.com
11161570Svbart@nginx.com<changes apply="unit-php
11171570Svbart@nginx.com                unit-python unit-python2.7
11181570Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11191570Svbart@nginx.com                unit-python3.8
11201570Svbart@nginx.com                unit-go
11211570Svbart@nginx.com                unit-perl
11221570Svbart@nginx.com                unit-ruby
11231570Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11241491Svbart@nginx.com         ver="1.18.0" rev="1"
11251491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
11261491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11271491Svbart@nginx.com
11281491Svbart@nginx.com<change>
11291491Svbart@nginx.com<para>
11301491Svbart@nginx.comNGINX Unit updated to 1.18.0.
11311491Svbart@nginx.com</para>
11321491Svbart@nginx.com</change>
11331491Svbart@nginx.com
11341491Svbart@nginx.com</changes>
11351491Svbart@nginx.com
11361491Svbart@nginx.com
11371491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1"
11381491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
11391491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11401491Svbart@nginx.com
11411491Svbart@nginx.com<change type="feature">
11421491Svbart@nginx.com<para>
11431491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application.
11441491Svbart@nginx.com</para>
11451491Svbart@nginx.com</change>
11461491Svbart@nginx.com
11471491Svbart@nginx.com<change type="feature">
11481491Svbart@nginx.com<para>
11491491Svbart@nginx.commultiple "targets" in PHP applications.
11501491Svbart@nginx.com</para>
11511491Svbart@nginx.com</change>
1152