xref: /unit/docs/changes.xml (revision 2093)
1369Sdefan@nginx.com<?xml version="1.0" ?>
2369Sdefan@nginx.com<!DOCTYPE change_log SYSTEM "changes.dtd" >
3369Sdefan@nginx.com
4369Sdefan@nginx.com
5369Sdefan@nginx.com<change_log title="unit">
6369Sdefan@nginx.com
7369Sdefan@nginx.com
82029SN/A<changes apply="unit-php
92029SN/A                unit-python unit-python2.7
102029SN/A                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
112029SN/A                unit-python3.8 unit-python3.9 unit-python3.10
122029SN/A                unit-go
132029SN/A                unit-perl
142029SN/A                unit-ruby
152029SN/A                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
162029SN/A                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
172012Svbart@nginx.com         ver="1.27.0" rev="1"
182012Svbart@nginx.com         date="" time=""
192012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
202012Svbart@nginx.com
212012Svbart@nginx.com<change>
222012Svbart@nginx.com<para>
232012Svbart@nginx.comNGINX Unit updated to 1.27.0.
242012Svbart@nginx.com</para>
252012Svbart@nginx.com</change>
262012Svbart@nginx.com
272012Svbart@nginx.com</changes>
282012Svbart@nginx.com
292012Svbart@nginx.com
302012Svbart@nginx.com<changes apply="unit" ver="1.27.0" rev="1"
312012Svbart@nginx.com         date="" time=""
322012Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
332012Svbart@nginx.com
342087Sz.hong@f5.com<change type="change">
352087Sz.hong@f5.com<para>
362087Sz.hong@f5.comRuby Rack environment parameter "SCRIPT_NAME" support.
372087Sz.hong@f5.com</para>
382087Sz.hong@f5.com</change>
392087Sz.hong@f5.com
402072Sz.hong@f5.com<change type="feature">
412072Sz.hong@f5.com<para>
422081Salx.manpages@gmail.comvariables support in the "location" option of the "return" action.
432081Salx.manpages@gmail.com</para>
442081Salx.manpages@gmail.com</change>
452081Salx.manpages@gmail.com
462081Salx.manpages@gmail.com<change type="feature">
472081Salx.manpages@gmail.com<para>
482072Sz.hong@f5.comcompatibility with GCC 12.
492072Sz.hong@f5.com</para>
502072Sz.hong@f5.com</change>
512072Sz.hong@f5.com
522060Smax.romanov@nginx.com<change type="bugfix">
532060Smax.romanov@nginx.com<para>
54*2093Sz.hong@f5.comRuby Sinatra applications don't work without custom logging.
55*2093Sz.hong@f5.com</para>
56*2093Sz.hong@f5.com</change>
57*2093Sz.hong@f5.com
58*2093Sz.hong@f5.com<change type="bugfix">
59*2093Sz.hong@f5.com<para>
602069Sz.hong@f5.comthe controller process could crash when a chain with more than 4
612069Sz.hong@f5.comcertificates was uploaded.
622069Sz.hong@f5.com</para>
632069Sz.hong@f5.com</change>
642069Sz.hong@f5.com
652069Sz.hong@f5.com<change type="bugfix">
662069Sz.hong@f5.com<para>
672060Smax.romanov@nginx.comsome Perl applications failed to process the request body, notably with Plack.
682060Smax.romanov@nginx.com</para>
692060Smax.romanov@nginx.com</change>
702060Smax.romanov@nginx.com
712061Smax.romanov@nginx.com<change type="bugfix">
722061Smax.romanov@nginx.com<para>
732061Smax.romanov@nginx.comsome Spring Boot applications failed to start, notably with Grails.
742061Smax.romanov@nginx.com</para>
752061Smax.romanov@nginx.com</change>
762061Smax.romanov@nginx.com
772067Smax.romanov@nginx.com<change type="bugfix">
782067Smax.romanov@nginx.com<para>
792067Smax.romanov@nginx.comincorrect Python protocol auto detection (ASGI or WSGI) for native callable
802067Smax.romanov@nginx.comobject, notably with Falcon.
812067Smax.romanov@nginx.com</para>
822067Smax.romanov@nginx.com</change>
832067Smax.romanov@nginx.com
842050Svbart@nginx.com</changes>
852050Svbart@nginx.com
862050Svbart@nginx.com
872050Svbart@nginx.com<changes apply="unit-php
882050Svbart@nginx.com                unit-python unit-python2.7
892050Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
902050Svbart@nginx.com                unit-python3.8 unit-python3.9 unit-python3.10
912050Svbart@nginx.com                unit-go
922050Svbart@nginx.com                unit-perl
932050Svbart@nginx.com                unit-ruby
942050Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
952050Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18"
962029SN/A         ver="1.26.1" rev="1"
972045SN/A         date="2021-12-02" time="18:00:00 +0300"
982029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
992029SN/A
1002029SN/A<change>
1012029SN/A<para>
1022029SN/ANGINX Unit updated to 1.26.1.
1032029SN/A</para>
1042029SN/A</change>
1052029SN/A
1062029SN/A</changes>
1072029SN/A
1082029SN/A
1092029SN/A<changes apply="unit" ver="1.26.1" rev="1"
1102045SN/A         date="2021-12-02" time="18:00:00 +0300"
1112029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1122029SN/A
1132033SN/A<change type="bugfix">
1142033SN/A<para>
1152044SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had
1162044SN/Aappeared in 1.26.0.
1172033SN/A</para>
1182033SN/A</change>
1192033SN/A
1202034SN/A<change type="bugfix">
1212034SN/A<para>
1222044SN/Aa prototype process could crash on an application process exit; the bug had
1232034SN/Aappeared in 1.26.0.
1242034SN/A</para>
1252034SN/A</change>
1262034SN/A
1272035SN/A<change type="bugfix">
1282035SN/A<para>
1292044SN/Athe router process crashed on reconfiguration if "access_log" was configured
1302044SN/Awithout listeners.
1312044SN/A</para>
1322044SN/A</change>
1332044SN/A
1342044SN/A<change type="bugfix">
1352044SN/A<para>
1362035SN/Aa segmentation fault occurred in the PHP module if chdir() or
1372035SN/Afastcgi_finish_request() was called in the OPcache preloading script.
1382035SN/A</para>
1392035SN/A</change>
1402035SN/A
1412040SN/A<change type="bugfix">
1422040SN/A<para>
1432041SN/Afatal errors on DragonFly BSD; the bug had appeared in 1.26.0.
1442041SN/A</para>
1452041SN/A</change>
1462041SN/A
1472029SN/A</changes>
1482029SN/A
1492029SN/A
1501973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1"
1512007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1521973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1531973Sdefan@nginx.com
1541973Sdefan@nginx.com<change>
1551973Sdefan@nginx.com<para>
1561973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit.
1571973Sdefan@nginx.com</para>
1581973Sdefan@nginx.com</change>
1591973Sdefan@nginx.com
1601973Sdefan@nginx.com</changes>
1611973Sdefan@nginx.com
1621973Sdefan@nginx.com
1631973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1"
1642007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1651973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1661973Sdefan@nginx.com
1671973Sdefan@nginx.com<change>
1681973Sdefan@nginx.com<para>
1691973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit.
1701973Sdefan@nginx.com</para>
1711973Sdefan@nginx.com</change>
1721973Sdefan@nginx.com
1731973Sdefan@nginx.com</changes>
1741973Sdefan@nginx.com
1751973Sdefan@nginx.com
1761896Svbart@nginx.com<changes apply="unit-php
1771896Svbart@nginx.com                unit-python unit-python2.7
1781896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1791896Svbart@nginx.com                unit-python3.8 unit-python3.9
1801896Svbart@nginx.com                unit-go
1811896Svbart@nginx.com                unit-perl
1821896Svbart@nginx.com                unit-ruby
1831896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1841896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
1851951Svbart@nginx.com         ver="1.26.0" rev="1"
1862007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1871951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1881951Svbart@nginx.com
1891951Svbart@nginx.com<change>
1901951Svbart@nginx.com<para>
1911951Svbart@nginx.comNGINX Unit updated to 1.26.0.
1921951Svbart@nginx.com</para>
1931951Svbart@nginx.com</change>
1941951Svbart@nginx.com
1951951Svbart@nginx.com</changes>
1961951Svbart@nginx.com
1971951Svbart@nginx.com
1981951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
1992007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
2001951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2011951Svbart@nginx.com
2021960Sz.hong@f5.com<change type="change">
2031960Sz.hong@f5.com<para>
2041960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
2051960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
2061960Sz.hong@f5.com</para>
2071960Sz.hong@f5.com</change>
2081960Sz.hong@f5.com
2091960Sz.hong@f5.com<change type="feature">
2101960Sz.hong@f5.com<para>
2112006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior
2122006Svbart@nginx.comwhen updating from previous versions.
2132006Svbart@nginx.com</para>
2142006Svbart@nginx.com</change>
2152006Svbart@nginx.com
2162006Svbart@nginx.com<change type="feature">
2172006Svbart@nginx.com<para>
2181960Sz.hong@f5.comvariables support in the "share" option.
2191960Sz.hong@f5.com</para>
2201960Sz.hong@f5.com</change>
2211960Sz.hong@f5.com
2221959Sz.hong@f5.com<change type="feature">
2231959Sz.hong@f5.com<para>
2241961Sz.hong@f5.commultiple paths in the "share" option.
2251961Sz.hong@f5.com</para>
2261961Sz.hong@f5.com</change>
2271961Sz.hong@f5.com
2281961Sz.hong@f5.com<change type="feature">
2291961Sz.hong@f5.com<para>
2301959Sz.hong@f5.comvariables support in the "chroot" option.
2311959Sz.hong@f5.com</para>
2321959Sz.hong@f5.com</change>
2331959Sz.hong@f5.com
2341969Sz.hong@f5.com<change type="feature">
2351969Sz.hong@f5.com<para>
2362006Svbart@nginx.comPHP opcache is shared between application processes.
2371969Sz.hong@f5.com</para>
2381969Sz.hong@f5.com</change>
2391969Sz.hong@f5.com
2401991Sz.hong@f5.com<change type="feature">
2411991Sz.hong@f5.com<para>
2421991Sz.hong@f5.comrequest routing by the query string.
2431991Sz.hong@f5.com</para>
2441991Sz.hong@f5.com</change>
2451991Sz.hong@f5.com
2461955Smax.romanov@nginx.com<change type="bugfix">
2471955Smax.romanov@nginx.com<para>
2482006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached
2492006Svbart@nginx.comby asynchronous or multithreaded apps.
2501955Smax.romanov@nginx.com</para>
2511955Smax.romanov@nginx.com</change>
2521955Smax.romanov@nginx.com
2531956Smax.romanov@nginx.com<change type="bugfix">
2541956Smax.romanov@nginx.com<para>
2551956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
2561956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
2571956Smax.romanov@nginx.com</para>
2581956Smax.romanov@nginx.com</change>
2591956Smax.romanov@nginx.com
2601992Smax.romanov@nginx.com<change type="bugfix">
2611992Smax.romanov@nginx.com<para>
2622006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35.
2631992Smax.romanov@nginx.com</para>
2641992Smax.romanov@nginx.com</change>
2651992Smax.romanov@nginx.com
2661951Svbart@nginx.com</changes>
2671951Svbart@nginx.com
2681951Svbart@nginx.com
2691951Svbart@nginx.com<changes apply="unit-php
2701951Svbart@nginx.com                unit-python unit-python2.7
2711951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2721951Svbart@nginx.com                unit-python3.8 unit-python3.9
2731951Svbart@nginx.com                unit-go
2741951Svbart@nginx.com                unit-perl
2751951Svbart@nginx.com                unit-ruby
2761951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2771951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
2781896Svbart@nginx.com         ver="1.25.0" rev="1"
2791945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
2801896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2811896Svbart@nginx.com
2821896Svbart@nginx.com<change>
2831896Svbart@nginx.com<para>
2841896Svbart@nginx.comNGINX Unit updated to 1.25.0.
2851896Svbart@nginx.com</para>
2861896Svbart@nginx.com</change>
2871896Svbart@nginx.com
2881896Svbart@nginx.com</changes>
2891896Svbart@nginx.com
2901896Svbart@nginx.com
2911896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
2921945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
2931896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2941896Svbart@nginx.com
2951910So.canty@f5.com<change type="feature">
2961910So.canty@f5.com<para>
2971944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
2981942Sa.suvorov@f5.com</para>
2991942Sa.suvorov@f5.com</change>
3001942Sa.suvorov@f5.com
3011942Sa.suvorov@f5.com<change type="feature">
3021942Sa.suvorov@f5.com<para>
3031920Sa.suvorov@f5.comTLS sessions cache.
3041920Sa.suvorov@f5.com</para>
3051920Sa.suvorov@f5.com</change>
3061920Sa.suvorov@f5.com
3071920Sa.suvorov@f5.com<change type="feature">
3081920Sa.suvorov@f5.com<para>
3091944Svbart@nginx.comTLS session tickets.
3101910So.canty@f5.com</para>
3111910So.canty@f5.com</change>
3121910So.canty@f5.com
3131926Smax.romanov@nginx.com<change type="feature">
3141926Smax.romanov@nginx.com<para>
3151926Smax.romanov@nginx.comapplication restart control.
3161926Smax.romanov@nginx.com</para>
3171926Smax.romanov@nginx.com</change>
3181926Smax.romanov@nginx.com
3191936So.canty@f5.com<change type="feature">
3201936So.canty@f5.com<para>
3211944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
3221936So.canty@f5.com</para>
3231936So.canty@f5.com</change>
3241936So.canty@f5.com
3251907Smax.romanov@nginx.com<change type="bugfix">
3261907Smax.romanov@nginx.com<para>
3271944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
3281944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
3291921Sa.suvorov@f5.com</para>
3301921Sa.suvorov@f5.com</change>
3311921Sa.suvorov@f5.com
3321921Sa.suvorov@f5.com<change type="bugfix">
3331921Sa.suvorov@f5.com<para>
3341944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
3351944Svbart@nginx.combundles in a listener if the client did not use SNI.
3361907Smax.romanov@nginx.com</para>
3371907Smax.romanov@nginx.com</change>
3381907Smax.romanov@nginx.com
3391907Smax.romanov@nginx.com<change type="bugfix">
3401907Smax.romanov@nginx.com<para>
3411950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
3421915Smax.romanov@nginx.comreconfiguration.
3431915Smax.romanov@nginx.com</para>
3441915Smax.romanov@nginx.com</change>
3451915Smax.romanov@nginx.com
3461915Smax.romanov@nginx.com<change type="bugfix">
3471915Smax.romanov@nginx.com<para>
3481944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
3491944Svbart@nginx.comframework.
3501944Svbart@nginx.com</para>
3511944Svbart@nginx.com</change>
3521944Svbart@nginx.com
3531944Svbart@nginx.com<change type="bugfix">
3541944Svbart@nginx.com<para>
3551944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
3561944Svbart@nginx.comstopped or crashed.
3571907Smax.romanov@nginx.com</para>
3581907Smax.romanov@nginx.com</change>
3591907Smax.romanov@nginx.com
3601909So.canty@f5.com<change type="bugfix">
3611909So.canty@f5.com<para>
3621909So.canty@f5.comthe controller or router process could crash if the configuration contained
3631909So.canty@f5.coma full-form IPv6 in a listener address.
3641909So.canty@f5.com</para>
3651909So.canty@f5.com</change>
3661909So.canty@f5.com
3671916Smax.romanov@nginx.com<change type="bugfix">
3681916Smax.romanov@nginx.com<para>
3691929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
3701929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
3711929Sz.hong@f5.com</para>
3721929Sz.hong@f5.com</change>
3731929Sz.hong@f5.com
3741930So.canty@f5.com<change type="bugfix">
3751930So.canty@f5.com<para>
3761944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
3771944Svbart@nginx.comor destination address patterns.
3781930So.canty@f5.com</para>
3791930So.canty@f5.com</change>
3801930So.canty@f5.com
3811896Svbart@nginx.com</changes>
3821896Svbart@nginx.com
3831896Svbart@nginx.com
3841887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
3851891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3861887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3871887Sdefan@nginx.com
3881887Sdefan@nginx.com<change>
3891887Sdefan@nginx.com<para>
3901887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
3911887Sdefan@nginx.com</para>
3921887Sdefan@nginx.com</change>
3931887Sdefan@nginx.com
3941887Sdefan@nginx.com</changes>
3951887Sdefan@nginx.com
3961887Sdefan@nginx.com
3971887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
3981891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3991887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4001887Sdefan@nginx.com
4011887Sdefan@nginx.com<change>
4021887Sdefan@nginx.com<para>
4031887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
4041887Sdefan@nginx.com</para>
4051887Sdefan@nginx.com</change>
4061887Sdefan@nginx.com
4071887Sdefan@nginx.com</changes>
4081887Sdefan@nginx.com
4091887Sdefan@nginx.com
4101834Svbart@nginx.com<changes apply="unit-php
4111834Svbart@nginx.com                unit-python unit-python2.7
4121834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4131834Svbart@nginx.com                unit-python3.8 unit-python3.9
4141834Svbart@nginx.com                unit-go
4151834Svbart@nginx.com                unit-perl
4161834Svbart@nginx.com                unit-ruby
4171834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4181834Svbart@nginx.com                unit-jsc14 unit-jsc15"
4191839Svbart@nginx.com         ver="1.24.0" rev="1"
4201891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4211839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4221839Svbart@nginx.com
4231839Svbart@nginx.com<change>
4241839Svbart@nginx.com<para>
4251839Svbart@nginx.comNGINX Unit updated to 1.24.0.
4261839Svbart@nginx.com</para>
4271839Svbart@nginx.com</change>
4281839Svbart@nginx.com
4291839Svbart@nginx.com</changes>
4301839Svbart@nginx.com
4311839Svbart@nginx.com
4321839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
4331891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
4341839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4351839Svbart@nginx.com
4361882So.canty@f5.com<change type="change">
4371882So.canty@f5.com<para>
4381882So.canty@f5.comPHP added to the default MIME type list.
4391882So.canty@f5.com</para>
4401882So.canty@f5.com</change>
4411882So.canty@f5.com
4421855Sz.hong@f5.com<change type="feature">
4431855Sz.hong@f5.com<para>
4441885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
4451885Sa.suvorov@f5.com</para>
4461885Sa.suvorov@f5.com</change>
4471885Sa.suvorov@f5.com
4481885Sa.suvorov@f5.com<change type="feature">
4491885Sa.suvorov@f5.com<para>
4501890Svbart@nginx.comthe ability to limit static file serving by MIME types.
4511890Svbart@nginx.com</para>
4521890Svbart@nginx.com</change>
4531890Svbart@nginx.com
4541890Svbart@nginx.com<change type="feature">
4551890Svbart@nginx.com<para>
4561890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
4571890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
4581872So.canty@f5.com</para>
4591872So.canty@f5.com</change>
4601872So.canty@f5.com
4611872So.canty@f5.com<change type="feature">
4621872So.canty@f5.com<para>
4631889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
4641889Sartem.konev@nginx.comNode.js.
4651865So.canty@f5.com</para>
4661865So.canty@f5.com</change>
4671865So.canty@f5.com
4681865So.canty@f5.com<change type="feature">
4691865So.canty@f5.com<para>
4701890Svbart@nginx.commultiple "targets" in Python applications.
4711855Sz.hong@f5.com</para>
4721855Sz.hong@f5.com</change>
4731855Sz.hong@f5.com
4741870So.canty@f5.com<change type="feature">
4751870So.canty@f5.com<para>
4761870So.canty@f5.comcompatibility with Ruby 3.0.
4771870So.canty@f5.com</para>
4781870So.canty@f5.com</change>
4791870So.canty@f5.com
4801861Svbart@nginx.com<change type="bugfix">
4811861Svbart@nginx.com<para>
4821889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
4831884Sa.suvorov@f5.com</para>
4841884Sa.suvorov@f5.com</change>
4851884Sa.suvorov@f5.com
4861884Sa.suvorov@f5.com<change type="bugfix">
4871884Sa.suvorov@f5.com<para>
4881861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
4891861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
4901861Svbart@nginx.com</para>
4911861Svbart@nginx.com</change>
4921861Svbart@nginx.com
4931839Svbart@nginx.com</changes>
4941839Svbart@nginx.com
4951839Svbart@nginx.com
4961839Svbart@nginx.com<changes apply="unit-php
4971839Svbart@nginx.com                unit-python unit-python2.7
4981839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4991839Svbart@nginx.com                unit-python3.8 unit-python3.9
5001839Svbart@nginx.com                unit-go
5011839Svbart@nginx.com                unit-perl
5021839Svbart@nginx.com                unit-ruby
5031839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
5041839Svbart@nginx.com                unit-jsc14 unit-jsc15"
5051834Svbart@nginx.com         ver="1.23.0" rev="1"
5061834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
5071834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5081834Svbart@nginx.com
5091834Svbart@nginx.com<change>
5101834Svbart@nginx.com<para>
5111834Svbart@nginx.comNGINX Unit updated to 1.23.0.
5121834Svbart@nginx.com</para>
5131834Svbart@nginx.com</change>
5141834Svbart@nginx.com
5151834Svbart@nginx.com</changes>
5161834Svbart@nginx.com
5171834Svbart@nginx.com
5181806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
5191834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
5201806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5211806Svbart@nginx.com
5221825Sthresh@nginx.com<change type="feature">
5231825Sthresh@nginx.com<para>
5241833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
5251828Sa.suvorov@f5.comIndication (SNI) TLS extension.
5261828Sa.suvorov@f5.com</para>
5271828Sa.suvorov@f5.com</change>
5281828Sa.suvorov@f5.com
5291828Sa.suvorov@f5.com<change type="feature">
5301828Sa.suvorov@f5.com<para>
5311833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
5321833Sartem.konev@nginx.cominstallation.
5331825Sthresh@nginx.com</para>
5341825Sthresh@nginx.com</change>
5351825Sthresh@nginx.com
5361811Smax.romanov@nginx.com<change type="bugfix">
5371811Smax.romanov@nginx.com<para>
5381812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
5391812Svbart@nginx.comappeared in 1.17.0.
5401812Svbart@nginx.com</para>
5411812Svbart@nginx.com</change>
5421812Svbart@nginx.com
5431812Svbart@nginx.com<change type="bugfix">
5441812Svbart@nginx.com<para>
5451833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
5461812Svbart@nginx.comappeared in 1.6.
5471812Svbart@nginx.com</para>
5481812Svbart@nginx.com</change>
5491812Svbart@nginx.com
5501812Svbart@nginx.com<change type="bugfix">
5511812Svbart@nginx.com<para>
5521833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
5531832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
5541832Smax.romanov@nginx.com</para>
5551832Smax.romanov@nginx.com</change>
5561832Smax.romanov@nginx.com
5571832Smax.romanov@nginx.com<change type="bugfix">
5581832Smax.romanov@nginx.com<para>
5591833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
5601811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
5611811Smax.romanov@nginx.com</para>
5621811Smax.romanov@nginx.com</change>
5631806Svbart@nginx.com
5641813Svbart@nginx.com<change type="bugfix">
5651813Svbart@nginx.com<para>
5661813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
5671813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
5681813Svbart@nginx.com</para>
5691813Svbart@nginx.com</change>
5701813Svbart@nginx.com
5711814Svbart@nginx.com<change type="bugfix">
5721814Svbart@nginx.com<para>
5731820Svbart@nginx.comthe controller process could crash while requesting information about a
5741820Svbart@nginx.comcertificate with a non-DNS SAN entry.
5751820Svbart@nginx.com</para>
5761820Svbart@nginx.com</change>
5771820Svbart@nginx.com
5781820Svbart@nginx.com<change type="bugfix">
5791820Svbart@nginx.com<para>
5801822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
5811833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
5821822Svbart@nginx.com</para>
5831822Svbart@nginx.com</change>
5841822Svbart@nginx.com
5851822Svbart@nginx.com<change type="bugfix">
5861822Svbart@nginx.com<para>
5871833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
5881833Sartem.konev@nginx.comclass.
5891814Svbart@nginx.com</para>
5901814Svbart@nginx.com</change>
5911814Svbart@nginx.com
5921815Svbart@nginx.com<change type="bugfix">
5931815Svbart@nginx.com<para>
5941815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
5951815Svbart@nginx.comappeared in 1.22.0.
5961815Svbart@nginx.com</para>
5971815Svbart@nginx.com</change>
5981815Svbart@nginx.com
5991806Svbart@nginx.com</changes>
6001806Svbart@nginx.com
6011806Svbart@nginx.com
6021798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
6031798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
6041798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6051798Sdefan@nginx.com
6061798Sdefan@nginx.com<change>
6071798Sdefan@nginx.com<para>
6081798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
6091798Sdefan@nginx.com</para>
6101798Sdefan@nginx.com</change>
6111798Sdefan@nginx.com
6121798Sdefan@nginx.com</changes>
6131798Sdefan@nginx.com
6141798Sdefan@nginx.com
6151763Sdefan@nginx.com<changes apply="unit-php
6161763Sdefan@nginx.com                unit-python unit-python2.7
6171763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6181763Sdefan@nginx.com                unit-python3.8
6191763Sdefan@nginx.com                unit-go
6201763Sdefan@nginx.com                unit-perl
6211763Sdefan@nginx.com                unit-ruby
6221763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
6231763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
6241763Sdefan@nginx.com         ver="1.22.0" rev="1"
6251793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
6261763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6271763Sdefan@nginx.com
6281763Sdefan@nginx.com<change>
6291763Sdefan@nginx.com<para>
6301763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
6311763Sdefan@nginx.com</para>
6321763Sdefan@nginx.com</change>
6331763Sdefan@nginx.com
6341763Sdefan@nginx.com</changes>
6351763Sdefan@nginx.com
6361763Sdefan@nginx.com
6371727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
6381793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
6391727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6401727Svbart@nginx.com
6411759Svbart@nginx.com<change type="feature">
6421759Svbart@nginx.com<para>
6431792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
6441792Svbart@nginx.comcompliant with Stream API.
6451759Svbart@nginx.com</para>
6461759Svbart@nginx.com</change>
6471759Svbart@nginx.com
6481766Smax.romanov@nginx.com<change type="feature">
6491766Smax.romanov@nginx.com<para>
6501792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
6511792Svbart@nginx.comapps.
6521732Svbart@nginx.com</para>
6531732Svbart@nginx.com</change>
6541732Svbart@nginx.com
6551733Svbart@nginx.com<change type="bugfix">
6561733Svbart@nginx.com<para>
6571792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
6581792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
6591754Smax.romanov@nginx.com</para>
6601754Smax.romanov@nginx.com</change>
6611754Smax.romanov@nginx.com
6621755Smax.romanov@nginx.com<change type="bugfix">
6631755Smax.romanov@nginx.com<para>
6641790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
6651755Smax.romanov@nginx.comappeared in 1.19.0.
6661755Smax.romanov@nginx.com</para>
6671755Smax.romanov@nginx.com</change>
6681755Smax.romanov@nginx.com
6691756Smax.romanov@nginx.com<change type="bugfix">
6701756Smax.romanov@nginx.com<para>
6711790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
6721790Sartem.konev@nginx.comappeared in 1.19.0.
6731756Smax.romanov@nginx.com</para>
6741756Smax.romanov@nginx.com</change>
6751756Smax.romanov@nginx.com
6761760Smax.romanov@nginx.com<change type="bugfix">
6771760Smax.romanov@nginx.com<para>
6781792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
6791792Svbart@nginx.com</para>
6801792Svbart@nginx.com</change>
6811792Svbart@nginx.com
6821792Svbart@nginx.com<change type="bugfix">
6831792Svbart@nginx.com<para>
6841792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
6851792Svbart@nginx.commissing in the PHP module.
6861792Svbart@nginx.com</para>
6871792Svbart@nginx.com</change>
6881792Svbart@nginx.com
6891792Svbart@nginx.com<change type="bugfix">
6901792Svbart@nginx.com<para>
6911792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
6921792Svbart@nginx.com</para>
6931792Svbart@nginx.com</change>
6941792Svbart@nginx.com
6951792Svbart@nginx.com<change type="bugfix">
6961792Svbart@nginx.com<para>
6971792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
6981792Svbart@nginx.com</para>
6991792Svbart@nginx.com</change>
7001792Svbart@nginx.com
7011792Svbart@nginx.com<change type="bugfix">
7021792Svbart@nginx.com<para>
7031792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
7041792Svbart@nginx.comthe bug had appeared in 1.21.0.
7051760Smax.romanov@nginx.com</para>
7061760Smax.romanov@nginx.com</change>
7071760Smax.romanov@nginx.com
7081780Smax.romanov@nginx.com<change type="bugfix">
7091780Smax.romanov@nginx.com<para>
7101790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
7111790Sartem.konev@nginx.comWebSocket.
7121780Smax.romanov@nginx.com</para>
7131780Smax.romanov@nginx.com</change>
7141780Smax.romanov@nginx.com
7151789Smax.romanov@nginx.com<change type="bugfix">
7161789Smax.romanov@nginx.com<para>
7171789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
7181789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
7191789Smax.romanov@nginx.com</para>
7201789Smax.romanov@nginx.com</change>
7211789Smax.romanov@nginx.com
7221727Svbart@nginx.com</changes>
7231727Svbart@nginx.com
7241727Svbart@nginx.com
7251722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
7261722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7271722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7281722Svbart@nginx.com
7291722Svbart@nginx.com<change>
7301722Svbart@nginx.com<para>
7311722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
7321722Svbart@nginx.com</para>
7331722Svbart@nginx.com</change>
7341722Svbart@nginx.com
7351722Svbart@nginx.com</changes>
7361722Svbart@nginx.com
7371722Svbart@nginx.com
7381722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
7391722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7401722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7411722Svbart@nginx.com
7421722Svbart@nginx.com<change>
7431722Svbart@nginx.com<para>
7441722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
7451722Svbart@nginx.com</para>
7461722Svbart@nginx.com</change>
7471722Svbart@nginx.com
7481722Svbart@nginx.com</changes>
7491722Svbart@nginx.com
7501722Svbart@nginx.com
7511722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
7521722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7531722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7541722Svbart@nginx.com
7551722Svbart@nginx.com<change>
7561722Svbart@nginx.com<para>
7571722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
7581722Svbart@nginx.com</para>
7591722Svbart@nginx.com</change>
7601722Svbart@nginx.com
7611722Svbart@nginx.com</changes>
7621722Svbart@nginx.com
7631722Svbart@nginx.com
7641722Svbart@nginx.com<changes apply="unit-php
7651722Svbart@nginx.com                unit-python unit-python2.7
7661722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7671722Svbart@nginx.com                unit-python3.8
7681722Svbart@nginx.com                unit-go
7691722Svbart@nginx.com                unit-perl
7701722Svbart@nginx.com                unit-ruby
7711722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
7721722Svbart@nginx.com         ver="1.21.0" rev="1"
7731722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7741722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7751722Svbart@nginx.com
7761722Svbart@nginx.com<change>
7771722Svbart@nginx.com<para>
7781722Svbart@nginx.comNGINX Unit updated to 1.21.0.
7791722Svbart@nginx.com</para>
7801722Svbart@nginx.com</change>
7811722Svbart@nginx.com
7821722Svbart@nginx.com</changes>
7831722Svbart@nginx.com
7841722Svbart@nginx.com
7851722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
7861722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7871722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7881722Svbart@nginx.com
7891722Svbart@nginx.com<change type="change">
7901722Svbart@nginx.com<para>
7911722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
7921722Svbart@nginx.com</para>
7931722Svbart@nginx.com</change>
7941722Svbart@nginx.com
7951722Svbart@nginx.com<change type="change">
7961722Svbart@nginx.com<para>
7971722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
7981722Svbart@nginx.comnames.
7991722Svbart@nginx.com</para>
8001722Svbart@nginx.com</change>
8011722Svbart@nginx.com
8021722Svbart@nginx.com<change type="change">
8031722Svbart@nginx.com<para>
8041722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
8051722Svbart@nginx.comdefault.
8061722Svbart@nginx.com</para>
8071722Svbart@nginx.com</change>
8081722Svbart@nginx.com
8091722Svbart@nginx.com<change type="feature">
8101722Svbart@nginx.com<para>
8111722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
8121722Svbart@nginx.com</para>
8131722Svbart@nginx.com</change>
8141722Svbart@nginx.com
8151722Svbart@nginx.com<change type="feature">
8161722Svbart@nginx.com<para>
8171722Svbart@nginx.comregular expressions in route matching patterns.
8181722Svbart@nginx.com</para>
8191722Svbart@nginx.com</change>
8201722Svbart@nginx.com
8211722Svbart@nginx.com<change type="feature">
8221722Svbart@nginx.com<para>
8231722Svbart@nginx.comcompatibility with Python 3.9.
8241722Svbart@nginx.com</para>
8251722Svbart@nginx.com</change>
8261722Svbart@nginx.com
8271722Svbart@nginx.com<change type="feature">
8281722Svbart@nginx.com<para>
8291722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
8301722Svbart@nginx.com</para>
8311722Svbart@nginx.com</change>
8321722Svbart@nginx.com
8331722Svbart@nginx.com<change type="feature">
8341722Svbart@nginx.com<para>
8351722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
8361722Svbart@nginx.com</para>
8371722Svbart@nginx.com</change>
8381722Svbart@nginx.com
8391722Svbart@nginx.com<change type="feature">
8401722Svbart@nginx.com<para>
8411722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
8421722Svbart@nginx.comcontinues code execution without holding onto the client connection.
8431722Svbart@nginx.com</para>
8441722Svbart@nginx.com</change>
8451722Svbart@nginx.com
8461722Svbart@nginx.com<change type="feature">
8471722Svbart@nginx.com<para>
8481722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
8491722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
8501722Svbart@nginx.com</para>
8511722Svbart@nginx.com</change>
8521722Svbart@nginx.com
8531722Svbart@nginx.com<change type="feature">
8541722Svbart@nginx.com<para>
8551722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
8561722Svbart@nginx.commounting of eponymous filesystems.
8571722Svbart@nginx.com</para>
8581722Svbart@nginx.com</change>
8591722Svbart@nginx.com
8601722Svbart@nginx.com<change type="bugfix">
8611722Svbart@nginx.com<para>
8621722Svbart@nginx.comthe router process could crash when running Go applications under high load;
8631722Svbart@nginx.comthe bug had appeared in 1.19.0.
8641722Svbart@nginx.com</para>
8651722Svbart@nginx.com</change>
8661722Svbart@nginx.com
8671722Svbart@nginx.com<change type="bugfix">
8681722Svbart@nginx.com<para>
8691722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
8701722Svbart@nginx.com</para>
8711722Svbart@nginx.com</change>
8721722Svbart@nginx.com
8731722Svbart@nginx.com<change type="bugfix">
8741722Svbart@nginx.com<para>
8751722Svbart@nginx.comvarious compatibility issues in Java applications.
8761722Svbart@nginx.com</para>
8771722Svbart@nginx.com</change>
8781722Svbart@nginx.com
8791722Svbart@nginx.com<change type="bugfix">
8801722Svbart@nginx.com<para>
8811722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
8821722Svbart@nginx.comuse "rootfs" isolation.
8831722Svbart@nginx.com</para>
8841722Svbart@nginx.com</change>
8851722Svbart@nginx.com
8861722Svbart@nginx.com</changes>
8871722Svbart@nginx.com
8881722Svbart@nginx.com
8891330Svbart@nginx.com<changes apply="unit-php
8901330Svbart@nginx.com                unit-python unit-python2.7
8911330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8921330Svbart@nginx.com                unit-python3.8
8931330Svbart@nginx.com                unit-go
8941330Svbart@nginx.com                unit-perl
8951330Svbart@nginx.com                unit-ruby
8961330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8971640Svbart@nginx.com         ver="1.20.0" rev="1"
8981640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
8991640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9001640Svbart@nginx.com
9011640Svbart@nginx.com<change>
9021640Svbart@nginx.com<para>
9031640Svbart@nginx.comNGINX Unit updated to 1.20.0.
9041640Svbart@nginx.com</para>
9051640Svbart@nginx.com</change>
9061640Svbart@nginx.com
9071640Svbart@nginx.com</changes>
9081640Svbart@nginx.com
9091640Svbart@nginx.com
9101640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
9111640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
9121640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9131640Svbart@nginx.com
9141640Svbart@nginx.com<change type="change">
9151640Svbart@nginx.com<para>
9161640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
9171640Svbart@nginx.comextensions from the host system.
9181640Svbart@nginx.com</para>
9191640Svbart@nginx.com</change>
9201640Svbart@nginx.com
9211640Svbart@nginx.com<change type="change">
9221640Svbart@nginx.com<para>
9231640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
9241640Svbart@nginx.com</para>
9251640Svbart@nginx.com</change>
9261640Svbart@nginx.com
9271643Svbart@nginx.com<change type="change">
9281643Svbart@nginx.com<para>
9291643Svbart@nginx.comfunctional tests migrated to the pytest framework.
9301643Svbart@nginx.com</para>
9311643Svbart@nginx.com</change>
9321643Svbart@nginx.com
9331640Svbart@nginx.com<change type="feature">
9341640Svbart@nginx.com<para>
9351640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
9361640Svbart@nginx.cominterface.
9371640Svbart@nginx.com</para>
9381640Svbart@nginx.com</change>
9391640Svbart@nginx.com
9401640Svbart@nginx.com<change type="feature">
9411640Svbart@nginx.com<para>
9421640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
9431640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
9441640Svbart@nginx.comspecification.
9451640Svbart@nginx.com</para>
9461640Svbart@nginx.com</change>
9471640Svbart@nginx.com
9481640Svbart@nginx.com<change type="feature">
9491640Svbart@nginx.com<para>
9501640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
9511640Svbart@nginx.comenvironments.
9521640Svbart@nginx.com</para>
9531640Svbart@nginx.com</change>
9541640Svbart@nginx.com
9551640Svbart@nginx.com<change type="feature">
9561640Svbart@nginx.com<para>
9571640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
9581640Svbart@nginx.com</para>
9591640Svbart@nginx.com</change>
9601640Svbart@nginx.com
9611640Svbart@nginx.com<change type="feature">
9621640Svbart@nginx.com<para>
9631640Svbart@nginx.comthe "callable" option sets Python application callable names.
9641640Svbart@nginx.com</para>
9651640Svbart@nginx.com</change>
9661640Svbart@nginx.com
9671640Svbart@nginx.com<change type="feature">
9681640Svbart@nginx.com<para>
9691640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
9701640Svbart@nginx.com</para>
9711640Svbart@nginx.com</change>
9721640Svbart@nginx.com
9731640Svbart@nginx.com<change type="feature">
9741640Svbart@nginx.com<para>
9751640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
9761640Svbart@nginx.comautomatic mounting of language module dependencies.
9771640Svbart@nginx.com</para>
9781640Svbart@nginx.com</change>
9791640Svbart@nginx.com
9801640Svbart@nginx.com<change type="bugfix">
9811640Svbart@nginx.com<para>
9821640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
9831640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
9841640Svbart@nginx.com</para>
9851640Svbart@nginx.com</change>
9861640Svbart@nginx.com
9871640Svbart@nginx.com<change type="bugfix">
9881640Svbart@nginx.com<para>
9891640Svbart@nginx.comthe router process could crash during reconfiguration.
9901640Svbart@nginx.com</para>
9911640Svbart@nginx.com</change>
9921640Svbart@nginx.com
9931640Svbart@nginx.com<change type="bugfix">
9941640Svbart@nginx.com<para>
9951640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
9961640Svbart@nginx.com</para>
9971640Svbart@nginx.com</change>
9981640Svbart@nginx.com
9991640Svbart@nginx.com<change type="bugfix">
10001640Svbart@nginx.com<para>
10011640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
10021640Svbart@nginx.comthe bug had appeared in 1.19.0.
10031640Svbart@nginx.com</para>
10041640Svbart@nginx.com</change>
10051640Svbart@nginx.com
10061640Svbart@nginx.com<change type="bugfix">
10071640Svbart@nginx.com<para>
10081640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
10091640Svbart@nginx.comthe bug had appeared in 1.16.0.
10101640Svbart@nginx.com</para>
10111640Svbart@nginx.com</change>
10121640Svbart@nginx.com
10131640Svbart@nginx.com</changes>
10141640Svbart@nginx.com
10151640Svbart@nginx.com
10161640Svbart@nginx.com<changes apply="unit-php
10171640Svbart@nginx.com                unit-python unit-python2.7
10181640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10191640Svbart@nginx.com                unit-python3.8
10201640Svbart@nginx.com                unit-go
10211640Svbart@nginx.com                unit-perl
10221640Svbart@nginx.com                unit-ruby
10231640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10241570Svbart@nginx.com         ver="1.19.0" rev="1"
10251570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
10261570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10271570Svbart@nginx.com
10281570Svbart@nginx.com<change>
10291570Svbart@nginx.com<para>
10301570Svbart@nginx.comNGINX Unit updated to 1.19.0.
10311570Svbart@nginx.com</para>
10321570Svbart@nginx.com</change>
10331570Svbart@nginx.com
10341570Svbart@nginx.com</changes>
10351570Svbart@nginx.com
10361570Svbart@nginx.com
10371570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1"
10381570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
10391570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10401570Svbart@nginx.com
10411570Svbart@nginx.com<change type="feature">
10421570Svbart@nginx.com<para>
10431570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
10441570Svbart@nginx.comincrease performance, and improve scalability.
10451570Svbart@nginx.com</para>
10461570Svbart@nginx.com</change>
10471570Svbart@nginx.com
10481570Svbart@nginx.com<change type="feature">
10491570Svbart@nginx.com<para>
10501570