xref: /unit/docs/changes.xml (revision 1969)
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
81896Svbart@nginx.com<changes apply="unit-php
91896Svbart@nginx.com                unit-python unit-python2.7
101896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
111896Svbart@nginx.com                unit-python3.8 unit-python3.9
121896Svbart@nginx.com                unit-go
131896Svbart@nginx.com                unit-perl
141896Svbart@nginx.com                unit-ruby
151896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
161896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
171951Svbart@nginx.com         ver="1.26.0" rev="1"
181951Svbart@nginx.com         date="" time=""
191951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
201951Svbart@nginx.com
211951Svbart@nginx.com<change>
221951Svbart@nginx.com<para>
231951Svbart@nginx.comNGINX Unit updated to 1.26.0.
241951Svbart@nginx.com</para>
251951Svbart@nginx.com</change>
261951Svbart@nginx.com
271951Svbart@nginx.com</changes>
281951Svbart@nginx.com
291951Svbart@nginx.com
301951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
311951Svbart@nginx.com         date="" time=""
321951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
331951Svbart@nginx.com
341960Sz.hong@f5.com<change type="change">
351960Sz.hong@f5.com<para>
361960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
371960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
381960Sz.hong@f5.com</para>
391960Sz.hong@f5.com</change>
401960Sz.hong@f5.com
411960Sz.hong@f5.com<change type="feature">
421960Sz.hong@f5.com<para>
431960Sz.hong@f5.comvariables support in the "share" option.
441960Sz.hong@f5.com</para>
451960Sz.hong@f5.com</change>
461960Sz.hong@f5.com
471959Sz.hong@f5.com<change type="feature">
481959Sz.hong@f5.com<para>
491961Sz.hong@f5.commultiple paths in the "share" option.
501961Sz.hong@f5.com</para>
511961Sz.hong@f5.com</change>
521961Sz.hong@f5.com
531961Sz.hong@f5.com<change type="feature">
541961Sz.hong@f5.com<para>
551959Sz.hong@f5.comvariables support in the "chroot" option.
561959Sz.hong@f5.com</para>
571959Sz.hong@f5.com</change>
581959Sz.hong@f5.com
59*1969Sz.hong@f5.com<change type="feature">
60*1969Sz.hong@f5.com<para>
61*1969Sz.hong@f5.comautomatic adjustment of existing configurations to the new "share" behavior
62*1969Sz.hong@f5.comwhen updating from previous versions.
63*1969Sz.hong@f5.com</para>
64*1969Sz.hong@f5.com</change>
65*1969Sz.hong@f5.com
661955Smax.romanov@nginx.com<change type="bugfix">
671955Smax.romanov@nginx.com<para>
681955Smax.romanov@nginx.comfixed building with glibc 2.34, notably Fedora 35.
691955Smax.romanov@nginx.com</para>
701955Smax.romanov@nginx.com</change>
711955Smax.romanov@nginx.com
721956Smax.romanov@nginx.com<change type="bugfix">
731956Smax.romanov@nginx.com<para>
741956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
751956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
761956Smax.romanov@nginx.com</para>
771956Smax.romanov@nginx.com</change>
781956Smax.romanov@nginx.com
791951Svbart@nginx.com</changes>
801951Svbart@nginx.com
811951Svbart@nginx.com
821951Svbart@nginx.com<changes apply="unit-php
831951Svbart@nginx.com                unit-python unit-python2.7
841951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
851951Svbart@nginx.com                unit-python3.8 unit-python3.9
861951Svbart@nginx.com                unit-go
871951Svbart@nginx.com                unit-perl
881951Svbart@nginx.com                unit-ruby
891951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
901951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
911896Svbart@nginx.com         ver="1.25.0" rev="1"
921945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
931896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
941896Svbart@nginx.com
951896Svbart@nginx.com<change>
961896Svbart@nginx.com<para>
971896Svbart@nginx.comNGINX Unit updated to 1.25.0.
981896Svbart@nginx.com</para>
991896Svbart@nginx.com</change>
1001896Svbart@nginx.com
1011896Svbart@nginx.com</changes>
1021896Svbart@nginx.com
1031896Svbart@nginx.com
1041896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
1051945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
1061896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1071896Svbart@nginx.com
1081910So.canty@f5.com<change type="feature">
1091910So.canty@f5.com<para>
1101944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
1111942Sa.suvorov@f5.com</para>
1121942Sa.suvorov@f5.com</change>
1131942Sa.suvorov@f5.com
1141942Sa.suvorov@f5.com<change type="feature">
1151942Sa.suvorov@f5.com<para>
1161920Sa.suvorov@f5.comTLS sessions cache.
1171920Sa.suvorov@f5.com</para>
1181920Sa.suvorov@f5.com</change>
1191920Sa.suvorov@f5.com
1201920Sa.suvorov@f5.com<change type="feature">
1211920Sa.suvorov@f5.com<para>
1221944Svbart@nginx.comTLS session tickets.
1231910So.canty@f5.com</para>
1241910So.canty@f5.com</change>
1251910So.canty@f5.com
1261926Smax.romanov@nginx.com<change type="feature">
1271926Smax.romanov@nginx.com<para>
1281926Smax.romanov@nginx.comapplication restart control.
1291926Smax.romanov@nginx.com</para>
1301926Smax.romanov@nginx.com</change>
1311926Smax.romanov@nginx.com
1321936So.canty@f5.com<change type="feature">
1331936So.canty@f5.com<para>
1341944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
1351936So.canty@f5.com</para>
1361936So.canty@f5.com</change>
1371936So.canty@f5.com
1381907Smax.romanov@nginx.com<change type="bugfix">
1391907Smax.romanov@nginx.com<para>
1401944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
1411944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
1421921Sa.suvorov@f5.com</para>
1431921Sa.suvorov@f5.com</change>
1441921Sa.suvorov@f5.com
1451921Sa.suvorov@f5.com<change type="bugfix">
1461921Sa.suvorov@f5.com<para>
1471944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
1481944Svbart@nginx.combundles in a listener if the client did not use SNI.
1491907Smax.romanov@nginx.com</para>
1501907Smax.romanov@nginx.com</change>
1511907Smax.romanov@nginx.com
1521907Smax.romanov@nginx.com<change type="bugfix">
1531907Smax.romanov@nginx.com<para>
1541950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
1551915Smax.romanov@nginx.comreconfiguration.
1561915Smax.romanov@nginx.com</para>
1571915Smax.romanov@nginx.com</change>
1581915Smax.romanov@nginx.com
1591915Smax.romanov@nginx.com<change type="bugfix">
1601915Smax.romanov@nginx.com<para>
1611944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
1621944Svbart@nginx.comframework.
1631944Svbart@nginx.com</para>
1641944Svbart@nginx.com</change>
1651944Svbart@nginx.com
1661944Svbart@nginx.com<change type="bugfix">
1671944Svbart@nginx.com<para>
1681944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
1691944Svbart@nginx.comstopped or crashed.
1701907Smax.romanov@nginx.com</para>
1711907Smax.romanov@nginx.com</change>
1721907Smax.romanov@nginx.com
1731909So.canty@f5.com<change type="bugfix">
1741909So.canty@f5.com<para>
1751909So.canty@f5.comthe controller or router process could crash if the configuration contained
1761909So.canty@f5.coma full-form IPv6 in a listener address.
1771909So.canty@f5.com</para>
1781909So.canty@f5.com</change>
1791909So.canty@f5.com
1801916Smax.romanov@nginx.com<change type="bugfix">
1811916Smax.romanov@nginx.com<para>
1821929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
1831929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
1841929Sz.hong@f5.com</para>
1851929Sz.hong@f5.com</change>
1861929Sz.hong@f5.com
1871930So.canty@f5.com<change type="bugfix">
1881930So.canty@f5.com<para>
1891944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
1901944Svbart@nginx.comor destination address patterns.
1911930So.canty@f5.com</para>
1921930So.canty@f5.com</change>
1931930So.canty@f5.com
1941896Svbart@nginx.com</changes>
1951896Svbart@nginx.com
1961896Svbart@nginx.com
1971887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
1981891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
1991887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2001887Sdefan@nginx.com
2011887Sdefan@nginx.com<change>
2021887Sdefan@nginx.com<para>
2031887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
2041887Sdefan@nginx.com</para>
2051887Sdefan@nginx.com</change>
2061887Sdefan@nginx.com
2071887Sdefan@nginx.com</changes>
2081887Sdefan@nginx.com
2091887Sdefan@nginx.com
2101887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
2111891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2121887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2131887Sdefan@nginx.com
2141887Sdefan@nginx.com<change>
2151887Sdefan@nginx.com<para>
2161887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
2171887Sdefan@nginx.com</para>
2181887Sdefan@nginx.com</change>
2191887Sdefan@nginx.com
2201887Sdefan@nginx.com</changes>
2211887Sdefan@nginx.com
2221887Sdefan@nginx.com
2231834Svbart@nginx.com<changes apply="unit-php
2241834Svbart@nginx.com                unit-python unit-python2.7
2251834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2261834Svbart@nginx.com                unit-python3.8 unit-python3.9
2271834Svbart@nginx.com                unit-go
2281834Svbart@nginx.com                unit-perl
2291834Svbart@nginx.com                unit-ruby
2301834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2311834Svbart@nginx.com                unit-jsc14 unit-jsc15"
2321839Svbart@nginx.com         ver="1.24.0" rev="1"
2331891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2341839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2351839Svbart@nginx.com
2361839Svbart@nginx.com<change>
2371839Svbart@nginx.com<para>
2381839Svbart@nginx.comNGINX Unit updated to 1.24.0.
2391839Svbart@nginx.com</para>
2401839Svbart@nginx.com</change>
2411839Svbart@nginx.com
2421839Svbart@nginx.com</changes>
2431839Svbart@nginx.com
2441839Svbart@nginx.com
2451839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
2461891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2471839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2481839Svbart@nginx.com
2491882So.canty@f5.com<change type="change">
2501882So.canty@f5.com<para>
2511882So.canty@f5.comPHP added to the default MIME type list.
2521882So.canty@f5.com</para>
2531882So.canty@f5.com</change>
2541882So.canty@f5.com
2551855Sz.hong@f5.com<change type="feature">
2561855Sz.hong@f5.com<para>
2571885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
2581885Sa.suvorov@f5.com</para>
2591885Sa.suvorov@f5.com</change>
2601885Sa.suvorov@f5.com
2611885Sa.suvorov@f5.com<change type="feature">
2621885Sa.suvorov@f5.com<para>
2631890Svbart@nginx.comthe ability to limit static file serving by MIME types.
2641890Svbart@nginx.com</para>
2651890Svbart@nginx.com</change>
2661890Svbart@nginx.com
2671890Svbart@nginx.com<change type="feature">
2681890Svbart@nginx.com<para>
2691890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
2701890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
2711872So.canty@f5.com</para>
2721872So.canty@f5.com</change>
2731872So.canty@f5.com
2741872So.canty@f5.com<change type="feature">
2751872So.canty@f5.com<para>
2761889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
2771889Sartem.konev@nginx.comNode.js.
2781865So.canty@f5.com</para>
2791865So.canty@f5.com</change>
2801865So.canty@f5.com
2811865So.canty@f5.com<change type="feature">
2821865So.canty@f5.com<para>
2831890Svbart@nginx.commultiple "targets" in Python applications.
2841855Sz.hong@f5.com</para>
2851855Sz.hong@f5.com</change>
2861855Sz.hong@f5.com
2871870So.canty@f5.com<change type="feature">
2881870So.canty@f5.com<para>
2891870So.canty@f5.comcompatibility with Ruby 3.0.
2901870So.canty@f5.com</para>
2911870So.canty@f5.com</change>
2921870So.canty@f5.com
2931861Svbart@nginx.com<change type="bugfix">
2941861Svbart@nginx.com<para>
2951889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
2961884Sa.suvorov@f5.com</para>
2971884Sa.suvorov@f5.com</change>
2981884Sa.suvorov@f5.com
2991884Sa.suvorov@f5.com<change type="bugfix">
3001884Sa.suvorov@f5.com<para>
3011861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
3021861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
3031861Svbart@nginx.com</para>
3041861Svbart@nginx.com</change>
3051861Svbart@nginx.com
3061839Svbart@nginx.com</changes>
3071839Svbart@nginx.com
3081839Svbart@nginx.com
3091839Svbart@nginx.com<changes apply="unit-php
3101839Svbart@nginx.com                unit-python unit-python2.7
3111839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3121839Svbart@nginx.com                unit-python3.8 unit-python3.9
3131839Svbart@nginx.com                unit-go
3141839Svbart@nginx.com                unit-perl
3151839Svbart@nginx.com                unit-ruby
3161839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3171839Svbart@nginx.com                unit-jsc14 unit-jsc15"
3181834Svbart@nginx.com         ver="1.23.0" rev="1"
3191834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
3201834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3211834Svbart@nginx.com
3221834Svbart@nginx.com<change>
3231834Svbart@nginx.com<para>
3241834Svbart@nginx.comNGINX Unit updated to 1.23.0.
3251834Svbart@nginx.com</para>
3261834Svbart@nginx.com</change>
3271834Svbart@nginx.com
3281834Svbart@nginx.com</changes>
3291834Svbart@nginx.com
3301834Svbart@nginx.com
3311806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
3321834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
3331806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3341806Svbart@nginx.com
3351825Sthresh@nginx.com<change type="feature">
3361825Sthresh@nginx.com<para>
3371833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
3381828Sa.suvorov@f5.comIndication (SNI) TLS extension.
3391828Sa.suvorov@f5.com</para>
3401828Sa.suvorov@f5.com</change>
3411828Sa.suvorov@f5.com
3421828Sa.suvorov@f5.com<change type="feature">
3431828Sa.suvorov@f5.com<para>
3441833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
3451833Sartem.konev@nginx.cominstallation.
3461825Sthresh@nginx.com</para>
3471825Sthresh@nginx.com</change>
3481825Sthresh@nginx.com
3491811Smax.romanov@nginx.com<change type="bugfix">
3501811Smax.romanov@nginx.com<para>
3511812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
3521812Svbart@nginx.comappeared in 1.17.0.
3531812Svbart@nginx.com</para>
3541812Svbart@nginx.com</change>
3551812Svbart@nginx.com
3561812Svbart@nginx.com<change type="bugfix">
3571812Svbart@nginx.com<para>
3581833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
3591812Svbart@nginx.comappeared in 1.6.
3601812Svbart@nginx.com</para>
3611812Svbart@nginx.com</change>
3621812Svbart@nginx.com
3631812Svbart@nginx.com<change type="bugfix">
3641812Svbart@nginx.com<para>
3651833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
3661832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
3671832Smax.romanov@nginx.com</para>
3681832Smax.romanov@nginx.com</change>
3691832Smax.romanov@nginx.com
3701832Smax.romanov@nginx.com<change type="bugfix">
3711832Smax.romanov@nginx.com<para>
3721833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
3731811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
3741811Smax.romanov@nginx.com</para>
3751811Smax.romanov@nginx.com</change>
3761806Svbart@nginx.com
3771813Svbart@nginx.com<change type="bugfix">
3781813Svbart@nginx.com<para>
3791813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
3801813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
3811813Svbart@nginx.com</para>
3821813Svbart@nginx.com</change>
3831813Svbart@nginx.com
3841814Svbart@nginx.com<change type="bugfix">
3851814Svbart@nginx.com<para>
3861820Svbart@nginx.comthe controller process could crash while requesting information about a
3871820Svbart@nginx.comcertificate with a non-DNS SAN entry.
3881820Svbart@nginx.com</para>
3891820Svbart@nginx.com</change>
3901820Svbart@nginx.com
3911820Svbart@nginx.com<change type="bugfix">
3921820Svbart@nginx.com<para>
3931822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
3941833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
3951822Svbart@nginx.com</para>
3961822Svbart@nginx.com</change>
3971822Svbart@nginx.com
3981822Svbart@nginx.com<change type="bugfix">
3991822Svbart@nginx.com<para>
4001833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
4011833Sartem.konev@nginx.comclass.
4021814Svbart@nginx.com</para>
4031814Svbart@nginx.com</change>
4041814Svbart@nginx.com
4051815Svbart@nginx.com<change type="bugfix">
4061815Svbart@nginx.com<para>
4071815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
4081815Svbart@nginx.comappeared in 1.22.0.
4091815Svbart@nginx.com</para>
4101815Svbart@nginx.com</change>
4111815Svbart@nginx.com
4121806Svbart@nginx.com</changes>
4131806Svbart@nginx.com
4141806Svbart@nginx.com
4151798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
4161798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
4171798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4181798Sdefan@nginx.com
4191798Sdefan@nginx.com<change>
4201798Sdefan@nginx.com<para>
4211798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
4221798Sdefan@nginx.com</para>
4231798Sdefan@nginx.com</change>
4241798Sdefan@nginx.com
4251798Sdefan@nginx.com</changes>
4261798Sdefan@nginx.com
4271798Sdefan@nginx.com
4281763Sdefan@nginx.com<changes apply="unit-php
4291763Sdefan@nginx.com                unit-python unit-python2.7
4301763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4311763Sdefan@nginx.com                unit-python3.8
4321763Sdefan@nginx.com                unit-go
4331763Sdefan@nginx.com                unit-perl
4341763Sdefan@nginx.com                unit-ruby
4351763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4361763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
4371763Sdefan@nginx.com         ver="1.22.0" rev="1"
4381793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
4391763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4401763Sdefan@nginx.com
4411763Sdefan@nginx.com<change>
4421763Sdefan@nginx.com<para>
4431763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
4441763Sdefan@nginx.com</para>
4451763Sdefan@nginx.com</change>
4461763Sdefan@nginx.com
4471763Sdefan@nginx.com</changes>
4481763Sdefan@nginx.com
4491763Sdefan@nginx.com
4501727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
4511793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
4521727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4531727Svbart@nginx.com
4541759Svbart@nginx.com<change type="feature">
4551759Svbart@nginx.com<para>
4561792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
4571792Svbart@nginx.comcompliant with Stream API.
4581759Svbart@nginx.com</para>
4591759Svbart@nginx.com</change>
4601759Svbart@nginx.com
4611766Smax.romanov@nginx.com<change type="feature">
4621766Smax.romanov@nginx.com<para>
4631792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
4641792Svbart@nginx.comapps.
4651732Svbart@nginx.com</para>
4661732Svbart@nginx.com</change>
4671732Svbart@nginx.com
4681733Svbart@nginx.com<change type="bugfix">
4691733Svbart@nginx.com<para>
4701792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
4711792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
4721754Smax.romanov@nginx.com</para>
4731754Smax.romanov@nginx.com</change>
4741754Smax.romanov@nginx.com
4751755Smax.romanov@nginx.com<change type="bugfix">
4761755Smax.romanov@nginx.com<para>
4771790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
4781755Smax.romanov@nginx.comappeared in 1.19.0.
4791755Smax.romanov@nginx.com</para>
4801755Smax.romanov@nginx.com</change>
4811755Smax.romanov@nginx.com
4821756Smax.romanov@nginx.com<change type="bugfix">
4831756Smax.romanov@nginx.com<para>
4841790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
4851790Sartem.konev@nginx.comappeared in 1.19.0.
4861756Smax.romanov@nginx.com</para>
4871756Smax.romanov@nginx.com</change>
4881756Smax.romanov@nginx.com
4891760Smax.romanov@nginx.com<change type="bugfix">
4901760Smax.romanov@nginx.com<para>
4911792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
4921792Svbart@nginx.com</para>
4931792Svbart@nginx.com</change>
4941792Svbart@nginx.com
4951792Svbart@nginx.com<change type="bugfix">
4961792Svbart@nginx.com<para>
4971792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
4981792Svbart@nginx.commissing in the PHP module.
4991792Svbart@nginx.com</para>
5001792Svbart@nginx.com</change>
5011792Svbart@nginx.com
5021792Svbart@nginx.com<change type="bugfix">
5031792Svbart@nginx.com<para>
5041792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
5051792Svbart@nginx.com</para>
5061792Svbart@nginx.com</change>
5071792Svbart@nginx.com
5081792Svbart@nginx.com<change type="bugfix">
5091792Svbart@nginx.com<para>
5101792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
5111792Svbart@nginx.com</para>
5121792Svbart@nginx.com</change>
5131792Svbart@nginx.com
5141792Svbart@nginx.com<change type="bugfix">
5151792Svbart@nginx.com<para>
5161792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
5171792Svbart@nginx.comthe bug had appeared in 1.21.0.
5181760Smax.romanov@nginx.com</para>
5191760Smax.romanov@nginx.com</change>
5201760Smax.romanov@nginx.com
5211780Smax.romanov@nginx.com<change type="bugfix">
5221780Smax.romanov@nginx.com<para>
5231790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
5241790Sartem.konev@nginx.comWebSocket.
5251780Smax.romanov@nginx.com</para>
5261780Smax.romanov@nginx.com</change>
5271780Smax.romanov@nginx.com
5281789Smax.romanov@nginx.com<change type="bugfix">
5291789Smax.romanov@nginx.com<para>
5301789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
5311789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
5321789Smax.romanov@nginx.com</para>
5331789Smax.romanov@nginx.com</change>
5341789Smax.romanov@nginx.com
5351727Svbart@nginx.com</changes>
5361727Svbart@nginx.com
5371727Svbart@nginx.com
5381722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
5391722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5401722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5411722Svbart@nginx.com
5421722Svbart@nginx.com<change>
5431722Svbart@nginx.com<para>
5441722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
5451722Svbart@nginx.com</para>
5461722Svbart@nginx.com</change>
5471722Svbart@nginx.com
5481722Svbart@nginx.com</changes>
5491722Svbart@nginx.com
5501722Svbart@nginx.com
5511722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
5521722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5531722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5541722Svbart@nginx.com
5551722Svbart@nginx.com<change>
5561722Svbart@nginx.com<para>
5571722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
5581722Svbart@nginx.com</para>
5591722Svbart@nginx.com</change>
5601722Svbart@nginx.com
5611722Svbart@nginx.com</changes>
5621722Svbart@nginx.com
5631722Svbart@nginx.com
5641722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
5651722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5661722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5671722Svbart@nginx.com
5681722Svbart@nginx.com<change>
5691722Svbart@nginx.com<para>
5701722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
5711722Svbart@nginx.com</para>
5721722Svbart@nginx.com</change>
5731722Svbart@nginx.com
5741722Svbart@nginx.com</changes>
5751722Svbart@nginx.com
5761722Svbart@nginx.com
5771722Svbart@nginx.com<changes apply="unit-php
5781722Svbart@nginx.com                unit-python unit-python2.7
5791722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5801722Svbart@nginx.com                unit-python3.8
5811722Svbart@nginx.com                unit-go
5821722Svbart@nginx.com                unit-perl
5831722Svbart@nginx.com                unit-ruby
5841722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
5851722Svbart@nginx.com         ver="1.21.0" rev="1"
5861722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5871722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5881722Svbart@nginx.com
5891722Svbart@nginx.com<change>
5901722Svbart@nginx.com<para>
5911722Svbart@nginx.comNGINX Unit updated to 1.21.0.
5921722Svbart@nginx.com</para>
5931722Svbart@nginx.com</change>
5941722Svbart@nginx.com
5951722Svbart@nginx.com</changes>
5961722Svbart@nginx.com
5971722Svbart@nginx.com
5981722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
5991722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6001722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6011722Svbart@nginx.com
6021722Svbart@nginx.com<change type="change">
6031722Svbart@nginx.com<para>
6041722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
6051722Svbart@nginx.com</para>
6061722Svbart@nginx.com</change>
6071722Svbart@nginx.com
6081722Svbart@nginx.com<change type="change">
6091722Svbart@nginx.com<para>
6101722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
6111722Svbart@nginx.comnames.
6121722Svbart@nginx.com</para>
6131722Svbart@nginx.com</change>
6141722Svbart@nginx.com
6151722Svbart@nginx.com<change type="change">
6161722Svbart@nginx.com<para>
6171722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
6181722Svbart@nginx.comdefault.
6191722Svbart@nginx.com</para>
6201722Svbart@nginx.com</change>
6211722Svbart@nginx.com
6221722Svbart@nginx.com<change type="feature">
6231722Svbart@nginx.com<para>
6241722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
6251722Svbart@nginx.com</para>
6261722Svbart@nginx.com</change>
6271722Svbart@nginx.com
6281722Svbart@nginx.com<change type="feature">
6291722Svbart@nginx.com<para>
6301722Svbart@nginx.comregular expressions in route matching patterns.
6311722Svbart@nginx.com</para>
6321722Svbart@nginx.com</change>
6331722Svbart@nginx.com
6341722Svbart@nginx.com<change type="feature">
6351722Svbart@nginx.com<para>
6361722Svbart@nginx.comcompatibility with Python 3.9.
6371722Svbart@nginx.com</para>
6381722Svbart@nginx.com</change>
6391722Svbart@nginx.com
6401722Svbart@nginx.com<change type="feature">
6411722Svbart@nginx.com<para>
6421722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
6431722Svbart@nginx.com</para>
6441722Svbart@nginx.com</change>
6451722Svbart@nginx.com
6461722Svbart@nginx.com<change type="feature">
6471722Svbart@nginx.com<para>
6481722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
6491722Svbart@nginx.com</para>
6501722Svbart@nginx.com</change>
6511722Svbart@nginx.com
6521722Svbart@nginx.com<change type="feature">
6531722Svbart@nginx.com<para>
6541722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
6551722Svbart@nginx.comcontinues code execution without holding onto the client connection.
6561722Svbart@nginx.com</para>
6571722Svbart@nginx.com</change>
6581722Svbart@nginx.com
6591722Svbart@nginx.com<change type="feature">
6601722Svbart@nginx.com<para>
6611722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
6621722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
6631722Svbart@nginx.com</para>
6641722Svbart@nginx.com</change>
6651722Svbart@nginx.com
6661722Svbart@nginx.com<change type="feature">
6671722Svbart@nginx.com<para>
6681722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
6691722Svbart@nginx.commounting of eponymous filesystems.
6701722Svbart@nginx.com</para>
6711722Svbart@nginx.com</change>
6721722Svbart@nginx.com
6731722Svbart@nginx.com<change type="bugfix">
6741722Svbart@nginx.com<para>
6751722Svbart@nginx.comthe router process could crash when running Go applications under high load;
6761722Svbart@nginx.comthe bug had appeared in 1.19.0.
6771722Svbart@nginx.com</para>
6781722Svbart@nginx.com</change>
6791722Svbart@nginx.com
6801722Svbart@nginx.com<change type="bugfix">
6811722Svbart@nginx.com<para>
6821722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
6831722Svbart@nginx.com</para>
6841722Svbart@nginx.com</change>
6851722Svbart@nginx.com
6861722Svbart@nginx.com<change type="bugfix">
6871722Svbart@nginx.com<para>
6881722Svbart@nginx.comvarious compatibility issues in Java applications.
6891722Svbart@nginx.com</para>
6901722Svbart@nginx.com</change>
6911722Svbart@nginx.com
6921722Svbart@nginx.com<change type="bugfix">
6931722Svbart@nginx.com<para>
6941722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
6951722Svbart@nginx.comuse "rootfs" isolation.
6961722Svbart@nginx.com</para>
6971722Svbart@nginx.com</change>
6981722Svbart@nginx.com
6991722Svbart@nginx.com</changes>
7001722Svbart@nginx.com
7011722Svbart@nginx.com
7021330Svbart@nginx.com<changes apply="unit-php
7031330Svbart@nginx.com                unit-python unit-python2.7
7041330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7051330Svbart@nginx.com                unit-python3.8
7061330Svbart@nginx.com                unit-go
7071330Svbart@nginx.com                unit-perl
7081330Svbart@nginx.com                unit-ruby
7091330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
7101640Svbart@nginx.com         ver="1.20.0" rev="1"
7111640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
7121640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7131640Svbart@nginx.com
7141640Svbart@nginx.com<change>
7151640Svbart@nginx.com<para>
7161640Svbart@nginx.comNGINX Unit updated to 1.20.0.
7171640Svbart@nginx.com</para>
7181640Svbart@nginx.com</change>
7191640Svbart@nginx.com
7201640Svbart@nginx.com</changes>
7211640Svbart@nginx.com
7221640Svbart@nginx.com
7231640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
7241640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
7251640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7261640Svbart@nginx.com
7271640Svbart@nginx.com<change type="change">
7281640Svbart@nginx.com<para>
7291640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
7301640Svbart@nginx.comextensions from the host system.
7311640Svbart@nginx.com</para>
7321640Svbart@nginx.com</change>
7331640Svbart@nginx.com
7341640Svbart@nginx.com<change type="change">
7351640Svbart@nginx.com<para>
7361640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
7371640Svbart@nginx.com</para>
7381640Svbart@nginx.com</change>
7391640Svbart@nginx.com
7401643Svbart@nginx.com<change type="change">
7411643Svbart@nginx.com<para>
7421643Svbart@nginx.comfunctional tests migrated to the pytest framework.
7431643Svbart@nginx.com</para>
7441643Svbart@nginx.com</change>
7451643Svbart@nginx.com
7461640Svbart@nginx.com<change type="feature">
7471640Svbart@nginx.com<para>
7481640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
7491640Svbart@nginx.cominterface.
7501640Svbart@nginx.com</para>
7511640Svbart@nginx.com</change>
7521640Svbart@nginx.com
7531640Svbart@nginx.com<change type="feature">
7541640Svbart@nginx.com<para>
7551640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
7561640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
7571640Svbart@nginx.comspecification.
7581640Svbart@nginx.com</para>
7591640Svbart@nginx.com</change>
7601640Svbart@nginx.com
7611640Svbart@nginx.com<change type="feature">
7621640Svbart@nginx.com<para>
7631640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
7641640Svbart@nginx.comenvironments.
7651640Svbart@nginx.com</para>
7661640Svbart@nginx.com</change>
7671640Svbart@nginx.com
7681640Svbart@nginx.com<change type="feature">
7691640Svbart@nginx.com<para>
7701640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
7711640Svbart@nginx.com</para>
7721640Svbart@nginx.com</change>
7731640Svbart@nginx.com
7741640Svbart@nginx.com<change type="feature">
7751640Svbart@nginx.com<para>
7761640Svbart@nginx.comthe "callable" option sets Python application callable names.
7771640Svbart@nginx.com</para>
7781640Svbart@nginx.com</change>
7791640Svbart@nginx.com
7801640Svbart@nginx.com<change type="feature">
7811640Svbart@nginx.com<para>
7821640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
7831640Svbart@nginx.com</para>
7841640Svbart@nginx.com</change>
7851640Svbart@nginx.com
7861640Svbart@nginx.com<change type="feature">
7871640Svbart@nginx.com<para>
7881640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
7891640Svbart@nginx.comautomatic mounting of language module dependencies.
7901640Svbart@nginx.com</para>
7911640Svbart@nginx.com</change>
7921640Svbart@nginx.com
7931640Svbart@nginx.com<change type="bugfix">
7941640Svbart@nginx.com<para>
7951640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
7961640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
7971640Svbart@nginx.com</para>
7981640Svbart@nginx.com</change>
7991640Svbart@nginx.com
8001640Svbart@nginx.com<change type="bugfix">
8011640Svbart@nginx.com<para>
8021640Svbart@nginx.comthe router process could crash during reconfiguration.
8031640Svbart@nginx.com</para>
8041640Svbart@nginx.com</change>
8051640Svbart@nginx.com
8061640Svbart@nginx.com<change type="bugfix">
8071640Svbart@nginx.com<para>
8081640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
8091640Svbart@nginx.com</para>
8101640Svbart@nginx.com</change>
8111640Svbart@nginx.com
8121640Svbart@nginx.com<change type="bugfix">
8131640Svbart@nginx.com<para>
8141640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
8151640Svbart@nginx.comthe bug had appeared in 1.19.0.
8161640Svbart@nginx.com</para>
8171640Svbart@nginx.com</change>
8181640Svbart@nginx.com
8191640Svbart@nginx.com<change type="bugfix">
8201640Svbart@nginx.com<para>
8211640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
8221640Svbart@nginx.comthe bug had appeared in 1.16.0.
8231640Svbart@nginx.com</para>
8241640Svbart@nginx.com</change>
8251640Svbart@nginx.com
8261640Svbart@nginx.com</changes>
8271640Svbart@nginx.com
8281640Svbart@nginx.com
8291640Svbart@nginx.com<changes apply="unit-php
8301640Svbart@nginx.com                unit-python unit-python2.7
8311640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8321640Svbart@nginx.com                unit-python3.8
8331640Svbart@nginx.com                unit-go
8341640Svbart@nginx.com                unit-perl
8351640Svbart@nginx.com                unit-ruby
8361640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8371570Svbart@nginx.com         ver="1.19.0" rev="1"
8381570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
8391570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8401570Svbart@nginx.com
8411570Svbart@nginx.com<change>
8421570Svbart@nginx.com<para>
8431570Svbart@nginx.comNGINX Unit updated to 1.19.0.
8441570Svbart@nginx.com</para>
8451570Svbart@nginx.com</change>
8461570Svbart@nginx.com
8471570Svbart@nginx.com</changes>
8481570Svbart@nginx.com
8491570Svbart@nginx.com
8501570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1"
8511570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
8521570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8531570Svbart@nginx.com
8541570Svbart@nginx.com<change type="feature">
8551570Svbart@nginx.com<para>
8561570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
8571570Svbart@nginx.comincrease performance, and improve scalability.
8581570Svbart@nginx.com</para>
8591570Svbart@nginx.com</change>
8601570Svbart@nginx.com
8611570Svbart@nginx.com<change type="feature">
8621570Svbart@nginx.com<para>
8631570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns.
8641570Svbart@nginx.com</para>
8651570Svbart@nginx.com</change>
8661570Svbart@nginx.com
8671570Svbart@nginx.com<change type="feature">
8681570Svbart@nginx.com<para>
8691570Svbart@nginx.comchunked transfer encoding in proxy responses.
8701570Svbart@nginx.com</para>
8711570Svbart@nginx.com</change>
8721570Svbart@nginx.com
8731570Svbart@nginx.com<change type="feature">
8741570Svbart@nginx.com<para>
8751570Svbart@nginx.combasic variables support in the "pass" option.
8761570Svbart@nginx.com</para>
8771570Svbart@nginx.com</change>
8781570Svbart@nginx.com
8791570Svbart@nginx.com<change type="feature">
8801570Svbart@nginx.com<para>
8811570Svbart@nginx.comcompatibility with PHP 8 Beta 1.
8821570Svbart@nginx.comThanks to Remi Collet.
8831570Svbart@nginx.com</para>
8841570Svbart@nginx.com</change>
8851570Svbart@nginx.com
8861570Svbart@nginx.com<change type="bugfix">
8871570Svbart@nginx.com<para>
8881570Svbart@nginx.comthe router process could crash while passing requests to an application under
8891570Svbart@nginx.comhigh load.
8901570Svbart@nginx.com</para>
8911570Svbart@nginx.com</change>
8921570Svbart@nginx.com
8931570Svbart@nginx.com<change type="bugfix">
8941570Svbart@nginx.com<para>
8951570Svbart@nginx.coma number of language modules failed to build on some systems;
8961570Svbart@nginx.comthe bug had appeared in 1.18.0.
8971570Svbart@nginx.com</para>
8981570Svbart@nginx.com</change>
8991570Svbart@nginx.com
9001570Svbart@nginx.com<change type="bugfix">
9011570Svbart@nginx.com<para>
9021570Svbart@nginx.comtime in error log messages from PHP applications could lag.
9031570Svbart@nginx.com</para>
9041570Svbart@nginx.com</change>
9051570Svbart@nginx.com
9061570Svbart@nginx.com<change type="bugfix">
9071570Svbart@nginx.com<para>
9081570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start;
9091570Svbart@nginx.comthe bug had appeared in 1.18.0.
9101570Svbart@nginx.com</para>
9111570Svbart@nginx.com</change>
9121570Svbart@nginx.com
9131570Svbart@nginx.com<change type="bugfix">
9141570Svbart@nginx.com<para>
9151570Svbart@nginx.commemory leak during reconfiguration.
9161570Svbart@nginx.com</para>
9171570Svbart@nginx.com</change>
9181570Svbart@nginx.com
9191570Svbart@nginx.com<change type="bugfix">
9201570Svbart@nginx.com<para>
9211570Svbart@nginx.comthe daemon didn't start without language modules;
9221570Svbart@nginx.comthe bug had appeared in 1.18.0.
9231570Svbart@nginx.com</para>
9241570Svbart@nginx.com</change>
9251570Svbart@nginx.com
9261570Svbart@nginx.com<change type="bugfix">
9271570Svbart@nginx.com<para>
9281570Svbart@nginx.comthe router process could crash at exit.
9291570Svbart@nginx.com</para>
9301570Svbart@nginx.com</change>
9311570Svbart@nginx.com
9321570Svbart@nginx.com<change type="bugfix">
9331570Svbart@nginx.com<para>
9341570Svbart@nginx.comNode.js applications could crash at exit.
9351570Svbart@nginx.com</para>
9361570Svbart@nginx.com</change>
9371570Svbart@nginx.com
9381570Svbart@nginx.com<change type="bugfix">
9391570Svbart@nginx.com<para>
9401570Svbart@nginx.comthe Ruby module could be linked against a wrong library version.
9411570Svbart@nginx.com</para>
9421570Svbart@nginx.com</change>
9431570Svbart@nginx.com
9441570Svbart@nginx.com</changes>
9451570Svbart@nginx.com
9461570Svbart@nginx.com
9471570Svbart@nginx.com<changes apply="unit-php
9481570Svbart@nginx.com                unit-python unit-python2.7
9491570Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9501570Svbart@nginx.com                unit-python3.8
9511570Svbart@nginx.com                unit-go
9521570Svbart@nginx.com                unit-perl
9531570Svbart@nginx.com                unit-ruby
9541570Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9551491Svbart@nginx.com         ver="1.18.0" rev="1"
9561491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
9571491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9581491Svbart@nginx.com
9591491Svbart@nginx.com<change>
9601491Svbart@nginx.com<para>
9611491Svbart@nginx.comNGINX Unit updated to 1.18.0.
9621491Svbart@nginx.com</para>
9631491Svbart@nginx.com</change>
9641491Svbart@nginx.com
9651491Svbart@nginx.com</changes>
9661491Svbart@nginx.com
9671491Svbart@nginx.com
9681491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1"
9691491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
9701491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9711491Svbart@nginx.com
9721491Svbart@nginx.com<change type="feature">
9731491Svbart@nginx.com<para>
9741491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application.
9751491Svbart@nginx.com</para>
9761491Svbart@nginx.com</change>
9771491Svbart@nginx.com
9781491Svbart@nginx.com<change type="feature">
9791491Svbart@nginx.com<para>
9801491Svbart@nginx.commultiple "targets" in PHP applications.
9811491Svbart@nginx.com</para>
9821491Svbart@nginx.com</change>
9831491Svbart@nginx.com
9841491Svbart@nginx.com<change type="feature">
9851491Svbart@nginx.com<para>
9861491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options
9871491Svbart@nginx.comand in the "pass" option.
9881491Svbart@nginx.com</para>
9891491Svbart@nginx.com</change>
9901491Svbart@nginx.com
9911491Svbart@nginx.com</changes>
9921491Svbart@nginx.com
9931491Svbart@nginx.com
9941491Svbart@nginx.com<changes apply="unit-php
9951491Svbart@nginx.com                unit-python unit-python2.7
9961491Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9971491Svbart@nginx.com                unit-python3.8
9981491Svbart@nginx.com                unit-go
9991491Svbart@nginx.com                unit-perl
10001491Svbart@nginx.com                unit-ruby
10011491Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10021460Svbart@nginx.com         ver="1.17.0" rev="1"
10031460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
10041460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10051460Svbart@nginx.com
10061460Svbart@nginx.com<change>
10071460Svbart@nginx.com<para>
10081460Svbart@nginx.comNGINX Unit updated to 1.17.0.
10091460Svbart@nginx.com</para>
10101460Svbart@nginx.com</change>
10111460Svbart@nginx.com
10121460Svbart@nginx.com</changes>
10131460Svbart@nginx.com
10141460Svbart@nginx.com
10151460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1"
10161460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
10171460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10181460Svbart@nginx.com
10191460Svbart@nginx.com<change type="feature">
10201460Svbart@nginx.com<para>
10211460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external
10221460Svbart@nginx.comredirection.
10231460Svbart@nginx.com</para>
10241460Svbart@nginx.com</change>
10251460Svbart@nginx.com
10261460Svbart@nginx.com<change type="feature">
10271460Svbart@nginx.com<para>
10281460Svbart@nginx.comfractional weights support for upstream servers.
10291460Svbart@nginx.com</para>
10301460Svbart@nginx.com</change>
10311460Svbart@nginx.com
10321460Svbart@nginx.com<change type="bugfix">
10331460Svbart@nginx.com<para>
10341460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under
10351460Svbart@nginx.comhigh load.
10361460Svbart@nginx.com</para>
10371460Svbart@nginx.com</change>
10381460Svbart@nginx.com
10391460Svbart@nginx.com<change type="bugfix">
10401460Svbart@nginx.com<para>
10411460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0.
10421460Svbart@nginx.com</para>
10431460Svbart@nginx.com</change>
10441460Svbart@nginx.com
10451460Svbart@nginx.com<change type="bugfix">
10461460Svbart@nginx.com<para>
10471460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching
10481460Svbart@nginx.comopen connections limit.
10491460Svbart@nginx.com</para>
10501460Svbart@nginx.com</change>
10511460Svbart@nginx.com
10521460Svbart@nginx.com<change type="bugfix">
10531460Svbart@nginx.com<para>
10541460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log
10551460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0.
10561460Svbart@nginx.com</para>
10571460Svbart@nginx.com</change>
10581460Svbart@nginx.com
10591460Svbart@nginx.com<change type="bugfix">
10601460Svbart@nginx.com<para>
10611460Svbart@nginx.comexisting application processes didn't reopen the log file.
10621460Svbart@nginx.com</para>
10631460Svbart@nginx.com</change>
10641460Svbart@nginx.com
10651460Svbart@nginx.com<change type="bugfix">
10661460Svbart@nginx.com<para>
10671460Svbart@nginx.comincompatibility with some Node.js applications.
10681460Svbart@nginx.com</para>
10691460Svbart@nginx.com</change>
10701460Svbart@nginx.com
10711460Svbart@nginx.com<change type="bugfix">
10721460Svbart@nginx.com<para>
10731460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0.
10741460Svbart@nginx.com</para>
10751460Svbart@nginx.com</change>
10761460Svbart@nginx.com
10771460Svbart@nginx.com</changes>
10781460Svbart@nginx.com
10791460Svbart@nginx.com
10801460Svbart@nginx.com<changes apply="unit-php
10811460Svbart@nginx.com                unit-python unit-python2.7
10821460Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10831460Svbart@nginx.com                unit-python3.8
10841460Svbart@nginx.com                unit-go
10851460Svbart@nginx.com                unit-perl
10861460Svbart@nginx.com                unit-ruby
10871460Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10881404Svbart@nginx.com         ver="1.16.0" rev="1"
10891404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
10901404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10911404Svbart@nginx.com
10921404Svbart@nginx.com<change>
10931404Svbart@nginx.com<para>
10941404Svbart@nginx.comNGINX Unit updated to 1.16.0.
10951404Svbart@nginx.com</para>
10961404Svbart@nginx.com</change>
10971404Svbart@nginx.com
10981404Svbart@nginx.com</changes>
10991404Svbart@nginx.com
11001404Svbart@nginx.com
11011404Svbart@nginx.com<changes apply="unit" ver="1.16.0" rev="1"
11021404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
11031404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11041404Svbart@nginx.com
11051404Svbart@nginx.com<change type="feature">
11061404Svbart@nginx.com<para>
11071404Svbart@nginx.combasic load-balancing support with round-robin.
11081404Svbart@nginx.com</para>
11091404Svbart@nginx.com</change>
11101404Svbart@nginx.com
11111404Svbart@nginx.com<change type="feature">
11121404Svbart@nginx.com<para>
11131404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be
11141404Svbart@nginx.comserved from the "share" directory.
11151404Svbart@nginx.com</para>
11161404Svbart@nginx.com</change>
11171404Svbart@nginx.com
11181404Svbart@nginx.com<change type="feature">
11191404Svbart@nginx.com<para>
11201404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk.
11211404Svbart@nginx.com</para>
11221404Svbart@nginx.com</change>
11231404Svbart@nginx.com
11241404Svbart@nginx.com<change type="feature">
11251404Svbart@nginx.com<para>
11261404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON.
11271404Svbart@nginx.com</para>
11281404Svbart@nginx.com</change>
11291404Svbart@nginx.com
11301404Svbart@nginx.com<change type="bugfix">
11311404Svbart@nginx.com<para>
11321404Svbart@nginx.comnegative address matching in router might work improperly in combination with
11331404Svbart@nginx.comnon-negative patterns.
11341404Svbart@nginx.com</para>
11351404Svbart@nginx.com</change>
11361404Svbart@nginx.com
11371404Svbart@nginx.com<change type="bugfix">
11381404Svbart@nginx.com<para>
11391404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0.
11401404Svbart@nginx.com</para>
11411404Svbart@nginx.com</change>
11421404Svbart@nginx.com
11431404Svbart@nginx.com<change type="bugfix">
11441404Svbart@nginx.com<para>
11451404Svbart@nginx.comPHP 7.4 was broken if it was built with thread safety enabled.
11461404Svbart@nginx.com</para>
11471404Svbart@nginx.com</change>
11481404Svbart@nginx.com
11491404Svbart@nginx.com<change type="bugfix">
11501404Svbart@nginx.com<para>
11511404Svbart@nginx.comcompatibility issues with some Python applications.
11521404Svbart@nginx.com</para>
11531404Svbart@nginx.com</change>
11541404Svbart@nginx.com
11551404Svbart@nginx.com</changes>
11561404Svbart@nginx.com
11571404Svbart@nginx.com
11581404Svbart@nginx.com<changes apply="unit-php
11591404Svbart@nginx.com                unit-python unit-python2.7
11601404Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11611404Svbart@nginx.com                unit-python3.8
11621404Svbart@nginx.com                unit-go
11631404Svbart@nginx.com                unit-perl
11641404Svbart@nginx.com                unit-ruby
11651404Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11661357Svbart@nginx.com         ver="1.15.0" rev="1"
11671357Svbart@nginx.com         date="2020-02-06" time="18:00:00 +0300"
11681357Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11691357Svbart@nginx.com
11701357Svbart@nginx.com<change>
11711357Svbart@nginx.com<para>
11721357Svbart@nginx.comNGINX Unit updated to 1.15.0.
11731357Svbart@nginx.com</para>
11741357Svbart@nginx.com</change>
11751357Svbart@nginx.com
11761357Svbart@nginx.com</changes>
11771357Svbart@nginx.com
11781357Svbart@nginx.com
11791357Svbart@nginx.com<changes apply="unit" ver="1.15.0" rev="1"
11801357Svbart@nginx.com         date="2020-02-06" time="18:00:00 +0300"
11811357Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11821357Svbart@nginx.com
11831357Svbart@nginx.com<change type="change">
11841357Svbart@nginx.com<para>
11851357Svbart@nginx.comextensions of dynamically requested PHP scripts were restricted to ".php".
11861357Svbart@nginx.com</para>
1187