xref: /unit/docs/changes.xml (revision 2044)
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"
172029SN/A         ver="1.26.1" rev="1"
182029SN/A         date="" time=""
192029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
202029SN/A
212029SN/A<change>
222029SN/A<para>
232029SN/ANGINX Unit updated to 1.26.1.
242029SN/A</para>
252029SN/A</change>
262029SN/A
272029SN/A</changes>
282029SN/A
292029SN/A
302029SN/A<changes apply="unit" ver="1.26.1" rev="1"
312029SN/A         date="" time=""
322029SN/A         packager="Andrei Belov &lt;defan@nginx.com&gt;">
332029SN/A
342033SN/A<change type="bugfix">
352033SN/A<para>
36*2044SN/Aoccasionally, the Unit daemon was unable to fully terminate; the bug had
37*2044SN/Aappeared in 1.26.0.
382033SN/A</para>
392033SN/A</change>
402033SN/A
412034SN/A<change type="bugfix">
422034SN/A<para>
43*2044SN/Aa prototype process could crash on an application process exit; the bug had
442034SN/Aappeared in 1.26.0.
452034SN/A</para>
462034SN/A</change>
472034SN/A
482035SN/A<change type="bugfix">
492035SN/A<para>
50*2044SN/Athe router process crashed on reconfiguration if "access_log" was configured
51*2044SN/Awithout listeners.
52*2044SN/A</para>
53*2044SN/A</change>
54*2044SN/A
55*2044SN/A<change type="bugfix">
56*2044SN/A<para>
572035SN/Aa segmentation fault occurred in the PHP module if chdir() or
582035SN/Afastcgi_finish_request() was called in the OPcache preloading script.
592035SN/A</para>
602035SN/A</change>
612035SN/A
622040SN/A<change type="bugfix">
632040SN/A<para>
642041SN/Afatal errors on DragonFly BSD; the bug had appeared in 1.26.0.
652041SN/A</para>
662041SN/A</change>
672041SN/A
682029SN/A</changes>
692029SN/A
702029SN/A
711973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1"
722007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
731973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
741973Sdefan@nginx.com
751973Sdefan@nginx.com<change>
761973Sdefan@nginx.com<para>
771973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit.
781973Sdefan@nginx.com</para>
791973Sdefan@nginx.com</change>
801973Sdefan@nginx.com
811973Sdefan@nginx.com</changes>
821973Sdefan@nginx.com
831973Sdefan@nginx.com
841973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1"
852007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
861973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
871973Sdefan@nginx.com
881973Sdefan@nginx.com<change>
891973Sdefan@nginx.com<para>
901973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit.
911973Sdefan@nginx.com</para>
921973Sdefan@nginx.com</change>
931973Sdefan@nginx.com
941973Sdefan@nginx.com</changes>
951973Sdefan@nginx.com
961973Sdefan@nginx.com
971896Svbart@nginx.com<changes apply="unit-php
981896Svbart@nginx.com                unit-python unit-python2.7
991896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1001896Svbart@nginx.com                unit-python3.8 unit-python3.9
1011896Svbart@nginx.com                unit-go
1021896Svbart@nginx.com                unit-perl
1031896Svbart@nginx.com                unit-ruby
1041896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1051896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
1061951Svbart@nginx.com         ver="1.26.0" rev="1"
1072007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1081951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1091951Svbart@nginx.com
1101951Svbart@nginx.com<change>
1111951Svbart@nginx.com<para>
1121951Svbart@nginx.comNGINX Unit updated to 1.26.0.
1131951Svbart@nginx.com</para>
1141951Svbart@nginx.com</change>
1151951Svbart@nginx.com
1161951Svbart@nginx.com</changes>
1171951Svbart@nginx.com
1181951Svbart@nginx.com
1191951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
1202007Svbart@nginx.com         date="2021-11-18" time="18:00:00 +0300"
1211951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1221951Svbart@nginx.com
1231960Sz.hong@f5.com<change type="change">
1241960Sz.hong@f5.com<para>
1251960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
1261960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
1271960Sz.hong@f5.com</para>
1281960Sz.hong@f5.com</change>
1291960Sz.hong@f5.com
1301960Sz.hong@f5.com<change type="feature">
1311960Sz.hong@f5.com<para>
1322006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior
1332006Svbart@nginx.comwhen updating from previous versions.
1342006Svbart@nginx.com</para>
1352006Svbart@nginx.com</change>
1362006Svbart@nginx.com
1372006Svbart@nginx.com<change type="feature">
1382006Svbart@nginx.com<para>
1391960Sz.hong@f5.comvariables support in the "share" option.
1401960Sz.hong@f5.com</para>
1411960Sz.hong@f5.com</change>
1421960Sz.hong@f5.com
1431959Sz.hong@f5.com<change type="feature">
1441959Sz.hong@f5.com<para>
1451961Sz.hong@f5.commultiple paths in the "share" option.
1461961Sz.hong@f5.com</para>
1471961Sz.hong@f5.com</change>
1481961Sz.hong@f5.com
1491961Sz.hong@f5.com<change type="feature">
1501961Sz.hong@f5.com<para>
1511959Sz.hong@f5.comvariables support in the "chroot" option.
1521959Sz.hong@f5.com</para>
1531959Sz.hong@f5.com</change>
1541959Sz.hong@f5.com
1551969Sz.hong@f5.com<change type="feature">
1561969Sz.hong@f5.com<para>
1572006Svbart@nginx.comPHP opcache is shared between application processes.
1581969Sz.hong@f5.com</para>
1591969Sz.hong@f5.com</change>
1601969Sz.hong@f5.com
1611991Sz.hong@f5.com<change type="feature">
1621991Sz.hong@f5.com<para>
1631991Sz.hong@f5.comrequest routing by the query string.
1641991Sz.hong@f5.com</para>
1651991Sz.hong@f5.com</change>
1661991Sz.hong@f5.com
1671955Smax.romanov@nginx.com<change type="bugfix">
1681955Smax.romanov@nginx.com<para>
1692006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached
1702006Svbart@nginx.comby asynchronous or multithreaded apps.
1711955Smax.romanov@nginx.com</para>
1721955Smax.romanov@nginx.com</change>
1731955Smax.romanov@nginx.com
1741956Smax.romanov@nginx.com<change type="bugfix">
1751956Smax.romanov@nginx.com<para>
1761956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
1771956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
1781956Smax.romanov@nginx.com</para>
1791956Smax.romanov@nginx.com</change>
1801956Smax.romanov@nginx.com
1811992Smax.romanov@nginx.com<change type="bugfix">
1821992Smax.romanov@nginx.com<para>
1832006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35.
1841992Smax.romanov@nginx.com</para>
1851992Smax.romanov@nginx.com</change>
1861992Smax.romanov@nginx.com
1871951Svbart@nginx.com</changes>
1881951Svbart@nginx.com
1891951Svbart@nginx.com
1901951Svbart@nginx.com<changes apply="unit-php
1911951Svbart@nginx.com                unit-python unit-python2.7
1921951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1931951Svbart@nginx.com                unit-python3.8 unit-python3.9
1941951Svbart@nginx.com                unit-go
1951951Svbart@nginx.com                unit-perl
1961951Svbart@nginx.com                unit-ruby
1971951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1981951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
1991896Svbart@nginx.com         ver="1.25.0" rev="1"
2001945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
2011896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2021896Svbart@nginx.com
2031896Svbart@nginx.com<change>
2041896Svbart@nginx.com<para>
2051896Svbart@nginx.comNGINX Unit updated to 1.25.0.
2061896Svbart@nginx.com</para>
2071896Svbart@nginx.com</change>
2081896Svbart@nginx.com
2091896Svbart@nginx.com</changes>
2101896Svbart@nginx.com
2111896Svbart@nginx.com
2121896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
2131945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
2141896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2151896Svbart@nginx.com
2161910So.canty@f5.com<change type="feature">
2171910So.canty@f5.com<para>
2181944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
2191942Sa.suvorov@f5.com</para>
2201942Sa.suvorov@f5.com</change>
2211942Sa.suvorov@f5.com
2221942Sa.suvorov@f5.com<change type="feature">
2231942Sa.suvorov@f5.com<para>
2241920Sa.suvorov@f5.comTLS sessions cache.
2251920Sa.suvorov@f5.com</para>
2261920Sa.suvorov@f5.com</change>
2271920Sa.suvorov@f5.com
2281920Sa.suvorov@f5.com<change type="feature">
2291920Sa.suvorov@f5.com<para>
2301944Svbart@nginx.comTLS session tickets.
2311910So.canty@f5.com</para>
2321910So.canty@f5.com</change>
2331910So.canty@f5.com
2341926Smax.romanov@nginx.com<change type="feature">
2351926Smax.romanov@nginx.com<para>
2361926Smax.romanov@nginx.comapplication restart control.
2371926Smax.romanov@nginx.com</para>
2381926Smax.romanov@nginx.com</change>
2391926Smax.romanov@nginx.com
2401936So.canty@f5.com<change type="feature">
2411936So.canty@f5.com<para>
2421944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
2431936So.canty@f5.com</para>
2441936So.canty@f5.com</change>
2451936So.canty@f5.com
2461907Smax.romanov@nginx.com<change type="bugfix">
2471907Smax.romanov@nginx.com<para>
2481944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
2491944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
2501921Sa.suvorov@f5.com</para>
2511921Sa.suvorov@f5.com</change>
2521921Sa.suvorov@f5.com
2531921Sa.suvorov@f5.com<change type="bugfix">
2541921Sa.suvorov@f5.com<para>
2551944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
2561944Svbart@nginx.combundles in a listener if the client did not use SNI.
2571907Smax.romanov@nginx.com</para>
2581907Smax.romanov@nginx.com</change>
2591907Smax.romanov@nginx.com
2601907Smax.romanov@nginx.com<change type="bugfix">
2611907Smax.romanov@nginx.com<para>
2621950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
2631915Smax.romanov@nginx.comreconfiguration.
2641915Smax.romanov@nginx.com</para>
2651915Smax.romanov@nginx.com</change>
2661915Smax.romanov@nginx.com
2671915Smax.romanov@nginx.com<change type="bugfix">
2681915Smax.romanov@nginx.com<para>
2691944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
2701944Svbart@nginx.comframework.
2711944Svbart@nginx.com</para>
2721944Svbart@nginx.com</change>
2731944Svbart@nginx.com
2741944Svbart@nginx.com<change type="bugfix">
2751944Svbart@nginx.com<para>
2761944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
2771944Svbart@nginx.comstopped or crashed.
2781907Smax.romanov@nginx.com</para>
2791907Smax.romanov@nginx.com</change>
2801907Smax.romanov@nginx.com
2811909So.canty@f5.com<change type="bugfix">
2821909So.canty@f5.com<para>
2831909So.canty@f5.comthe controller or router process could crash if the configuration contained
2841909So.canty@f5.coma full-form IPv6 in a listener address.
2851909So.canty@f5.com</para>
2861909So.canty@f5.com</change>
2871909So.canty@f5.com
2881916Smax.romanov@nginx.com<change type="bugfix">
2891916Smax.romanov@nginx.com<para>
2901929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
2911929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
2921929Sz.hong@f5.com</para>
2931929Sz.hong@f5.com</change>
2941929Sz.hong@f5.com
2951930So.canty@f5.com<change type="bugfix">
2961930So.canty@f5.com<para>
2971944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
2981944Svbart@nginx.comor destination address patterns.
2991930So.canty@f5.com</para>
3001930So.canty@f5.com</change>
3011930So.canty@f5.com
3021896Svbart@nginx.com</changes>
3031896Svbart@nginx.com
3041896Svbart@nginx.com
3051887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
3061891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3071887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3081887Sdefan@nginx.com
3091887Sdefan@nginx.com<change>
3101887Sdefan@nginx.com<para>
3111887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
3121887Sdefan@nginx.com</para>
3131887Sdefan@nginx.com</change>
3141887Sdefan@nginx.com
3151887Sdefan@nginx.com</changes>
3161887Sdefan@nginx.com
3171887Sdefan@nginx.com
3181887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
3191891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3201887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3211887Sdefan@nginx.com
3221887Sdefan@nginx.com<change>
3231887Sdefan@nginx.com<para>
3241887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
3251887Sdefan@nginx.com</para>
3261887Sdefan@nginx.com</change>
3271887Sdefan@nginx.com
3281887Sdefan@nginx.com</changes>
3291887Sdefan@nginx.com
3301887Sdefan@nginx.com
3311834Svbart@nginx.com<changes apply="unit-php
3321834Svbart@nginx.com                unit-python unit-python2.7
3331834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3341834Svbart@nginx.com                unit-python3.8 unit-python3.9
3351834Svbart@nginx.com                unit-go
3361834Svbart@nginx.com                unit-perl
3371834Svbart@nginx.com                unit-ruby
3381834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3391834Svbart@nginx.com                unit-jsc14 unit-jsc15"
3401839Svbart@nginx.com         ver="1.24.0" rev="1"
3411891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3421839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3431839Svbart@nginx.com
3441839Svbart@nginx.com<change>
3451839Svbart@nginx.com<para>
3461839Svbart@nginx.comNGINX Unit updated to 1.24.0.
3471839Svbart@nginx.com</para>
3481839Svbart@nginx.com</change>
3491839Svbart@nginx.com
3501839Svbart@nginx.com</changes>
3511839Svbart@nginx.com
3521839Svbart@nginx.com
3531839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
3541891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
3551839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3561839Svbart@nginx.com
3571882So.canty@f5.com<change type="change">
3581882So.canty@f5.com<para>
3591882So.canty@f5.comPHP added to the default MIME type list.
3601882So.canty@f5.com</para>
3611882So.canty@f5.com</change>
3621882So.canty@f5.com
3631855Sz.hong@f5.com<change type="feature">
3641855Sz.hong@f5.com<para>
3651885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
3661885Sa.suvorov@f5.com</para>
3671885Sa.suvorov@f5.com</change>
3681885Sa.suvorov@f5.com
3691885Sa.suvorov@f5.com<change type="feature">
3701885Sa.suvorov@f5.com<para>
3711890Svbart@nginx.comthe ability to limit static file serving by MIME types.
3721890Svbart@nginx.com</para>
3731890Svbart@nginx.com</change>
3741890Svbart@nginx.com
3751890Svbart@nginx.com<change type="feature">
3761890Svbart@nginx.com<para>
3771890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
3781890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
3791872So.canty@f5.com</para>
3801872So.canty@f5.com</change>
3811872So.canty@f5.com
3821872So.canty@f5.com<change type="feature">
3831872So.canty@f5.com<para>
3841889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
3851889Sartem.konev@nginx.comNode.js.
3861865So.canty@f5.com</para>
3871865So.canty@f5.com</change>
3881865So.canty@f5.com
3891865So.canty@f5.com<change type="feature">
3901865So.canty@f5.com<para>
3911890Svbart@nginx.commultiple "targets" in Python applications.
3921855Sz.hong@f5.com</para>
3931855Sz.hong@f5.com</change>
3941855Sz.hong@f5.com
3951870So.canty@f5.com<change type="feature">
3961870So.canty@f5.com<para>
3971870So.canty@f5.comcompatibility with Ruby 3.0.
3981870So.canty@f5.com</para>
3991870So.canty@f5.com</change>
4001870So.canty@f5.com
4011861Svbart@nginx.com<change type="bugfix">
4021861Svbart@nginx.com<para>
4031889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
4041884Sa.suvorov@f5.com</para>
4051884Sa.suvorov@f5.com</change>
4061884Sa.suvorov@f5.com
4071884Sa.suvorov@f5.com<change type="bugfix">
4081884Sa.suvorov@f5.com<para>
4091861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
4101861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
4111861Svbart@nginx.com</para>
4121861Svbart@nginx.com</change>
4131861Svbart@nginx.com
4141839Svbart@nginx.com</changes>
4151839Svbart@nginx.com
4161839Svbart@nginx.com
4171839Svbart@nginx.com<changes apply="unit-php
4181839Svbart@nginx.com                unit-python unit-python2.7
4191839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4201839Svbart@nginx.com                unit-python3.8 unit-python3.9
4211839Svbart@nginx.com                unit-go
4221839Svbart@nginx.com                unit-perl
4231839Svbart@nginx.com                unit-ruby
4241839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4251839Svbart@nginx.com                unit-jsc14 unit-jsc15"
4261834Svbart@nginx.com         ver="1.23.0" rev="1"
4271834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
4281834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4291834Svbart@nginx.com
4301834Svbart@nginx.com<change>
4311834Svbart@nginx.com<para>
4321834Svbart@nginx.comNGINX Unit updated to 1.23.0.
4331834Svbart@nginx.com</para>
4341834Svbart@nginx.com</change>
4351834Svbart@nginx.com
4361834Svbart@nginx.com</changes>
4371834Svbart@nginx.com
4381834Svbart@nginx.com
4391806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
4401834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
4411806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4421806Svbart@nginx.com
4431825Sthresh@nginx.com<change type="feature">
4441825Sthresh@nginx.com<para>
4451833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
4461828Sa.suvorov@f5.comIndication (SNI) TLS extension.
4471828Sa.suvorov@f5.com</para>
4481828Sa.suvorov@f5.com</change>
4491828Sa.suvorov@f5.com
4501828Sa.suvorov@f5.com<change type="feature">
4511828Sa.suvorov@f5.com<para>
4521833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
4531833Sartem.konev@nginx.cominstallation.
4541825Sthresh@nginx.com</para>
4551825Sthresh@nginx.com</change>
4561825Sthresh@nginx.com
4571811Smax.romanov@nginx.com<change type="bugfix">
4581811Smax.romanov@nginx.com<para>
4591812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
4601812Svbart@nginx.comappeared in 1.17.0.
4611812Svbart@nginx.com</para>
4621812Svbart@nginx.com</change>
4631812Svbart@nginx.com
4641812Svbart@nginx.com<change type="bugfix">
4651812Svbart@nginx.com<para>
4661833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
4671812Svbart@nginx.comappeared in 1.6.
4681812Svbart@nginx.com</para>
4691812Svbart@nginx.com</change>
4701812Svbart@nginx.com
4711812Svbart@nginx.com<change type="bugfix">
4721812Svbart@nginx.com<para>
4731833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
4741832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
4751832Smax.romanov@nginx.com</para>
4761832Smax.romanov@nginx.com</change>
4771832Smax.romanov@nginx.com
4781832Smax.romanov@nginx.com<change type="bugfix">
4791832Smax.romanov@nginx.com<para>
4801833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
4811811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
4821811Smax.romanov@nginx.com</para>
4831811Smax.romanov@nginx.com</change>
4841806Svbart@nginx.com
4851813Svbart@nginx.com<change type="bugfix">
4861813Svbart@nginx.com<para>
4871813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
4881813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
4891813Svbart@nginx.com</para>
4901813Svbart@nginx.com</change>
4911813Svbart@nginx.com
4921814Svbart@nginx.com<change type="bugfix">
4931814Svbart@nginx.com<para>
4941820Svbart@nginx.comthe controller process could crash while requesting information about a
4951820Svbart@nginx.comcertificate with a non-DNS SAN entry.
4961820Svbart@nginx.com</para>
4971820Svbart@nginx.com</change>
4981820Svbart@nginx.com
4991820Svbart@nginx.com<change type="bugfix">
5001820Svbart@nginx.com<para>
5011822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
5021833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
5031822Svbart@nginx.com</para>
5041822Svbart@nginx.com</change>
5051822Svbart@nginx.com
5061822Svbart@nginx.com<change type="bugfix">
5071822Svbart@nginx.com<para>
5081833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
5091833Sartem.konev@nginx.comclass.
5101814Svbart@nginx.com</para>
5111814Svbart@nginx.com</change>
5121814Svbart@nginx.com
5131815Svbart@nginx.com<change type="bugfix">
5141815Svbart@nginx.com<para>
5151815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
5161815Svbart@nginx.comappeared in 1.22.0.
5171815Svbart@nginx.com</para>
5181815Svbart@nginx.com</change>
5191815Svbart@nginx.com
5201806Svbart@nginx.com</changes>
5211806Svbart@nginx.com
5221806Svbart@nginx.com
5231798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
5241798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
5251798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5261798Sdefan@nginx.com
5271798Sdefan@nginx.com<change>
5281798Sdefan@nginx.com<para>
5291798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
5301798Sdefan@nginx.com</para>
5311798Sdefan@nginx.com</change>
5321798Sdefan@nginx.com
5331798Sdefan@nginx.com</changes>
5341798Sdefan@nginx.com
5351798Sdefan@nginx.com
5361763Sdefan@nginx.com<changes apply="unit-php
5371763Sdefan@nginx.com                unit-python unit-python2.7
5381763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5391763Sdefan@nginx.com                unit-python3.8
5401763Sdefan@nginx.com                unit-go
5411763Sdefan@nginx.com                unit-perl
5421763Sdefan@nginx.com                unit-ruby
5431763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
5441763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
5451763Sdefan@nginx.com         ver="1.22.0" rev="1"
5461793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
5471763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5481763Sdefan@nginx.com
5491763Sdefan@nginx.com<change>
5501763Sdefan@nginx.com<para>
5511763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
5521763Sdefan@nginx.com</para>
5531763Sdefan@nginx.com</change>
5541763Sdefan@nginx.com
5551763Sdefan@nginx.com</changes>
5561763Sdefan@nginx.com
5571763Sdefan@nginx.com
5581727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
5591793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
5601727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5611727Svbart@nginx.com
5621759Svbart@nginx.com<change type="feature">
5631759Svbart@nginx.com<para>
5641792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
5651792Svbart@nginx.comcompliant with Stream API.
5661759Svbart@nginx.com</para>
5671759Svbart@nginx.com</change>
5681759Svbart@nginx.com
5691766Smax.romanov@nginx.com<change type="feature">
5701766Smax.romanov@nginx.com<para>
5711792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
5721792Svbart@nginx.comapps.
5731732Svbart@nginx.com</para>
5741732Svbart@nginx.com</change>
5751732Svbart@nginx.com
5761733Svbart@nginx.com<change type="bugfix">
5771733Svbart@nginx.com<para>
5781792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
5791792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
5801754Smax.romanov@nginx.com</para>
5811754Smax.romanov@nginx.com</change>
5821754Smax.romanov@nginx.com
5831755Smax.romanov@nginx.com<change type="bugfix">
5841755Smax.romanov@nginx.com<para>
5851790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
5861755Smax.romanov@nginx.comappeared in 1.19.0.
5871755Smax.romanov@nginx.com</para>
5881755Smax.romanov@nginx.com</change>
5891755Smax.romanov@nginx.com
5901756Smax.romanov@nginx.com<change type="bugfix">
5911756Smax.romanov@nginx.com<para>
5921790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
5931790Sartem.konev@nginx.comappeared in 1.19.0.
5941756Smax.romanov@nginx.com</para>
5951756Smax.romanov@nginx.com</change>
5961756Smax.romanov@nginx.com
5971760Smax.romanov@nginx.com<change type="bugfix">
5981760Smax.romanov@nginx.com<para>
5991792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
6001792Svbart@nginx.com</para>
6011792Svbart@nginx.com</change>
6021792Svbart@nginx.com
6031792Svbart@nginx.com<change type="bugfix">
6041792Svbart@nginx.com<para>
6051792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
6061792Svbart@nginx.commissing in the PHP module.
6071792Svbart@nginx.com</para>
6081792Svbart@nginx.com</change>
6091792Svbart@nginx.com
6101792Svbart@nginx.com<change type="bugfix">
6111792Svbart@nginx.com<para>
6121792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
6131792Svbart@nginx.com</para>
6141792Svbart@nginx.com</change>
6151792Svbart@nginx.com
6161792Svbart@nginx.com<change type="bugfix">
6171792Svbart@nginx.com<para>
6181792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
6191792Svbart@nginx.com</para>
6201792Svbart@nginx.com</change>
6211792Svbart@nginx.com
6221792Svbart@nginx.com<change type="bugfix">
6231792Svbart@nginx.com<para>
6241792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
6251792Svbart@nginx.comthe bug had appeared in 1.21.0.
6261760Smax.romanov@nginx.com</para>
6271760Smax.romanov@nginx.com</change>
6281760Smax.romanov@nginx.com
6291780Smax.romanov@nginx.com<change type="bugfix">
6301780Smax.romanov@nginx.com<para>
6311790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
6321790Sartem.konev@nginx.comWebSocket.
6331780Smax.romanov@nginx.com</para>
6341780Smax.romanov@nginx.com</change>
6351780Smax.romanov@nginx.com
6361789Smax.romanov@nginx.com<change type="bugfix">
6371789Smax.romanov@nginx.com<para>
6381789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
6391789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
6401789Smax.romanov@nginx.com</para>
6411789Smax.romanov@nginx.com</change>
6421789Smax.romanov@nginx.com
6431727Svbart@nginx.com</changes>
6441727Svbart@nginx.com
6451727Svbart@nginx.com
6461722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
6471722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6481722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6491722Svbart@nginx.com
6501722Svbart@nginx.com<change>
6511722Svbart@nginx.com<para>
6521722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
6531722Svbart@nginx.com</para>
6541722Svbart@nginx.com</change>
6551722Svbart@nginx.com
6561722Svbart@nginx.com</changes>
6571722Svbart@nginx.com
6581722Svbart@nginx.com
6591722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
6601722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6611722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6621722Svbart@nginx.com
6631722Svbart@nginx.com<change>
6641722Svbart@nginx.com<para>
6651722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
6661722Svbart@nginx.com</para>
6671722Svbart@nginx.com</change>
6681722Svbart@nginx.com
6691722Svbart@nginx.com</changes>
6701722Svbart@nginx.com
6711722Svbart@nginx.com
6721722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
6731722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6741722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6751722Svbart@nginx.com
6761722Svbart@nginx.com<change>
6771722Svbart@nginx.com<para>
6781722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
6791722Svbart@nginx.com</para>
6801722Svbart@nginx.com</change>
6811722Svbart@nginx.com
6821722Svbart@nginx.com</changes>
6831722Svbart@nginx.com
6841722Svbart@nginx.com
6851722Svbart@nginx.com<changes apply="unit-php
6861722Svbart@nginx.com                unit-python unit-python2.7
6871722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6881722Svbart@nginx.com                unit-python3.8
6891722Svbart@nginx.com                unit-go
6901722Svbart@nginx.com                unit-perl
6911722Svbart@nginx.com                unit-ruby
6921722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
6931722Svbart@nginx.com         ver="1.21.0" rev="1"
6941722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6951722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6961722Svbart@nginx.com
6971722Svbart@nginx.com<change>
6981722Svbart@nginx.com<para>
6991722Svbart@nginx.comNGINX Unit updated to 1.21.0.
7001722Svbart@nginx.com</para>
7011722Svbart@nginx.com</change>
7021722Svbart@nginx.com
7031722Svbart@nginx.com</changes>
7041722Svbart@nginx.com
7051722Svbart@nginx.com
7061722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
7071722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
7081722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7091722Svbart@nginx.com
7101722Svbart@nginx.com<change type="change">
7111722Svbart@nginx.com<para>
7121722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
7131722Svbart@nginx.com</para>
7141722Svbart@nginx.com</change>
7151722Svbart@nginx.com
7161722Svbart@nginx.com<change type="change">
7171722Svbart@nginx.com<para>
7181722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
7191722Svbart@nginx.comnames.
7201722Svbart@nginx.com</para>
7211722Svbart@nginx.com</change>
7221722Svbart@nginx.com
7231722Svbart@nginx.com<change type="change">
7241722Svbart@nginx.com<para>
7251722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
7261722Svbart@nginx.comdefault.
7271722Svbart@nginx.com</para>
7281722Svbart@nginx.com</change>
7291722Svbart@nginx.com
7301722Svbart@nginx.com<change type="feature">
7311722Svbart@nginx.com<para>
7321722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
7331722Svbart@nginx.com</para>
7341722Svbart@nginx.com</change>
7351722Svbart@nginx.com
7361722Svbart@nginx.com<change type="feature">
7371722Svbart@nginx.com<para>
7381722Svbart@nginx.comregular expressions in route matching patterns.
7391722Svbart@nginx.com</para>
7401722Svbart@nginx.com</change>
7411722Svbart@nginx.com
7421722Svbart@nginx.com<change type="feature">
7431722Svbart@nginx.com<para>
7441722Svbart@nginx.comcompatibility with Python 3.9.
7451722Svbart@nginx.com</para>
7461722Svbart@nginx.com</change>
7471722Svbart@nginx.com
7481722Svbart@nginx.com<change type="feature">
7491722Svbart@nginx.com<para>
7501722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
7511722Svbart@nginx.com</para>
7521722Svbart@nginx.com</change>
7531722Svbart@nginx.com
7541722Svbart@nginx.com<change type="feature">
7551722Svbart@nginx.com<para>
7561722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
7571722Svbart@nginx.com</para>
7581722Svbart@nginx.com</change>
7591722Svbart@nginx.com
7601722Svbart@nginx.com<change type="feature">
7611722Svbart@nginx.com<para>
7621722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
7631722Svbart@nginx.comcontinues code execution without holding onto the client connection.
7641722Svbart@nginx.com</para>
7651722Svbart@nginx.com</change>
7661722Svbart@nginx.com
7671722Svbart@nginx.com<change type="feature">
7681722Svbart@nginx.com<para>
7691722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
7701722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
7711722Svbart@nginx.com</para>
7721722Svbart@nginx.com</change>
7731722Svbart@nginx.com
7741722Svbart@nginx.com<change type="feature">
7751722Svbart@nginx.com<para>
7761722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
7771722Svbart@nginx.commounting of eponymous filesystems.
7781722Svbart@nginx.com</para>
7791722Svbart@nginx.com</change>
7801722Svbart@nginx.com
7811722Svbart@nginx.com<change type="bugfix">
7821722Svbart@nginx.com<para>
7831722Svbart@nginx.comthe router process could crash when running Go applications under high load;
7841722Svbart@nginx.comthe bug had appeared in 1.19.0.
7851722Svbart@nginx.com</para>
7861722Svbart@nginx.com</change>
7871722Svbart@nginx.com
7881722Svbart@nginx.com<change type="bugfix">
7891722Svbart@nginx.com<para>
7901722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
7911722Svbart@nginx.com</para>
7921722Svbart@nginx.com</change>
7931722Svbart@nginx.com
7941722Svbart@nginx.com<change type="bugfix">
7951722Svbart@nginx.com<para>
7961722Svbart@nginx.comvarious compatibility issues in Java applications.
7971722Svbart@nginx.com</para>
7981722Svbart@nginx.com</change>
7991722Svbart@nginx.com
8001722Svbart@nginx.com<change type="bugfix">
8011722Svbart@nginx.com<para>
8021722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
8031722Svbart@nginx.comuse "rootfs" isolation.
8041722Svbart@nginx.com</para>
8051722Svbart@nginx.com</change>
8061722Svbart@nginx.com
8071722Svbart@nginx.com</changes>
8081722Svbart@nginx.com
8091722Svbart@nginx.com
8101330Svbart@nginx.com<changes apply="unit-php
8111330Svbart@nginx.com                unit-python unit-python2.7
8121330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8131330Svbart@nginx.com                unit-python3.8
8141330Svbart@nginx.com                unit-go
8151330Svbart@nginx.com                unit-perl
8161330Svbart@nginx.com                unit-ruby
8171330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8181640Svbart@nginx.com         ver="1.20.0" rev="1"
8191640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
8201640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8211640Svbart@nginx.com
8221640Svbart@nginx.com<change>
8231640Svbart@nginx.com<para>
8241640Svbart@nginx.comNGINX Unit updated to 1.20.0.
8251640Svbart@nginx.com</para>
8261640Svbart@nginx.com</change>
8271640Svbart@nginx.com
8281640Svbart@nginx.com</changes>
8291640Svbart@nginx.com
8301640Svbart@nginx.com
8311640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
8321640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
8331640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8341640Svbart@nginx.com
8351640Svbart@nginx.com<change type="change">
8361640Svbart@nginx.com<para>
8371640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
8381640Svbart@nginx.comextensions from the host system.
8391640Svbart@nginx.com</para>
8401640Svbart@nginx.com</change>
8411640Svbart@nginx.com
8421640Svbart@nginx.com<change type="change">
8431640Svbart@nginx.com<para>
8441640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
8451640Svbart@nginx.com</para>
8461640Svbart@nginx.com</change>
8471640Svbart@nginx.com
8481643Svbart@nginx.com<change type="change">
8491643Svbart@nginx.com<para>
8501643Svbart@nginx.comfunctional tests migrated to the pytest framework.
8511643Svbart@nginx.com</para>
8521643Svbart@nginx.com</change>
8531643Svbart@nginx.com
8541640Svbart@nginx.com<change type="feature">
8551640Svbart@nginx.com<para>
8561640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
8571640Svbart@nginx.cominterface.
8581640Svbart@nginx.com</para>
8591640Svbart@nginx.com</change>
8601640Svbart@nginx.com
8611640Svbart@nginx.com<change type="feature">
8621640Svbart@nginx.com<para>
8631640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
8641640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
8651640Svbart@nginx.comspecification.
8661640Svbart@nginx.com</para>
8671640Svbart@nginx.com</change>
8681640Svbart@nginx.com
8691640Svbart@nginx.com<change type="feature">
8701640Svbart@nginx.com<para>
8711640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
8721640Svbart@nginx.comenvironments.
8731640Svbart@nginx.com</para>
8741640Svbart@nginx.com</change>
8751640Svbart@nginx.com
8761640Svbart@nginx.com<change type="feature">
8771640Svbart@nginx.com<para>
8781640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
8791640Svbart@nginx.com</para>
8801640Svbart@nginx.com</change>
8811640Svbart@nginx.com
8821640Svbart@nginx.com<change type="feature">
8831640Svbart@nginx.com<para>
8841640Svbart@nginx.comthe "callable" option sets Python application callable names.
8851640Svbart@nginx.com</para>
8861640Svbart@nginx.com</change>
8871640Svbart@nginx.com
8881640Svbart@nginx.com<change type="feature">
8891640Svbart@nginx.com<para>
8901640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
8911640Svbart@nginx.com</para>
8921640Svbart@nginx.com</change>
8931640Svbart@nginx.com
8941640Svbart@nginx.com<change type="feature">
8951640Svbart@nginx.com<para>
8961640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
8971640Svbart@nginx.comautomatic mounting of language module dependencies.
8981640Svbart@nginx.com</para>
8991640Svbart@nginx.com</change>
9001640Svbart@nginx.com
9011640Svbart@nginx.com<change type="bugfix">
9021640Svbart@nginx.com<para>
9031640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
9041640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
9051640Svbart@nginx.com</para>
9061640Svbart@nginx.com</change>
9071640Svbart@nginx.com
9081640Svbart@nginx.com<change type="bugfix">
9091640Svbart@nginx.com<para>
9101640Svbart@nginx.comthe router process could crash during reconfiguration.
9111640Svbart@nginx.com</para>
9121640Svbart@nginx.com</change>
9131640Svbart@nginx.com
9141640Svbart@nginx.com<change type="bugfix">
9151640Svbart@nginx.com<para>
9161640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
9171640Svbart@nginx.com</para>
9181640Svbart@nginx.com</change>
9191640Svbart@nginx.com
9201640Svbart@nginx.com<change type="bugfix">
9211640Svbart@nginx.com<para>
9221640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
9231640Svbart@nginx.comthe bug had appeared in 1.19.0.
9241640Svbart@nginx.com</para>
9251640Svbart@nginx.com</change>
9261640Svbart@nginx.com
9271640Svbart@nginx.com<change type="bugfix">
9281640Svbart@nginx.com<para>
9291640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
9301640Svbart@nginx.comthe bug had appeared in 1.16.0.
9311640Svbart@nginx.com</para>
9321640Svbart@nginx.com</change>
9331640Svbart@nginx.com
9341640Svbart@nginx.com</changes>
9351640Svbart@nginx.com
9361640Svbart@nginx.com
9371640Svbart@nginx.com<changes apply="unit-php
9381640Svbart@nginx.com                unit-python unit-python2.7
9391640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9401640Svbart@nginx.com                unit-python3.8
9411640Svbart@nginx.com                unit-go
9421640Svbart@nginx.com                unit-perl
9431640Svbart@nginx.com                unit-ruby
9441640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9451570Svbart@nginx.com         ver="1.19.0" rev="1"
9461570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
9471570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9481570Svbart@nginx.com
9491570Svbart@nginx.com<change>
9501570Svbart@nginx.com<para>
9511570Svbart@nginx.comNGINX Unit updated to 1.19.0.
9521570Svbart@nginx.com</para>
9531570Svbart@nginx.com</change>
9541570Svbart@nginx.com
9551570Svbart@nginx.com</changes>
9561570Svbart@nginx.com
9571570Svbart@nginx.com
9581570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1"
9591570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
9601570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9611570Svbart@nginx.com
9621570Svbart@nginx.com<change type="feature">
9631570Svbart@nginx.com<para>
9641570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
9651570Svbart@nginx.comincrease performance, and improve scalability.
9661570Svbart@nginx.com</para>
9671570Svbart@nginx.com</change>
9681570Svbart@nginx.com
9691570Svbart@nginx.com<change type="feature">
9701570Svbart@nginx.com<para>
9711570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns.
9721570Svbart@nginx.com</para>
9731570Svbart@nginx.com</change>
9741570Svbart@nginx.com
9751570Svbart@nginx.com<change type="feature">
9761570Svbart@nginx.com<para>
9771570Svbart@nginx.comchunked transfer encoding in proxy responses.
9781570Svbart@nginx.com</para>
9791570Svbart@nginx.com</change>
9801570Svbart@nginx.com
9811570Svbart@nginx.com<change type="feature">
9821570Svbart@nginx.com<para>
9831570Svbart@nginx.combasic variables support in the "pass" option.
9841570Svbart@nginx.com</para>
9851570Svbart@nginx.com</change>
9861570Svbart@nginx.com
9871570Svbart@nginx.com<change type="feature">
9881570Svbart@nginx.com<para>
9891570Svbart@nginx.comcompatibility with PHP 8 Beta 1.
9901570Svbart@nginx.comThanks to Remi Collet.
9911570Svbart@nginx.com</para>
9921570Svbart@nginx.com</change>
9931570Svbart@nginx.com
9941570Svbart@nginx.com<change type="bugfix">
9951570Svbart@nginx.com<para>
9961570Svbart@nginx.comthe router process could crash while passing requests to an application under
9971570Svbart@nginx.comhigh load.
9981570Svbart@nginx.com</para>
9991570Svbart@nginx.com</change>
10001570Svbart@nginx.com
10011570Svbart@nginx.com<change type="bugfix">
10021570Svbart@nginx.com<para>
10031570Svbart@nginx.coma number of language modules failed to build on some systems;
10041570Svbart@nginx.comthe bug had appeared in 1.18.0.
10051570Svbart@nginx.com</para>
10061570Svbart@nginx.com</change>
10071570Svbart@nginx.com
10081570Svbart@nginx.com<change type="bugfix">
10091570Svbart@nginx.com<para>
10101570Svbart@nginx.comtime in error log messages from PHP applications could lag.
10111570Svbart@nginx.com</para>
10121570Svbart@nginx.com</change>
10131570Svbart@nginx.com
10141570Svbart@nginx.com<change type="bugfix">
10151570Svbart@nginx.com<para>
10161570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start;
10171570Svbart@nginx.comthe bug had appeared in 1.18.0.
10181570Svbart@nginx.com</para>
10191570Svbart@nginx.com</change>
10201570Svbart@nginx.com
10211570Svbart@nginx.com<change type="bugfix">
10221570Svbart@nginx.com<para>
10231570Svbart@nginx.commemory leak during reconfiguration.
10241570Svbart@nginx.com</para>
10251570Svbart@nginx.com</change>
10261570Svbart@nginx.com
10271570Svbart@nginx.com<change type="bugfix">
10281570Svbart@nginx.com<para>
10291570Svbart@nginx.comthe daemon didn't start without language modules;
10301570Svbart@nginx.comthe bug had appeared in 1.18.0.
10311570Svbart@nginx.com</para>
10321570Svbart@nginx.com</change>
10331570Svbart@nginx.com
10341570Svbart@nginx.com<change type="bugfix">
10351570Svbart@nginx.com<para>
10361570Svbart@nginx.comthe router process could crash at exit.
10371570Svbart@nginx.com</para>
10381570Svbart@nginx.com</change>
10391570Svbart@nginx.com
10401570Svbart@nginx.com<change type="bugfix">
10411570Svbart@nginx.com<para>
10421570Svbart@nginx.comNode.js applications could crash at exit.
10431570Svbart@nginx.com</para>
10441570Svbart@nginx.com</change>
10451570Svbart@nginx.com
10461570Svbart@nginx.com<change type="bugfix">
10471570Svbart@nginx.com<para>
10481570Svbart@nginx.comthe Ruby module could be linked against a wrong library version.
10491570Svbart@nginx.com</para>
10501570Svbart@nginx.com</change>
10511570Svbart@nginx.com
10521570Svbart@nginx.com</changes>
10531570Svbart@nginx.com
10541570Svbart@nginx.com
10551570Svbart@nginx.com<changes apply="unit-php
10561570Svbart@nginx.com                unit-python unit-python2.7
10571570Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10581570Svbart@nginx.com                unit-python3.8
10591570Svbart@nginx.com                unit-go
10601570Svbart@nginx.com                unit-perl
10611570Svbart@nginx.com                unit-ruby
10621570Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10631491Svbart@nginx.com         ver="1.18.0" rev="1"
10641491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
10651491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10661491Svbart@nginx.com
10671491Svbart@nginx.com<change>
10681491Svbart@nginx.com<para>
10691491Svbart@nginx.comNGINX Unit updated to 1.18.0.
10701491Svbart@nginx.com</para>
10711491Svbart@nginx.com</change>
10721491Svbart@nginx.com
10731491Svbart@nginx.com</changes>
10741491Svbart@nginx.com
10751491Svbart@nginx.com
10761491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1"
10771491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
10781491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10791491Svbart@nginx.com
10801491Svbart@nginx.com<change type="feature">
10811491Svbart@nginx.com<para>
10821491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application.
10831491Svbart@nginx.com</para>
10841491Svbart@nginx.com</change>
10851491Svbart@nginx.com
10861491Svbart@nginx.com<change type="feature">
10871491Svbart@nginx.com<para>
10881491Svbart@nginx.commultiple "targets" in PHP applications.
10891491Svbart@nginx.com</para>
10901491Svbart@nginx.com</change>
10911491Svbart@nginx.com
10921491Svbart@nginx.com<change type="feature">
10931491Svbart@nginx.com<para>
10941491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options
10951491Svbart@nginx.comand in the "pass" option.
10961491Svbart@nginx.com</para>
10971491Svbart@nginx.com</change>
10981491Svbart@nginx.com
10991491Svbart@nginx.com</changes>
11001491Svbart@nginx.com
11011491Svbart@nginx.com
11021491Svbart@nginx.com<changes apply="unit-php
11031491Svbart@nginx.com                unit-python unit-python2.7
11041491Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11051491Svbart@nginx.com                unit-python3.8
11061491Svbart@nginx.com                unit-go
11071491Svbart@nginx.com                unit-perl
11081491Svbart@nginx.com                unit-ruby
11091491Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11101460Svbart@nginx.com         ver="1.17.0" rev="1"
11111460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
11121460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11131460Svbart@nginx.com
11141460Svbart@nginx.com<change>
11151460Svbart@nginx.com<para>
11161460Svbart@nginx.comNGINX Unit updated to 1.17.0.
11171460Svbart@nginx.com</para>
11181460Svbart@nginx.com</change>
11191460Svbart@nginx.com
11201460Svbart@nginx.com</changes>
11211460Svbart@nginx.com
11221460Svbart@nginx.com
11231460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1"
11241460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
11251460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11261460Svbart@nginx.com
11271460Svbart@nginx.com<change type="feature">
11281460Svbart@nginx.com<para>
11291460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external
11301460Svbart@nginx.comredirection.
11311460Svbart@nginx.com</para>
11321460Svbart@nginx.com</change>
11331460Svbart@nginx.com
11341460Svbart@nginx.com<change type="feature">
11351460Svbart@nginx.com<para>
11361460Svbart@nginx.comfractional weights support for upstream servers.
11371460Svbart@nginx.com</para>
11381460Svbart@nginx.com</change>
11391460Svbart@nginx.com
11401460Svbart@nginx.com<change type="bugfix">
11411460Svbart@nginx.com<para>
11421460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under
11431460Svbart@nginx.comhigh load.
11441460Svbart@nginx.com</para>
11451460Svbart@nginx.com</change>
11461460Svbart@nginx.com
11471460Svbart@nginx.com<change type="bugfix">
11481460Svbart@nginx.com<para>
11491460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0.
11501460Svbart@nginx.com</para>
11511460Svbart@nginx.com</change>
11521460Svbart@nginx.com
11531460Svbart@nginx.com<change type="bugfix">
11541460Svbart@nginx.com<para>
11551460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching
11561460Svbart@nginx.comopen connections limit.
11571460Svbart@nginx.com</para>
11581460Svbart@nginx.com</change>
11591460Svbart@nginx.com
11601460Svbart@nginx.com<change type="bugfix">
11611460Svbart@nginx.com<para>
11621460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log
11631460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0.
11641460Svbart@nginx.com</para>
11651460Svbart@nginx.com</change>
11661460Svbart@nginx.com
11671460Svbart@nginx.com<change type="bugfix">
11681460Svbart@nginx.com<para>
11691460