xref: /unit/docs/changes.xml (revision 1921)
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"
171896Svbart@nginx.com         ver="1.25.0" rev="1"
181896Svbart@nginx.com         date="" time=""
191896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
201896Svbart@nginx.com
211896Svbart@nginx.com<change>
221896Svbart@nginx.com<para>
231896Svbart@nginx.comNGINX Unit updated to 1.25.0.
241896Svbart@nginx.com</para>
251896Svbart@nginx.com</change>
261896Svbart@nginx.com
271896Svbart@nginx.com</changes>
281896Svbart@nginx.com
291896Svbart@nginx.com
301896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
311896Svbart@nginx.com         date="" time=""
321896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
331896Svbart@nginx.com
341910So.canty@f5.com<change type="feature">
351910So.canty@f5.com<para>
361920Sa.suvorov@f5.comTLS sessions cache.
371920Sa.suvorov@f5.com</para>
381920Sa.suvorov@f5.com</change>
391920Sa.suvorov@f5.com
401920Sa.suvorov@f5.com<change type="feature">
411920Sa.suvorov@f5.com<para>
421910So.canty@f5.comprocess and thread lifecycle hooks in Ruby.
431910So.canty@f5.com</para>
441910So.canty@f5.com</change>
451910So.canty@f5.com
461907Smax.romanov@nginx.com<change type="bugfix">
471907Smax.romanov@nginx.com<para>
48*1921Sa.suvorov@f5.comTLS connection was rejected for configuration with more than one
49*1921Sa.suvorov@f5.comcertificate bundle in a listener if a client did not use SNI.
50*1921Sa.suvorov@f5.com</para>
51*1921Sa.suvorov@f5.com</change>
52*1921Sa.suvorov@f5.com
53*1921Sa.suvorov@f5.com
54*1921Sa.suvorov@f5.com<change type="bugfix">
55*1921Sa.suvorov@f5.com<para>
561907Smax.romanov@nginx.comthe router process could crash on TLS connection open when multiple listeners
571907Smax.romanov@nginx.comwith TLS certificate configured; the bug had appeared in 1.23.0.
581907Smax.romanov@nginx.com</para>
591907Smax.romanov@nginx.com</change>
601907Smax.romanov@nginx.com
611907Smax.romanov@nginx.com<change type="bugfix">
621907Smax.romanov@nginx.com<para>
631915Smax.romanov@nginx.comthe router process could crash on rapid mutithreaded application
641915Smax.romanov@nginx.comreconfiguration.
651915Smax.romanov@nginx.com</para>
661915Smax.romanov@nginx.com</change>
671915Smax.romanov@nginx.com
681915Smax.romanov@nginx.com<change type="bugfix">
691915Smax.romanov@nginx.com<para>
701907Smax.romanov@nginx.coma descriptor and memory leak occurred in the router process when an app
711907Smax.romanov@nginx.comprocess stopped or crashed.
721907Smax.romanov@nginx.com</para>
731907Smax.romanov@nginx.com</change>
741907Smax.romanov@nginx.com
751909So.canty@f5.com<change type="bugfix">
761909So.canty@f5.com<para>
771909So.canty@f5.comthe controller or router process could crash if the configuration contained
781909So.canty@f5.coma full-form IPv6 in a listener address.
791909So.canty@f5.com</para>
801909So.canty@f5.com</change>
811909So.canty@f5.com
821916Smax.romanov@nginx.com<change type="bugfix">
831916Smax.romanov@nginx.com<para>
841916Smax.romanov@nginx.comcompatibility issues with some Python ASGI apps, notably based on Starlette
851916Smax.romanov@nginx.comframework.
861916Smax.romanov@nginx.com</para>
871916Smax.romanov@nginx.com</change>
881916Smax.romanov@nginx.com
891896Svbart@nginx.com</changes>
901896Svbart@nginx.com
911896Svbart@nginx.com
921887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
931891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
941887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
951887Sdefan@nginx.com
961887Sdefan@nginx.com<change>
971887Sdefan@nginx.com<para>
981887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
991887Sdefan@nginx.com</para>
1001887Sdefan@nginx.com</change>
1011887Sdefan@nginx.com
1021887Sdefan@nginx.com</changes>
1031887Sdefan@nginx.com
1041887Sdefan@nginx.com
1051887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
1061891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
1071887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1081887Sdefan@nginx.com
1091887Sdefan@nginx.com<change>
1101887Sdefan@nginx.com<para>
1111887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
1121887Sdefan@nginx.com</para>
1131887Sdefan@nginx.com</change>
1141887Sdefan@nginx.com
1151887Sdefan@nginx.com</changes>
1161887Sdefan@nginx.com
1171887Sdefan@nginx.com
1181834Svbart@nginx.com<changes apply="unit-php
1191834Svbart@nginx.com                unit-python unit-python2.7
1201834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1211834Svbart@nginx.com                unit-python3.8 unit-python3.9
1221834Svbart@nginx.com                unit-go
1231834Svbart@nginx.com                unit-perl
1241834Svbart@nginx.com                unit-ruby
1251834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1261834Svbart@nginx.com                unit-jsc14 unit-jsc15"
1271839Svbart@nginx.com         ver="1.24.0" rev="1"
1281891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
1291839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1301839Svbart@nginx.com
1311839Svbart@nginx.com<change>
1321839Svbart@nginx.com<para>
1331839Svbart@nginx.comNGINX Unit updated to 1.24.0.
1341839Svbart@nginx.com</para>
1351839Svbart@nginx.com</change>
1361839Svbart@nginx.com
1371839Svbart@nginx.com</changes>
1381839Svbart@nginx.com
1391839Svbart@nginx.com
1401839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
1411891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
1421839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1431839Svbart@nginx.com
1441882So.canty@f5.com<change type="change">
1451882So.canty@f5.com<para>
1461882So.canty@f5.comPHP added to the default MIME type list.
1471882So.canty@f5.com</para>
1481882So.canty@f5.com</change>
1491882So.canty@f5.com
1501855Sz.hong@f5.com<change type="feature">
1511855Sz.hong@f5.com<para>
1521885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
1531885Sa.suvorov@f5.com</para>
1541885Sa.suvorov@f5.com</change>
1551885Sa.suvorov@f5.com
1561885Sa.suvorov@f5.com<change type="feature">
1571885Sa.suvorov@f5.com<para>
1581890Svbart@nginx.comthe ability to limit static file serving by MIME types.
1591890Svbart@nginx.com</para>
1601890Svbart@nginx.com</change>
1611890Svbart@nginx.com
1621890Svbart@nginx.com<change type="feature">
1631890Svbart@nginx.com<para>
1641890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
1651890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
1661872So.canty@f5.com</para>
1671872So.canty@f5.com</change>
1681872So.canty@f5.com
1691872So.canty@f5.com<change type="feature">
1701872So.canty@f5.com<para>
1711889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
1721889Sartem.konev@nginx.comNode.js.
1731865So.canty@f5.com</para>
1741865So.canty@f5.com</change>
1751865So.canty@f5.com
1761865So.canty@f5.com<change type="feature">
1771865So.canty@f5.com<para>
1781890Svbart@nginx.commultiple "targets" in Python applications.
1791855Sz.hong@f5.com</para>
1801855Sz.hong@f5.com</change>
1811855Sz.hong@f5.com
1821870So.canty@f5.com<change type="feature">
1831870So.canty@f5.com<para>
1841870So.canty@f5.comcompatibility with Ruby 3.0.
1851870So.canty@f5.com</para>
1861870So.canty@f5.com</change>
1871870So.canty@f5.com
1881861Svbart@nginx.com<change type="bugfix">
1891861Svbart@nginx.com<para>
1901889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
1911884Sa.suvorov@f5.com</para>
1921884Sa.suvorov@f5.com</change>
1931884Sa.suvorov@f5.com
1941884Sa.suvorov@f5.com<change type="bugfix">
1951884Sa.suvorov@f5.com<para>
1961861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
1971861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
1981861Svbart@nginx.com</para>
1991861Svbart@nginx.com</change>
2001861Svbart@nginx.com
2011839Svbart@nginx.com</changes>
2021839Svbart@nginx.com
2031839Svbart@nginx.com
2041839Svbart@nginx.com<changes apply="unit-php
2051839Svbart@nginx.com                unit-python unit-python2.7
2061839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2071839Svbart@nginx.com                unit-python3.8 unit-python3.9
2081839Svbart@nginx.com                unit-go
2091839Svbart@nginx.com                unit-perl
2101839Svbart@nginx.com                unit-ruby
2111839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2121839Svbart@nginx.com                unit-jsc14 unit-jsc15"
2131834Svbart@nginx.com         ver="1.23.0" rev="1"
2141834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
2151834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2161834Svbart@nginx.com
2171834Svbart@nginx.com<change>
2181834Svbart@nginx.com<para>
2191834Svbart@nginx.comNGINX Unit updated to 1.23.0.
2201834Svbart@nginx.com</para>
2211834Svbart@nginx.com</change>
2221834Svbart@nginx.com
2231834Svbart@nginx.com</changes>
2241834Svbart@nginx.com
2251834Svbart@nginx.com
2261806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
2271834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
2281806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2291806Svbart@nginx.com
2301825Sthresh@nginx.com<change type="feature">
2311825Sthresh@nginx.com<para>
2321833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
2331828Sa.suvorov@f5.comIndication (SNI) TLS extension.
2341828Sa.suvorov@f5.com</para>
2351828Sa.suvorov@f5.com</change>
2361828Sa.suvorov@f5.com
2371828Sa.suvorov@f5.com<change type="feature">
2381828Sa.suvorov@f5.com<para>
2391833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
2401833Sartem.konev@nginx.cominstallation.
2411825Sthresh@nginx.com</para>
2421825Sthresh@nginx.com</change>
2431825Sthresh@nginx.com
2441811Smax.romanov@nginx.com<change type="bugfix">
2451811Smax.romanov@nginx.com<para>
2461812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
2471812Svbart@nginx.comappeared in 1.17.0.
2481812Svbart@nginx.com</para>
2491812Svbart@nginx.com</change>
2501812Svbart@nginx.com
2511812Svbart@nginx.com<change type="bugfix">
2521812Svbart@nginx.com<para>
2531833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
2541812Svbart@nginx.comappeared in 1.6.
2551812Svbart@nginx.com</para>
2561812Svbart@nginx.com</change>
2571812Svbart@nginx.com
2581812Svbart@nginx.com<change type="bugfix">
2591812Svbart@nginx.com<para>
2601833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
2611832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
2621832Smax.romanov@nginx.com</para>
2631832Smax.romanov@nginx.com</change>
2641832Smax.romanov@nginx.com
2651832Smax.romanov@nginx.com<change type="bugfix">
2661832Smax.romanov@nginx.com<para>
2671833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
2681811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
2691811Smax.romanov@nginx.com</para>
2701811Smax.romanov@nginx.com</change>
2711806Svbart@nginx.com
2721813Svbart@nginx.com<change type="bugfix">
2731813Svbart@nginx.com<para>
2741813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
2751813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
2761813Svbart@nginx.com</para>
2771813Svbart@nginx.com</change>
2781813Svbart@nginx.com
2791814Svbart@nginx.com<change type="bugfix">
2801814Svbart@nginx.com<para>
2811820Svbart@nginx.comthe controller process could crash while requesting information about a
2821820Svbart@nginx.comcertificate with a non-DNS SAN entry.
2831820Svbart@nginx.com</para>
2841820Svbart@nginx.com</change>
2851820Svbart@nginx.com
2861820Svbart@nginx.com<change type="bugfix">
2871820Svbart@nginx.com<para>
2881822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
2891833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
2901822Svbart@nginx.com</para>
2911822Svbart@nginx.com</change>
2921822Svbart@nginx.com
2931822Svbart@nginx.com<change type="bugfix">
2941822Svbart@nginx.com<para>
2951833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
2961833Sartem.konev@nginx.comclass.
2971814Svbart@nginx.com</para>
2981814Svbart@nginx.com</change>
2991814Svbart@nginx.com
3001815Svbart@nginx.com<change type="bugfix">
3011815Svbart@nginx.com<para>
3021815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
3031815Svbart@nginx.comappeared in 1.22.0.
3041815Svbart@nginx.com</para>
3051815Svbart@nginx.com</change>
3061815Svbart@nginx.com
3071806Svbart@nginx.com</changes>
3081806Svbart@nginx.com
3091806Svbart@nginx.com
3101798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
3111798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
3121798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3131798Sdefan@nginx.com
3141798Sdefan@nginx.com<change>
3151798Sdefan@nginx.com<para>
3161798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
3171798Sdefan@nginx.com</para>
3181798Sdefan@nginx.com</change>
3191798Sdefan@nginx.com
3201798Sdefan@nginx.com</changes>
3211798Sdefan@nginx.com
3221798Sdefan@nginx.com
3231763Sdefan@nginx.com<changes apply="unit-php
3241763Sdefan@nginx.com                unit-python unit-python2.7
3251763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3261763Sdefan@nginx.com                unit-python3.8
3271763Sdefan@nginx.com                unit-go
3281763Sdefan@nginx.com                unit-perl
3291763Sdefan@nginx.com                unit-ruby
3301763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3311763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
3321763Sdefan@nginx.com         ver="1.22.0" rev="1"
3331793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
3341763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3351763Sdefan@nginx.com
3361763Sdefan@nginx.com<change>
3371763Sdefan@nginx.com<para>
3381763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
3391763Sdefan@nginx.com</para>
3401763Sdefan@nginx.com</change>
3411763Sdefan@nginx.com
3421763Sdefan@nginx.com</changes>
3431763Sdefan@nginx.com
3441763Sdefan@nginx.com
3451727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
3461793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
3471727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3481727Svbart@nginx.com
3491759Svbart@nginx.com<change type="feature">
3501759Svbart@nginx.com<para>
3511792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
3521792Svbart@nginx.comcompliant with Stream API.
3531759Svbart@nginx.com</para>
3541759Svbart@nginx.com</change>
3551759Svbart@nginx.com
3561766Smax.romanov@nginx.com<change type="feature">
3571766Smax.romanov@nginx.com<para>
3581792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
3591792Svbart@nginx.comapps.
3601732Svbart@nginx.com</para>
3611732Svbart@nginx.com</change>
3621732Svbart@nginx.com
3631733Svbart@nginx.com<change type="bugfix">
3641733Svbart@nginx.com<para>
3651792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
3661792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
3671754Smax.romanov@nginx.com</para>
3681754Smax.romanov@nginx.com</change>
3691754Smax.romanov@nginx.com
3701755Smax.romanov@nginx.com<change type="bugfix">
3711755Smax.romanov@nginx.com<para>
3721790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
3731755Smax.romanov@nginx.comappeared in 1.19.0.
3741755Smax.romanov@nginx.com</para>
3751755Smax.romanov@nginx.com</change>
3761755Smax.romanov@nginx.com
3771756Smax.romanov@nginx.com<change type="bugfix">
3781756Smax.romanov@nginx.com<para>
3791790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
3801790Sartem.konev@nginx.comappeared in 1.19.0.
3811756Smax.romanov@nginx.com</para>
3821756Smax.romanov@nginx.com</change>
3831756Smax.romanov@nginx.com
3841760Smax.romanov@nginx.com<change type="bugfix">
3851760Smax.romanov@nginx.com<para>
3861792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
3871792Svbart@nginx.com</para>
3881792Svbart@nginx.com</change>
3891792Svbart@nginx.com
3901792Svbart@nginx.com<change type="bugfix">
3911792Svbart@nginx.com<para>
3921792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
3931792Svbart@nginx.commissing in the PHP module.
3941792Svbart@nginx.com</para>
3951792Svbart@nginx.com</change>
3961792Svbart@nginx.com
3971792Svbart@nginx.com<change type="bugfix">
3981792Svbart@nginx.com<para>
3991792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
4001792Svbart@nginx.com</para>
4011792Svbart@nginx.com</change>
4021792Svbart@nginx.com
4031792Svbart@nginx.com<change type="bugfix">
4041792Svbart@nginx.com<para>
4051792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
4061792Svbart@nginx.com</para>
4071792Svbart@nginx.com</change>
4081792Svbart@nginx.com
4091792Svbart@nginx.com<change type="bugfix">
4101792Svbart@nginx.com<para>
4111792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
4121792Svbart@nginx.comthe bug had appeared in 1.21.0.
4131760Smax.romanov@nginx.com</para>
4141760Smax.romanov@nginx.com</change>
4151760Smax.romanov@nginx.com
4161780Smax.romanov@nginx.com<change type="bugfix">
4171780Smax.romanov@nginx.com<para>
4181790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
4191790Sartem.konev@nginx.comWebSocket.
4201780Smax.romanov@nginx.com</para>
4211780Smax.romanov@nginx.com</change>
4221780Smax.romanov@nginx.com
4231789Smax.romanov@nginx.com<change type="bugfix">
4241789Smax.romanov@nginx.com<para>
4251789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
4261789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
4271789Smax.romanov@nginx.com</para>
4281789Smax.romanov@nginx.com</change>
4291789Smax.romanov@nginx.com
4301727Svbart@nginx.com</changes>
4311727Svbart@nginx.com
4321727Svbart@nginx.com
4331722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
4341722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
4351722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4361722Svbart@nginx.com
4371722Svbart@nginx.com<change>
4381722Svbart@nginx.com<para>
4391722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
4401722Svbart@nginx.com</para>
4411722Svbart@nginx.com</change>
4421722Svbart@nginx.com
4431722Svbart@nginx.com</changes>
4441722Svbart@nginx.com
4451722Svbart@nginx.com
4461722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
4471722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
4481722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4491722Svbart@nginx.com
4501722Svbart@nginx.com<change>
4511722Svbart@nginx.com<para>
4521722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
4531722Svbart@nginx.com</para>
4541722Svbart@nginx.com</change>
4551722Svbart@nginx.com
4561722Svbart@nginx.com</changes>
4571722Svbart@nginx.com
4581722Svbart@nginx.com
4591722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
4601722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
4611722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4621722Svbart@nginx.com
4631722Svbart@nginx.com<change>
4641722Svbart@nginx.com<para>
4651722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
4661722Svbart@nginx.com</para>
4671722Svbart@nginx.com</change>
4681722Svbart@nginx.com
4691722Svbart@nginx.com</changes>
4701722Svbart@nginx.com
4711722Svbart@nginx.com
4721722Svbart@nginx.com<changes apply="unit-php
4731722Svbart@nginx.com                unit-python unit-python2.7
4741722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4751722Svbart@nginx.com                unit-python3.8
4761722Svbart@nginx.com                unit-go
4771722Svbart@nginx.com                unit-perl
4781722Svbart@nginx.com                unit-ruby
4791722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
4801722Svbart@nginx.com         ver="1.21.0" rev="1"
4811722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
4821722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4831722Svbart@nginx.com
4841722Svbart@nginx.com<change>
4851722Svbart@nginx.com<para>
4861722Svbart@nginx.comNGINX Unit updated to 1.21.0.
4871722Svbart@nginx.com</para>
4881722Svbart@nginx.com</change>
4891722Svbart@nginx.com
4901722Svbart@nginx.com</changes>
4911722Svbart@nginx.com
4921722Svbart@nginx.com
4931722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
4941722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
4951722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4961722Svbart@nginx.com
4971722Svbart@nginx.com<change type="change">
4981722Svbart@nginx.com<para>
4991722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
5001722Svbart@nginx.com</para>
5011722Svbart@nginx.com</change>
5021722Svbart@nginx.com
5031722Svbart@nginx.com<change type="change">
5041722Svbart@nginx.com<para>
5051722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
5061722Svbart@nginx.comnames.
5071722Svbart@nginx.com</para>
5081722Svbart@nginx.com</change>
5091722Svbart@nginx.com
5101722Svbart@nginx.com<change type="change">
5111722Svbart@nginx.com<para>
5121722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
5131722Svbart@nginx.comdefault.
5141722Svbart@nginx.com</para>
5151722Svbart@nginx.com</change>
5161722Svbart@nginx.com
5171722Svbart@nginx.com<change type="feature">
5181722Svbart@nginx.com<para>
5191722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
5201722Svbart@nginx.com</para>
5211722Svbart@nginx.com</change>
5221722Svbart@nginx.com
5231722Svbart@nginx.com<change type="feature">
5241722Svbart@nginx.com<para>
5251722Svbart@nginx.comregular expressions in route matching patterns.
5261722Svbart@nginx.com</para>
5271722Svbart@nginx.com</change>
5281722Svbart@nginx.com
5291722Svbart@nginx.com<change type="feature">
5301722Svbart@nginx.com<para>
5311722Svbart@nginx.comcompatibility with Python 3.9.
5321722Svbart@nginx.com</para>
5331722Svbart@nginx.com</change>
5341722Svbart@nginx.com
5351722Svbart@nginx.com<change type="feature">
5361722Svbart@nginx.com<para>
5371722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
5381722Svbart@nginx.com</para>
5391722Svbart@nginx.com</change>
5401722Svbart@nginx.com
5411722Svbart@nginx.com<change type="feature">
5421722Svbart@nginx.com<para>
5431722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
5441722Svbart@nginx.com</para>
5451722Svbart@nginx.com</change>
5461722Svbart@nginx.com
5471722Svbart@nginx.com<change type="feature">
5481722Svbart@nginx.com<para>
5491722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
5501722Svbart@nginx.comcontinues code execution without holding onto the client connection.
5511722Svbart@nginx.com</para>
5521722Svbart@nginx.com</change>
5531722Svbart@nginx.com
5541722Svbart@nginx.com<change type="feature">
5551722Svbart@nginx.com<para>
5561722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
5571722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
5581722Svbart@nginx.com</para>
5591722Svbart@nginx.com</change>
5601722Svbart@nginx.com
5611722Svbart@nginx.com<change type="feature">
5621722Svbart@nginx.com<para>
5631722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
5641722Svbart@nginx.commounting of eponymous filesystems.
5651722Svbart@nginx.com</para>
5661722Svbart@nginx.com</change>
5671722Svbart@nginx.com
5681722Svbart@nginx.com<change type="bugfix">
5691722Svbart@nginx.com<para>
5701722Svbart@nginx.comthe router process could crash when running Go applications under high load;
5711722Svbart@nginx.comthe bug had appeared in 1.19.0.
5721722Svbart@nginx.com</para>
5731722Svbart@nginx.com</change>
5741722Svbart@nginx.com
5751722Svbart@nginx.com<change type="bugfix">
5761722Svbart@nginx.com<para>
5771722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
5781722Svbart@nginx.com</para>
5791722Svbart@nginx.com</change>
5801722Svbart@nginx.com
5811722Svbart@nginx.com<change type="bugfix">
5821722Svbart@nginx.com<para>
5831722Svbart@nginx.comvarious compatibility issues in Java applications.
5841722Svbart@nginx.com</para>
5851722Svbart@nginx.com</change>
5861722Svbart@nginx.com
5871722Svbart@nginx.com<change type="bugfix">
5881722Svbart@nginx.com<para>
5891722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
5901722Svbart@nginx.comuse "rootfs" isolation.
5911722Svbart@nginx.com</para>
5921722Svbart@nginx.com</change>
5931722Svbart@nginx.com
5941722Svbart@nginx.com</changes>
5951722Svbart@nginx.com
5961722Svbart@nginx.com
5971330Svbart@nginx.com<changes apply="unit-php
5981330Svbart@nginx.com                unit-python unit-python2.7
5991330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6001330Svbart@nginx.com                unit-python3.8
6011330Svbart@nginx.com                unit-go
6021330Svbart@nginx.com                unit-perl
6031330Svbart@nginx.com                unit-ruby
6041330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
6051640Svbart@nginx.com         ver="1.20.0" rev="1"
6061640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
6071640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6081640Svbart@nginx.com
6091640Svbart@nginx.com<change>
6101640Svbart@nginx.com<para>
6111640Svbart@nginx.comNGINX Unit updated to 1.20.0.
6121640Svbart@nginx.com</para>
6131640Svbart@nginx.com</change>
6141640Svbart@nginx.com
6151640Svbart@nginx.com</changes>
6161640Svbart@nginx.com
6171640Svbart@nginx.com
6181640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
6191640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
6201640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6211640Svbart@nginx.com
6221640Svbart@nginx.com<change type="change">
6231640Svbart@nginx.com<para>
6241640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
6251640Svbart@nginx.comextensions from the host system.
6261640Svbart@nginx.com</para>
6271640Svbart@nginx.com</change>
6281640Svbart@nginx.com
6291640Svbart@nginx.com<change type="change">
6301640Svbart@nginx.com<para>
6311640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
6321640Svbart@nginx.com</para>
6331640Svbart@nginx.com</change>
6341640Svbart@nginx.com
6351643Svbart@nginx.com<change type="change">
6361643Svbart@nginx.com<para>
6371643Svbart@nginx.comfunctional tests migrated to the pytest framework.
6381643Svbart@nginx.com</para>
6391643Svbart@nginx.com</change>
6401643Svbart@nginx.com
6411640Svbart@nginx.com<change type="feature">
6421640Svbart@nginx.com<para>
6431640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
6441640Svbart@nginx.cominterface.
6451640Svbart@nginx.com</para>
6461640Svbart@nginx.com</change>
6471640Svbart@nginx.com
6481640Svbart@nginx.com<change type="feature">
6491640Svbart@nginx.com<para>
6501640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
6511640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
6521640Svbart@nginx.comspecification.
6531640Svbart@nginx.com</para>
6541640Svbart@nginx.com</change>
6551640Svbart@nginx.com
6561640Svbart@nginx.com<change type="feature">
6571640Svbart@nginx.com<para>
6581640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
6591640Svbart@nginx.comenvironments.
6601640Svbart@nginx.com</para>
6611640Svbart@nginx.com</change>
6621640Svbart@nginx.com
6631640Svbart@nginx.com<change type="feature">
6641640Svbart@nginx.com<para>
6651640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
6661640Svbart@nginx.com</para>
6671640Svbart@nginx.com</change>
6681640Svbart@nginx.com
6691640Svbart@nginx.com<change type="feature">
6701640Svbart@nginx.com<para>
6711640Svbart@nginx.comthe "callable" option sets Python application callable names.
6721640Svbart@nginx.com</para>
6731640Svbart@nginx.com</change>
6741640Svbart@nginx.com
6751640Svbart@nginx.com<change type="feature">
6761640Svbart@nginx.com<para>
6771640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
6781640Svbart@nginx.com</para>
6791640Svbart@nginx.com</change>
6801640Svbart@nginx.com
6811640Svbart@nginx.com<change type="feature">
6821640Svbart@nginx.com<para>
6831640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
6841640Svbart@nginx.comautomatic mounting of language module dependencies.
6851640Svbart@nginx.com</para>
6861640Svbart@nginx.com</change>
6871640Svbart@nginx.com
6881640Svbart@nginx.com<change type="bugfix">
6891640Svbart@nginx.com<para>
6901640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
6911640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
6921640Svbart@nginx.com</para>
6931640Svbart@nginx.com</change>
6941640Svbart@nginx.com
6951640Svbart@nginx.com<change type="bugfix">
6961640Svbart@nginx.com<para>
6971640Svbart@nginx.comthe router process could crash during reconfiguration.
6981640Svbart@nginx.com</para>
6991640Svbart@nginx.com</change>
7001640Svbart@nginx.com
7011640Svbart@nginx.com<change type="bugfix">
7021640Svbart@nginx.com<para>
7031640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
7041640Svbart@nginx.com</para>
7051640Svbart@nginx.com</change>
7061640Svbart@nginx.com
7071640Svbart@nginx.com<change type="bugfix">
7081640Svbart@nginx.com<para>
7091640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
7101640Svbart@nginx.comthe bug had appeared in 1.19.0.
7111640Svbart@nginx.com</para>
7121640Svbart@nginx.com</change>
7131640Svbart@nginx.com
7141640Svbart@nginx.com<change type="bugfix">
7151640Svbart@nginx.com<para>
7161640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
7171640Svbart@nginx.comthe bug had appeared in 1.16.0.
7181640Svbart@nginx.com</para>
7191640Svbart@nginx.com</change>
7201640Svbart@nginx.com
7211640Svbart@nginx.com</changes>
7221640Svbart@nginx.com
7231640Svbart@nginx.com
7241640Svbart@nginx.com<changes apply="unit-php
7251640Svbart@nginx.com                unit-python unit-python2.7
7261640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7271640Svbart@nginx.com                unit-python3.8
7281640Svbart@nginx.com                unit-go
7291640Svbart@nginx.com                unit-perl
7301640Svbart@nginx.com                unit-ruby
7311640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
7321570Svbart@nginx.com         ver="1.19.0" rev="1"
7331570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
7341570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7351570Svbart@nginx.com
7361570Svbart@nginx.com<change>
7371570Svbart@nginx.com<para>
7381570Svbart@nginx.comNGINX Unit updated to 1.19.0.
7391570Svbart@nginx.com</para>
7401570Svbart@nginx.com</change>
7411570Svbart@nginx.com
7421570Svbart@nginx.com</changes>
7431570Svbart@nginx.com
7441570Svbart@nginx.com
7451570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1"
7461570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
7471570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7481570Svbart@nginx.com
7491570Svbart@nginx.com<change type="feature">
7501570Svbart@nginx.com<para>
7511570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
7521570Svbart@nginx.comincrease performance, and improve scalability.
7531570Svbart@nginx.com</para>
7541570Svbart@nginx.com</change>
7551570Svbart@nginx.com
7561570Svbart@nginx.com<change type="feature">
7571570Svbart@nginx.com<para>
7581570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns.
7591570Svbart@nginx.com</para>
7601570Svbart@nginx.com</change>
7611570Svbart@nginx.com
7621570Svbart@nginx.com<change type="feature">
7631570Svbart@nginx.com<para>
7641570Svbart@nginx.comchunked transfer encoding in proxy responses.
7651570Svbart@nginx.com</para>
7661570Svbart@nginx.com</change>
7671570Svbart@nginx.com
7681570Svbart@nginx.com<change type="feature">
7691570Svbart@nginx.com<para>
7701570Svbart@nginx.combasic variables support in the "pass" option.
7711570Svbart@nginx.com</para>
7721570Svbart@nginx.com</change>
7731570Svbart@nginx.com
7741570Svbart@nginx.com<change type="feature">
7751570Svbart@nginx.com<para>
7761570Svbart@nginx.comcompatibility with PHP 8 Beta 1.
7771570Svbart@nginx.comThanks to Remi Collet.
7781570Svbart@nginx.com</para>
7791570Svbart@nginx.com</change>
7801570Svbart@nginx.com
7811570Svbart@nginx.com<change type="bugfix">
7821570Svbart@nginx.com<para>
7831570Svbart@nginx.comthe router process could crash while passing requests to an application under
7841570Svbart@nginx.comhigh load.
7851570Svbart@nginx.com</para>
7861570Svbart@nginx.com</change>
7871570Svbart@nginx.com
7881570Svbart@nginx.com<change type="bugfix">
7891570Svbart@nginx.com<para>
7901570Svbart@nginx.coma number of language modules failed to build on some systems;
7911570Svbart@nginx.comthe bug had appeared in 1.18.0.
7921570Svbart@nginx.com</para>
7931570Svbart@nginx.com</change>
7941570Svbart@nginx.com
7951570Svbart@nginx.com<change type="bugfix">
7961570Svbart@nginx.com<para>
7971570Svbart@nginx.comtime in error log messages from PHP applications could lag.
7981570Svbart@nginx.com</para>
7991570Svbart@nginx.com</change>
8001570Svbart@nginx.com
8011570Svbart@nginx.com<change type="bugfix">
8021570Svbart@nginx.com<para>
8031570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start;
8041570Svbart@nginx.comthe bug had appeared in 1.18.0.
8051570Svbart@nginx.com</para>
8061570Svbart@nginx.com</change>
8071570Svbart@nginx.com
8081570Svbart@nginx.com<change type="bugfix">
8091570Svbart@nginx.com<para>
8101570Svbart@nginx.commemory leak during reconfiguration.
8111570Svbart@nginx.com</para>
8121570Svbart@nginx.com</change>
8131570Svbart@nginx.com
8141570Svbart@nginx.com<change type="bugfix">
8151570Svbart@nginx.com<para>
8161570Svbart@nginx.comthe daemon didn't start without language modules;
8171570Svbart@nginx.comthe bug had appeared in 1.18.0.
8181570Svbart@nginx.com</para>
8191570Svbart@nginx.com</change>
8201570Svbart@nginx.com
8211570Svbart@nginx.com<change type="bugfix">
8221570Svbart@nginx.com<para>
8231570Svbart@nginx.comthe router process could crash at exit.
8241570Svbart@nginx.com</para>
8251570Svbart@nginx.com</change>
8261570Svbart@nginx.com
8271570Svbart@nginx.com<change type="bugfix">
8281570Svbart@nginx.com<para>
8291570Svbart@nginx.comNode.js applications could crash at exit.
8301570Svbart@nginx.com</para>
8311570Svbart@nginx.com</change>
8321570Svbart@nginx.com
8331570Svbart@nginx.com<change type="bugfix">
8341570Svbart@nginx.com<para>
8351570Svbart@nginx.comthe Ruby module could be linked against a wrong library version.
8361570Svbart@nginx.com</para>
8371570Svbart@nginx.com</change>
8381570Svbart@nginx.com
8391570Svbart@nginx.com</changes>
8401570Svbart@nginx.com
8411570Svbart@nginx.com
8421570Svbart@nginx.com<changes apply="unit-php
8431570Svbart@nginx.com                unit-python unit-python2.7
8441570Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8451570Svbart@nginx.com                unit-python3.8
8461570Svbart@nginx.com                unit-go
8471570Svbart@nginx.com                unit-perl
8481570Svbart@nginx.com                unit-ruby
8491570Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8501491Svbart@nginx.com         ver="1.18.0" rev="1"
8511491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
8521491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8531491Svbart@nginx.com
8541491Svbart@nginx.com<change>
8551491Svbart@nginx.com<para>
8561491Svbart@nginx.comNGINX Unit updated to 1.18.0.
8571491Svbart@nginx.com</para>
8581491Svbart@nginx.com</change>
8591491Svbart@nginx.com
8601491Svbart@nginx.com</changes>
8611491Svbart@nginx.com
8621491Svbart@nginx.com
8631491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1"
8641491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
8651491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8661491Svbart@nginx.com
8671491Svbart@nginx.com<change type="feature">
8681491Svbart@nginx.com<para>
8691491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application.
8701491Svbart@nginx.com</para>
8711491Svbart@nginx.com</change>
8721491Svbart@nginx.com
8731491Svbart@nginx.com<change type="feature">
8741491Svbart@nginx.com<para>
8751491Svbart@nginx.commultiple "targets" in PHP applications.
8761491Svbart@nginx.com</para>
8771491Svbart@nginx.com</change>
8781491Svbart@nginx.com
8791491Svbart@nginx.com<change type="feature">
8801491Svbart@nginx.com<para>
8811491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options
8821491Svbart@nginx.comand in the "pass" option.
8831491Svbart@nginx.com</para>
8841491Svbart@nginx.com</change>
8851491Svbart@nginx.com
8861491Svbart@nginx.com</changes>
8871491Svbart@nginx.com
8881491Svbart@nginx.com
8891491Svbart@nginx.com<changes apply="unit-php
8901491Svbart@nginx.com                unit-python unit-python2.7
8911491Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8921491Svbart@nginx.com                unit-python3.8
8931491Svbart@nginx.com                unit-go
8941491Svbart@nginx.com                unit-perl
8951491Svbart@nginx.com                unit-ruby
8961491Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8971460Svbart@nginx.com         ver="1.17.0" rev="1"
8981460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
8991460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9001460Svbart@nginx.com
9011460Svbart@nginx.com<change>
9021460Svbart@nginx.com<para>
9031460Svbart@nginx.comNGINX Unit updated to 1.17.0.
9041460Svbart@nginx.com</para>
9051460Svbart@nginx.com</change>
9061460Svbart@nginx.com
9071460Svbart@nginx.com</changes>
9081460Svbart@nginx.com
9091460Svbart@nginx.com
9101460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1"
9111460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
9121460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9131460Svbart@nginx.com
9141460Svbart@nginx.com<change type="feature">
9151460Svbart@nginx.com<para>
9161460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external
9171460Svbart@nginx.comredirection.
9181460Svbart@nginx.com</para>
9191460Svbart@nginx.com</change>
9201460Svbart@nginx.com
9211460Svbart@nginx.com<change type="feature">
9221460Svbart@nginx.com<para>
9231460Svbart@nginx.comfractional weights support for upstream servers.
9241460Svbart@nginx.com</para>
9251460Svbart@nginx.com</change>
9261460Svbart@nginx.com
9271460Svbart@nginx.com<change type="bugfix">
9281460Svbart@nginx.com<para>
9291460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under
9301460Svbart@nginx.comhigh load.
9311460Svbart@nginx.com</para>
9321460Svbart@nginx.com</change>
9331460Svbart@nginx.com
9341460Svbart@nginx.com<change type="bugfix">
9351460Svbart@nginx.com<para>
9361460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0.
9371460Svbart@nginx.com</para>
9381460Svbart@nginx.com</change>
9391460Svbart@nginx.com
9401460Svbart@nginx.com<change type="bugfix">
9411460Svbart@nginx.com<para>
9421460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching
9431460Svbart@nginx.comopen connections limit.
9441460Svbart@nginx.com</para>
9451460Svbart@nginx.com</change>
9461460Svbart@nginx.com
9471460Svbart@nginx.com<change type="bugfix">
9481460Svbart@nginx.com<para>
9491460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log
9501460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0.
9511460Svbart@nginx.com</para>
9521460Svbart@nginx.com</change>
9531460Svbart@nginx.com
9541460Svbart@nginx.com<change type="bugfix">
9551460Svbart@nginx.com<para>
9561460Svbart@nginx.comexisting application processes didn't reopen the log file.
9571460Svbart@nginx.com</para>
9581460Svbart@nginx.com</change>
9591460Svbart@nginx.com
9601460Svbart@nginx.com<change type="bugfix">
9611460Svbart@nginx.com<para>
9621460Svbart@nginx.comincompatibility with some Node.js applications.
9631460Svbart@nginx.com</para>
9641460Svbart@nginx.com</change>
9651460Svbart@nginx.com
9661460Svbart@nginx.com<change type="bugfix">
9671460Svbart@nginx.com<para>
9681460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0.
9691460Svbart@nginx.com</para>
9701460Svbart@nginx.com</change>
9711460Svbart@nginx.com
9721460Svbart@nginx.com</changes>
9731460Svbart@nginx.com
9741460Svbart@nginx.com
9751460Svbart@nginx.com<changes apply="unit-php
9761460Svbart@nginx.com                unit-python unit-python2.7
9771460Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9781460Svbart@nginx.com                unit-python3.8
9791460Svbart@nginx.com                unit-go
9801460Svbart@nginx.com                unit-perl
9811460Svbart@nginx.com                unit-ruby
9821460Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9831404Svbart@nginx.com         ver="1.16.0" rev="1"
9841404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
9851404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9861404Svbart@nginx.com
9871404Svbart@nginx.com<change>
9881404Svbart@nginx.com<para>
9891404Svbart@nginx.comNGINX Unit updated to 1.16.0.
9901404Svbart@nginx.com</para>
9911404Svbart@nginx.com</change>
9921404Svbart@nginx.com
9931404Svbart@nginx.com</changes>
9941404Svbart@nginx.com
9951404Svbart@nginx.com
9961404Svbart@nginx.com<changes apply="unit" ver="1.16.0" rev="1"
9971404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
9981404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9991404Svbart@nginx.com
10001404Svbart@nginx.com<change type="feature">
10011404Svbart@nginx.com<para>
10021404Svbart@nginx.combasic load-balancing support with round-robin.
10031404Svbart@nginx.com</para>
10041404Svbart@nginx.com</change>
10051404Svbart@nginx.com
10061404Svbart@nginx.com<change type="feature">
10071404Svbart@nginx.com<para>
10081404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be
10091404Svbart@nginx.comserved from the "share" directory.
10101404Svbart@nginx.com</para>
10111404Svbart@nginx.com</change>
10121404Svbart@nginx.com
10131404Svbart@nginx.com<change type="feature">
10141404Svbart@nginx.com<para>
10151404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk.
10161404Svbart@nginx.com</para>
10171404Svbart@nginx.com</change>
10181404Svbart@nginx.com
10191404Svbart@nginx.com<change type="feature">
10201404Svbart@nginx.com<para>
10211404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON.
10221404Svbart@nginx.com</para>
10231404Svbart@nginx.com</change>
10241404Svbart@nginx.com
10251404Svbart@nginx.com<change type="bugfix">
10261404Svbart@nginx.com<para>
10271404Svbart@nginx.comnegative address matching in router might work improperly in combination with
10281404Svbart@nginx.comnon-negative patterns.
10291404Svbart@nginx.com</para>
10301404Svbart@nginx.com</change>
10311404Svbart@nginx.com
10321404Svbart@nginx.com<change type="bugfix">
10331404Svbart@nginx.com<para>
10341404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0.
10351404Svbart@nginx.com</para>
10361404Svbart@nginx.com</change>
10371404Svbart@nginx.com
10381404Svbart@nginx.com<change type="bugfix">
10391404Svbart@nginx.com<para>
10401404Svbart@nginx.comPHP 7.4 was broken if it was built with thread safety enabled.
10411404Svbart@nginx.com</para>
10421404Svbart@nginx.com</change>
10431404Svbart@nginx.com
10441404Svbart@nginx.com<change type="bugfix">
10451404Svbart@nginx.com<para>
10461404Svbart@nginx.comcompatibility issues with some Python applications.
10471404Svbart@nginx.com</para>
10481404Svbart@nginx.com</change>
10491404Svbart@nginx.com
10501404Svbart@nginx.com</changes>
10511404Svbart@nginx.com
10521404Svbart@nginx.com
10531404Svbart@nginx.com<changes apply="unit-php
10541404Svbart@nginx.com                unit-python unit-python2.7
10551404Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10561404Svbart@nginx.com                unit-python3.8
10571404Svbart@nginx.com                unit-go
10581404Svbart@nginx.com                unit-perl
10591404Svbart@nginx.com                unit-ruby
10601404Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10611357Svbart@nginx.com         ver="1.15.0" rev="1"
10621357Svbart@nginx.com         date="2020-02-06" time="18:00:00 +0300"
10631357Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10641357Svbart@nginx.com
10651357Svbart@nginx.com<change>
10661357Svbart@nginx.com<para>
10671357Svbart@nginx.comNGINX Unit updated to 1.15.0.
10681357Svbart@nginx.com</para>
10691357Svbart@nginx.com</change>
10701357Svbart@nginx.com
10711357Svbart@nginx.com</changes>
10721357Svbart@nginx.com
10731357Svbart@nginx.com
10741357Svbart@nginx.com<changes apply="unit" ver="1.15.0" rev="1"
10751357Svbart@nginx.com         date="2020-02-06" time="18:00:00 +0300"
10761357Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10771357Svbart@nginx.com
10781357Svbart@nginx.com<change type="change">
10791357Svbart@nginx.com<para>
10801357Svbart@nginx.comextensions of dynamically requested PHP scripts were restricted to ".php".
10811357Svbart@nginx.com</para>
10821357Svbart@nginx.com</change>
10831357Svbart@nginx.com
10841357Svbart@nginx.com<change type="feature">
10851357Svbart@nginx.com<para>
10861357Svbart@nginx.comcompatibility with Ruby 2.7.
10871357Svbart@nginx.com</para>
10881357Svbart@nginx.com</change>
10891357Svbart@nginx.com
10901357Svbart@nginx.com<change type="bugfix">
10911357Svbart@nginx.com<para>
10921357Svbart@nginx.comsegmentation fault might have occurred in the router process with multiple
10931357Svbart@nginx.comapplication processes under load; the bug had appeared in 1.14.0.
10941357Svbart@nginx.com</para>
10951357Svbart@nginx.com</change>
10961357Svbart@nginx.com
10971357Svbart@nginx.com<change type="bugfix">
10981357Svbart@nginx.com<para>
10991357Svbart@nginx.comreceiving request body over TLS connection might have stalled.
11001357Svbart@nginx.com</para>
11011357Svbart@nginx.com</change>
11021357Svbart@nginx.com
11031357Svbart@nginx.com</changes>
11041357Svbart@nginx.com
11051357Svbart@nginx.com
11061357Svbart@nginx.com<changes apply="unit-php
11071357Svbart@nginx.com                unit-python unit-python2.7
11081357Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11091357Svbart@nginx.com                unit-python3.8
11101357Svbart@nginx.com                unit-go
11111357Svbart@nginx.com                unit-perl
11121357Svbart@nginx.com                unit-ruby
11131357Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11141330Svbart@nginx.com         ver="1.14.0" rev="1"
11151330Svbart@nginx.com         date="2019-12-26" time="18:00:00 +0300"
11161330Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11171330Svbart@nginx.com
11181330Svbart@nginx.com<change>
11191330Svbart@nginx.com<para>
11201330Svbart@nginx.comNGINX Unit updated to 1.14.0.
11211330Svbart@nginx.com</para>
11221330Svbart@nginx.com</change>
11231330Svbart@nginx.com
11241330Svbart@nginx.com</changes>
11251330Svbart@nginx.com
11261330Svbart@nginx.com
11271330Svbart@nginx.com<changes apply="unit" ver="1.14.0" rev="1"
11281330Svbart@nginx.com         date="2019-12-26" time="18:00:00 +0300"
11291330Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11301330Svbart@nginx.com
11311330Svbart@nginx.com<change type="change">
11321330Svbart@nginx.com<para>
11331330Svbart@nginx.comthe Go package import name changed to "unit.nginx.org/go".
11341330Svbart@nginx.com</para>
11351330Svbart@nginx.com</change>
11361330Svbart@nginx.com
11371330Svbart@nginx.com<change type="change">
11381330Svbart@nginx.com<para>
11391330Svbart@nginx.comGo package now links to libunit instead of including library sources.
11401330Svbart@nginx.com</para>
11411330Svbart@nginx.com</change>
11421330Svbart@nginx.com
11431330Svbart@nginx.com<change type="feature">
11441330Svbart@nginx.com<para>
11451330Svbart@nginx.comability to change user and group for isolated applications when Unit daemon
11461330Svbart@nginx.comruns as an unprivileged user.
11471330Svbart@nginx.com</para>
11481330Svbart@nginx.com</change>
11491330Svbart@nginx.com
11501330Svbart@nginx.com<change type="feature">
11511330Svbart@nginx.com<para>
11521330Svbart@nginx.comrequest routing by source and destination addresses and ports.
11531330Svbart@nginx.com</para>
11541330Svbart@nginx.com</change>
11551330Svbart@nginx.com
11561330Svbart@nginx.com<change type="bugfix">
11571330Svbart@nginx.com<para>
11581330Svbart@nginx.commemory bloat on large responses.
11591330Svbart@nginx.com</para>
11601330Svbart@nginx.com</change>
11611330Svbart@nginx.com
11621330Svbart@nginx.com</changes>
11631330Svbart@nginx.com
11641330Svbart@nginx.com
11651290Sdefan@nginx.com<changes apply="unit-go1.13" ver="1.13.0" rev="1"
11661290Sdefan@nginx.com         date="2019-11-20" time="09:00:00 +0300"
11671290Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11681290Sdefan@nginx.com
11691290Sdefan@nginx.com<change>
11701290Sdefan@nginx.com<para>
11711290Sdefan@nginx.comInitial release of Go 1.13 module for NGINX Unit.
11721290Sdefan@nginx.com</para>
11731290Sdefan@nginx.com</change>
11741290Sdefan@nginx.com
11751290Sdefan@nginx.com</changes>
11761290Sdefan@nginx.com
11771290Sdefan@nginx.com
11781290Sdefan@nginx.com<changes apply="unit-go1.12" ver="1.13.0" rev="1"
11791290Sdefan@nginx.com         date="2019-11-20" time="09:00:00 +0300"
11801290Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11811290Sdefan@nginx.com
11821290Sdefan@nginx.com<change>
11831290Sdefan@nginx.com<para>
11841290Sdefan@nginx.comInitial release of Go 1.12 module for NGINX Unit.
11851290Sdefan@nginx.com</para>
11861290Sdefan@nginx.com</change>
11871290Sdefan@nginx.com
11881290Sdefan@nginx.com</changes>
11891290Sdefan@nginx.com
11901290Sdefan@nginx.com
11911289Sdefan@nginx.com<changes apply="unit-python3.8" ver="1.13.0" rev="1"
11921289Sdefan@nginx.com         date="2019-11-18" time="14:20:00 +0300"
11931289Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11941289Sdefan@nginx.com
11951289Sdefan@nginx.com<change>
11961289Sdefan@nginx.com<para>
11971289Sdefan@nginx.comInitial release of Python 3.8 module for NGINX Unit.
11981289Sdefan@nginx.com</para>
11991289Sdefan@nginx.com</change>
12001289Sdefan@nginx.com
12011289Sdefan@nginx.com</changes>
12021289Sdefan@nginx.com
12031289Sdefan@nginx.com
12041185Svbart@nginx.com<changes apply="unit-php
12051185Svbart@nginx.com                unit-python unit-python2.7
12061185Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
12071185Svbart@nginx.com                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
12081185Svbart@nginx.com                unit-perl
12091185Svbart@nginx.com                unit-ruby
12101185Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
12111284Svbart@nginx.com         ver="1.13.0" rev="1"
12121284Svbart@nginx.com         date="2019-11-14" time="18:00:00 +0300"
12131284Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
12141284Svbart@nginx.com
12151284Svbart@nginx.com<change>
12161284Svbart@nginx.com<para>
12171284Svbart@nginx.comNGINX Unit updated to 1.13.0.
12181284Svbart@nginx.com</para>
12191284Svbart@nginx.com</change>
12201284Svbart@nginx.com
12211284Svbart@nginx.com</changes>
12221284Svbart@nginx.com
12231284Svbart@nginx.com
12241284Svbart@nginx.com<changes apply="unit" ver="1.13.0" rev="1"
12251284Svbart@nginx.com         date="2019-11-14" time="18:00:00 +0300"
12261284Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
12271284Svbart@nginx.com
12281284Svbart@nginx.com<change type="feature">
12291284Svbart@nginx.com<para>
12301284Svbart@nginx.combasic support for HTTP reverse proxying.
12311284Svbart@nginx.com</para>
12321284Svbart@nginx.com</change>
12331284Svbart@nginx.com
12341284Svbart@nginx.com<change type="feature">
12351284Svbart@nginx.com<para>
12361284Svbart@nginx.comcompatibility with Python 3.8.
12371284Svbart@nginx.com</para>
12381284Svbart@nginx.com</change>
12391284Svbart@nginx.com
12401284Svbart@nginx.com<change type="bugfix">
1241