xref: /unit/docs/changes.xml (revision 1930)
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
461926Smax.romanov@nginx.com<change type="feature">
471926Smax.romanov@nginx.com<para>
481926Smax.romanov@nginx.comapplication restart control.
491926Smax.romanov@nginx.com</para>
501926Smax.romanov@nginx.com</change>
511926Smax.romanov@nginx.com
521907Smax.romanov@nginx.com<change type="bugfix">
531907Smax.romanov@nginx.com<para>
541921Sa.suvorov@f5.comTLS connection was rejected for configuration with more than one
551921Sa.suvorov@f5.comcertificate bundle in a listener if a client did not use SNI.
561921Sa.suvorov@f5.com</para>
571921Sa.suvorov@f5.com</change>
581921Sa.suvorov@f5.com
591921Sa.suvorov@f5.com
601921Sa.suvorov@f5.com<change type="bugfix">
611921Sa.suvorov@f5.com<para>
621907Smax.romanov@nginx.comthe router process could crash on TLS connection open when multiple listeners
631907Smax.romanov@nginx.comwith TLS certificate configured; the bug had appeared in 1.23.0.
641907Smax.romanov@nginx.com</para>
651907Smax.romanov@nginx.com</change>
661907Smax.romanov@nginx.com
671907Smax.romanov@nginx.com<change type="bugfix">
681907Smax.romanov@nginx.com<para>
691915Smax.romanov@nginx.comthe router process could crash on rapid mutithreaded application
701915Smax.romanov@nginx.comreconfiguration.
711915Smax.romanov@nginx.com</para>
721915Smax.romanov@nginx.com</change>
731915Smax.romanov@nginx.com
741915Smax.romanov@nginx.com<change type="bugfix">
751915Smax.romanov@nginx.com<para>
761907Smax.romanov@nginx.coma descriptor and memory leak occurred in the router process when an app
771907Smax.romanov@nginx.comprocess stopped or crashed.
781907Smax.romanov@nginx.com</para>
791907Smax.romanov@nginx.com</change>
801907Smax.romanov@nginx.com
811909So.canty@f5.com<change type="bugfix">
821909So.canty@f5.com<para>
831909So.canty@f5.comthe controller or router process could crash if the configuration contained
841909So.canty@f5.coma full-form IPv6 in a listener address.
851909So.canty@f5.com</para>
861909So.canty@f5.com</change>
871909So.canty@f5.com
881916Smax.romanov@nginx.com<change type="bugfix">
891916Smax.romanov@nginx.com<para>
901916Smax.romanov@nginx.comcompatibility issues with some Python ASGI apps, notably based on Starlette
911916Smax.romanov@nginx.comframework.
921916Smax.romanov@nginx.com</para>
931916Smax.romanov@nginx.com</change>
941916Smax.romanov@nginx.com
951929Sz.hong@f5.com<change type="bugfix">
961929Sz.hong@f5.com<para>
971929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
981929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
991929Sz.hong@f5.com</para>
1001929Sz.hong@f5.com</change>
1011929Sz.hong@f5.com
102*1930So.canty@f5.com<change type="bugfix">
103*1930So.canty@f5.com<para>
104*1930So.canty@f5.comthe router process crashed while matching a request to an empty array of
105*1930So.canty@f5.comsource or destination address patterns.
106*1930So.canty@f5.com</para>
107*1930So.canty@f5.com</change>
108*1930So.canty@f5.com
1091896Svbart@nginx.com</changes>
1101896Svbart@nginx.com
1111896Svbart@nginx.com
1121887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
1131891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
1141887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1151887Sdefan@nginx.com
1161887Sdefan@nginx.com<change>
1171887Sdefan@nginx.com<para>
1181887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
1191887Sdefan@nginx.com</para>
1201887Sdefan@nginx.com</change>
1211887Sdefan@nginx.com
1221887Sdefan@nginx.com</changes>
1231887Sdefan@nginx.com
1241887Sdefan@nginx.com
1251887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
1261891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
1271887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1281887Sdefan@nginx.com
1291887Sdefan@nginx.com<change>
1301887Sdefan@nginx.com<para>
1311887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
1321887Sdefan@nginx.com</para>
1331887Sdefan@nginx.com</change>
1341887Sdefan@nginx.com
1351887Sdefan@nginx.com</changes>
1361887Sdefan@nginx.com
1371887Sdefan@nginx.com
1381834Svbart@nginx.com<changes apply="unit-php
1391834Svbart@nginx.com                unit-python unit-python2.7
1401834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1411834Svbart@nginx.com                unit-python3.8 unit-python3.9
1421834Svbart@nginx.com                unit-go
1431834Svbart@nginx.com                unit-perl
1441834Svbart@nginx.com                unit-ruby
1451834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1461834Svbart@nginx.com                unit-jsc14 unit-jsc15"
1471839Svbart@nginx.com         ver="1.24.0" rev="1"
1481891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
1491839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1501839Svbart@nginx.com
1511839Svbart@nginx.com<change>
1521839Svbart@nginx.com<para>
1531839Svbart@nginx.comNGINX Unit updated to 1.24.0.
1541839Svbart@nginx.com</para>
1551839Svbart@nginx.com</change>
1561839Svbart@nginx.com
1571839Svbart@nginx.com</changes>
1581839Svbart@nginx.com
1591839Svbart@nginx.com
1601839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
1611891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
1621839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1631839Svbart@nginx.com
1641882So.canty@f5.com<change type="change">
1651882So.canty@f5.com<para>
1661882So.canty@f5.comPHP added to the default MIME type list.
1671882So.canty@f5.com</para>
1681882So.canty@f5.com</change>
1691882So.canty@f5.com
1701855Sz.hong@f5.com<change type="feature">
1711855Sz.hong@f5.com<para>
1721885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
1731885Sa.suvorov@f5.com</para>
1741885Sa.suvorov@f5.com</change>
1751885Sa.suvorov@f5.com
1761885Sa.suvorov@f5.com<change type="feature">
1771885Sa.suvorov@f5.com<para>
1781890Svbart@nginx.comthe ability to limit static file serving by MIME types.
1791890Svbart@nginx.com</para>
1801890Svbart@nginx.com</change>
1811890Svbart@nginx.com
1821890Svbart@nginx.com<change type="feature">
1831890Svbart@nginx.com<para>
1841890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
1851890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
1861872So.canty@f5.com</para>
1871872So.canty@f5.com</change>
1881872So.canty@f5.com
1891872So.canty@f5.com<change type="feature">
1901872So.canty@f5.com<para>
1911889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
1921889Sartem.konev@nginx.comNode.js.
1931865So.canty@f5.com</para>
1941865So.canty@f5.com</change>
1951865So.canty@f5.com
1961865So.canty@f5.com<change type="feature">
1971865So.canty@f5.com<para>
1981890Svbart@nginx.commultiple "targets" in Python applications.
1991855Sz.hong@f5.com</para>
2001855Sz.hong@f5.com</change>
2011855Sz.hong@f5.com
2021870So.canty@f5.com<change type="feature">
2031870So.canty@f5.com<para>
2041870So.canty@f5.comcompatibility with Ruby 3.0.
2051870So.canty@f5.com</para>
2061870So.canty@f5.com</change>
2071870So.canty@f5.com
2081861Svbart@nginx.com<change type="bugfix">
2091861Svbart@nginx.com<para>
2101889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
2111884Sa.suvorov@f5.com</para>
2121884Sa.suvorov@f5.com</change>
2131884Sa.suvorov@f5.com
2141884Sa.suvorov@f5.com<change type="bugfix">
2151884Sa.suvorov@f5.com<para>
2161861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
2171861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
2181861Svbart@nginx.com</para>
2191861Svbart@nginx.com</change>
2201861Svbart@nginx.com
2211839Svbart@nginx.com</changes>
2221839Svbart@nginx.com
2231839Svbart@nginx.com
2241839Svbart@nginx.com<changes apply="unit-php
2251839Svbart@nginx.com                unit-python unit-python2.7
2261839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2271839Svbart@nginx.com                unit-python3.8 unit-python3.9
2281839Svbart@nginx.com                unit-go
2291839Svbart@nginx.com                unit-perl
2301839Svbart@nginx.com                unit-ruby
2311839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2321839Svbart@nginx.com                unit-jsc14 unit-jsc15"
2331834Svbart@nginx.com         ver="1.23.0" rev="1"
2341834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
2351834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2361834Svbart@nginx.com
2371834Svbart@nginx.com<change>
2381834Svbart@nginx.com<para>
2391834Svbart@nginx.comNGINX Unit updated to 1.23.0.
2401834Svbart@nginx.com</para>
2411834Svbart@nginx.com</change>
2421834Svbart@nginx.com
2431834Svbart@nginx.com</changes>
2441834Svbart@nginx.com
2451834Svbart@nginx.com
2461806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
2471834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
2481806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2491806Svbart@nginx.com
2501825Sthresh@nginx.com<change type="feature">
2511825Sthresh@nginx.com<para>
2521833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
2531828Sa.suvorov@f5.comIndication (SNI) TLS extension.
2541828Sa.suvorov@f5.com</para>
2551828Sa.suvorov@f5.com</change>
2561828Sa.suvorov@f5.com
2571828Sa.suvorov@f5.com<change type="feature">
2581828Sa.suvorov@f5.com<para>
2591833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
2601833Sartem.konev@nginx.cominstallation.
2611825Sthresh@nginx.com</para>
2621825Sthresh@nginx.com</change>
2631825Sthresh@nginx.com
2641811Smax.romanov@nginx.com<change type="bugfix">
2651811Smax.romanov@nginx.com<para>
2661812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
2671812Svbart@nginx.comappeared in 1.17.0.
2681812Svbart@nginx.com</para>
2691812Svbart@nginx.com</change>
2701812Svbart@nginx.com
2711812Svbart@nginx.com<change type="bugfix">
2721812Svbart@nginx.com<para>
2731833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
2741812Svbart@nginx.comappeared in 1.6.
2751812Svbart@nginx.com</para>
2761812Svbart@nginx.com</change>
2771812Svbart@nginx.com
2781812Svbart@nginx.com<change type="bugfix">
2791812Svbart@nginx.com<para>
2801833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
2811832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
2821832Smax.romanov@nginx.com</para>
2831832Smax.romanov@nginx.com</change>
2841832Smax.romanov@nginx.com
2851832Smax.romanov@nginx.com<change type="bugfix">
2861832Smax.romanov@nginx.com<para>
2871833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
2881811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
2891811Smax.romanov@nginx.com</para>
2901811Smax.romanov@nginx.com</change>
2911806Svbart@nginx.com
2921813Svbart@nginx.com<change type="bugfix">
2931813Svbart@nginx.com<para>
2941813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
2951813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
2961813Svbart@nginx.com</para>
2971813Svbart@nginx.com</change>
2981813Svbart@nginx.com
2991814Svbart@nginx.com<change type="bugfix">
3001814Svbart@nginx.com<para>
3011820Svbart@nginx.comthe controller process could crash while requesting information about a
3021820Svbart@nginx.comcertificate with a non-DNS SAN entry.
3031820Svbart@nginx.com</para>
3041820Svbart@nginx.com</change>
3051820Svbart@nginx.com
3061820Svbart@nginx.com<change type="bugfix">
3071820Svbart@nginx.com<para>
3081822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
3091833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
3101822Svbart@nginx.com</para>
3111822Svbart@nginx.com</change>
3121822Svbart@nginx.com
3131822Svbart@nginx.com<change type="bugfix">
3141822Svbart@nginx.com<para>
3151833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
3161833Sartem.konev@nginx.comclass.
3171814Svbart@nginx.com</para>
3181814Svbart@nginx.com</change>
3191814Svbart@nginx.com
3201815Svbart@nginx.com<change type="bugfix">
3211815Svbart@nginx.com<para>
3221815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
3231815Svbart@nginx.comappeared in 1.22.0.
3241815Svbart@nginx.com</para>
3251815Svbart@nginx.com</change>
3261815Svbart@nginx.com
3271806Svbart@nginx.com</changes>
3281806Svbart@nginx.com
3291806Svbart@nginx.com
3301798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
3311798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
3321798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3331798Sdefan@nginx.com
3341798Sdefan@nginx.com<change>
3351798Sdefan@nginx.com<para>
3361798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
3371798Sdefan@nginx.com</para>
3381798Sdefan@nginx.com</change>
3391798Sdefan@nginx.com
3401798Sdefan@nginx.com</changes>
3411798Sdefan@nginx.com
3421798Sdefan@nginx.com
3431763Sdefan@nginx.com<changes apply="unit-php
3441763Sdefan@nginx.com                unit-python unit-python2.7
3451763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3461763Sdefan@nginx.com                unit-python3.8
3471763Sdefan@nginx.com                unit-go
3481763Sdefan@nginx.com                unit-perl
3491763Sdefan@nginx.com                unit-ruby
3501763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3511763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
3521763Sdefan@nginx.com         ver="1.22.0" rev="1"
3531793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
3541763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3551763Sdefan@nginx.com
3561763Sdefan@nginx.com<change>
3571763Sdefan@nginx.com<para>
3581763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
3591763Sdefan@nginx.com</para>
3601763Sdefan@nginx.com</change>
3611763Sdefan@nginx.com
3621763Sdefan@nginx.com</changes>
3631763Sdefan@nginx.com
3641763Sdefan@nginx.com
3651727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
3661793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
3671727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3681727Svbart@nginx.com
3691759Svbart@nginx.com<change type="feature">
3701759Svbart@nginx.com<para>
3711792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
3721792Svbart@nginx.comcompliant with Stream API.
3731759Svbart@nginx.com</para>
3741759Svbart@nginx.com</change>
3751759Svbart@nginx.com
3761766Smax.romanov@nginx.com<change type="feature">
3771766Smax.romanov@nginx.com<para>
3781792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
3791792Svbart@nginx.comapps.
3801732Svbart@nginx.com</para>
3811732Svbart@nginx.com</change>
3821732Svbart@nginx.com
3831733Svbart@nginx.com<change type="bugfix">
3841733Svbart@nginx.com<para>
3851792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
3861792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
3871754Smax.romanov@nginx.com</para>
3881754Smax.romanov@nginx.com</change>
3891754Smax.romanov@nginx.com
3901755Smax.romanov@nginx.com<change type="bugfix">
3911755Smax.romanov@nginx.com<para>
3921790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
3931755Smax.romanov@nginx.comappeared in 1.19.0.
3941755Smax.romanov@nginx.com</para>
3951755Smax.romanov@nginx.com</change>
3961755Smax.romanov@nginx.com
3971756Smax.romanov@nginx.com<change type="bugfix">
3981756Smax.romanov@nginx.com<para>
3991790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
4001790Sartem.konev@nginx.comappeared in 1.19.0.
4011756Smax.romanov@nginx.com</para>
4021756Smax.romanov@nginx.com</change>
4031756Smax.romanov@nginx.com
4041760Smax.romanov@nginx.com<change type="bugfix">
4051760Smax.romanov@nginx.com<para>
4061792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
4071792Svbart@nginx.com</para>
4081792Svbart@nginx.com</change>
4091792Svbart@nginx.com
4101792Svbart@nginx.com<change type="bugfix">
4111792Svbart@nginx.com<para>
4121792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
4131792Svbart@nginx.commissing in the PHP module.
4141792Svbart@nginx.com</para>
4151792Svbart@nginx.com</change>
4161792Svbart@nginx.com
4171792Svbart@nginx.com<change type="bugfix">
4181792Svbart@nginx.com<para>
4191792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
4201792Svbart@nginx.com</para>
4211792Svbart@nginx.com</change>
4221792Svbart@nginx.com
4231792Svbart@nginx.com<change type="bugfix">
4241792Svbart@nginx.com<para>
4251792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
4261792Svbart@nginx.com</para>
4271792Svbart@nginx.com</change>
4281792Svbart@nginx.com
4291792Svbart@nginx.com<change type="bugfix">
4301792Svbart@nginx.com<para>
4311792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
4321792Svbart@nginx.comthe bug had appeared in 1.21.0.
4331760Smax.romanov@nginx.com</para>
4341760Smax.romanov@nginx.com</change>
4351760Smax.romanov@nginx.com
4361780Smax.romanov@nginx.com<change type="bugfix">
4371780Smax.romanov@nginx.com<para>
4381790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
4391790Sartem.konev@nginx.comWebSocket.
4401780Smax.romanov@nginx.com</para>
4411780Smax.romanov@nginx.com</change>
4421780Smax.romanov@nginx.com
4431789Smax.romanov@nginx.com<change type="bugfix">
4441789Smax.romanov@nginx.com<para>
4451789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
4461789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
4471789Smax.romanov@nginx.com</para>
4481789Smax.romanov@nginx.com</change>
4491789Smax.romanov@nginx.com
4501727Svbart@nginx.com</changes>
4511727Svbart@nginx.com
4521727Svbart@nginx.com
4531722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
4541722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
4551722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4561722Svbart@nginx.com
4571722Svbart@nginx.com<change>
4581722Svbart@nginx.com<para>
4591722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
4601722Svbart@nginx.com</para>
4611722Svbart@nginx.com</change>
4621722Svbart@nginx.com
4631722Svbart@nginx.com</changes>
4641722Svbart@nginx.com
4651722Svbart@nginx.com
4661722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
4671722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
4681722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4691722Svbart@nginx.com
4701722Svbart@nginx.com<change>
4711722Svbart@nginx.com<para>
4721722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
4731722Svbart@nginx.com</para>
4741722Svbart@nginx.com</change>
4751722Svbart@nginx.com
4761722Svbart@nginx.com</changes>
4771722Svbart@nginx.com
4781722Svbart@nginx.com
4791722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
4801722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
4811722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4821722Svbart@nginx.com
4831722Svbart@nginx.com<change>
4841722Svbart@nginx.com<para>
4851722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
4861722Svbart@nginx.com</para>
4871722Svbart@nginx.com</change>
4881722Svbart@nginx.com
4891722Svbart@nginx.com</changes>
4901722Svbart@nginx.com
4911722Svbart@nginx.com
4921722Svbart@nginx.com<changes apply="unit-php
4931722Svbart@nginx.com                unit-python unit-python2.7
4941722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4951722Svbart@nginx.com                unit-python3.8
4961722Svbart@nginx.com                unit-go
4971722Svbart@nginx.com                unit-perl
4981722Svbart@nginx.com                unit-ruby
4991722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
5001722Svbart@nginx.com         ver="1.21.0" rev="1"
5011722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5021722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5031722Svbart@nginx.com
5041722Svbart@nginx.com<change>
5051722Svbart@nginx.com<para>
5061722Svbart@nginx.comNGINX Unit updated to 1.21.0.
5071722Svbart@nginx.com</para>
5081722Svbart@nginx.com</change>
5091722Svbart@nginx.com
5101722Svbart@nginx.com</changes>
5111722Svbart@nginx.com
5121722Svbart@nginx.com
5131722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
5141722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5151722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5161722Svbart@nginx.com
5171722Svbart@nginx.com<change type="change">
5181722Svbart@nginx.com<para>
5191722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
5201722Svbart@nginx.com</para>
5211722Svbart@nginx.com</change>
5221722Svbart@nginx.com
5231722Svbart@nginx.com<change type="change">
5241722Svbart@nginx.com<para>
5251722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
5261722Svbart@nginx.comnames.
5271722Svbart@nginx.com</para>
5281722Svbart@nginx.com</change>
5291722Svbart@nginx.com
5301722Svbart@nginx.com<change type="change">
5311722Svbart@nginx.com<para>
5321722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
5331722Svbart@nginx.comdefault.
5341722Svbart@nginx.com</para>
5351722Svbart@nginx.com</change>
5361722Svbart@nginx.com
5371722Svbart@nginx.com<change type="feature">
5381722Svbart@nginx.com<para>
5391722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
5401722Svbart@nginx.com</para>
5411722Svbart@nginx.com</change>
5421722Svbart@nginx.com
5431722Svbart@nginx.com<change type="feature">
5441722Svbart@nginx.com<para>
5451722Svbart@nginx.comregular expressions in route matching patterns.
5461722Svbart@nginx.com</para>
5471722Svbart@nginx.com</change>
5481722Svbart@nginx.com
5491722Svbart@nginx.com<change type="feature">
5501722Svbart@nginx.com<para>
5511722Svbart@nginx.comcompatibility with Python 3.9.
5521722Svbart@nginx.com</para>
5531722Svbart@nginx.com</change>
5541722Svbart@nginx.com
5551722Svbart@nginx.com<change type="feature">
5561722Svbart@nginx.com<para>
5571722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
5581722Svbart@nginx.com</para>
5591722Svbart@nginx.com</change>
5601722Svbart@nginx.com
5611722Svbart@nginx.com<change type="feature">
5621722Svbart@nginx.com<para>
5631722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
5641722Svbart@nginx.com</para>
5651722Svbart@nginx.com</change>
5661722Svbart@nginx.com
5671722Svbart@nginx.com<change type="feature">
5681722Svbart@nginx.com<para>
5691722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
5701722Svbart@nginx.comcontinues code execution without holding onto the client connection.
5711722Svbart@nginx.com</para>
5721722Svbart@nginx.com</change>
5731722Svbart@nginx.com
5741722Svbart@nginx.com<change type="feature">
5751722Svbart@nginx.com<para>
5761722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
5771722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
5781722Svbart@nginx.com</para>
5791722Svbart@nginx.com</change>
5801722Svbart@nginx.com
5811722Svbart@nginx.com<change type="feature">
5821722Svbart@nginx.com<para>
5831722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
5841722Svbart@nginx.commounting of eponymous filesystems.
5851722Svbart@nginx.com</para>
5861722Svbart@nginx.com</change>
5871722Svbart@nginx.com
5881722Svbart@nginx.com<change type="bugfix">
5891722Svbart@nginx.com<para>
5901722Svbart@nginx.comthe router process could crash when running Go applications under high load;
5911722Svbart@nginx.comthe bug had appeared in 1.19.0.
5921722Svbart@nginx.com</para>
5931722Svbart@nginx.com</change>
5941722Svbart@nginx.com
5951722Svbart@nginx.com<change type="bugfix">
5961722Svbart@nginx.com<para>
5971722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
5981722Svbart@nginx.com</para>
5991722Svbart@nginx.com</change>
6001722Svbart@nginx.com
6011722Svbart@nginx.com<change type="bugfix">
6021722Svbart@nginx.com<para>
6031722Svbart@nginx.comvarious compatibility issues in Java applications.
6041722Svbart@nginx.com</para>
6051722Svbart@nginx.com</change>
6061722Svbart@nginx.com
6071722Svbart@nginx.com<change type="bugfix">
6081722Svbart@nginx.com<para>
6091722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
6101722Svbart@nginx.comuse "rootfs" isolation.
6111722Svbart@nginx.com</para>
6121722Svbart@nginx.com</change>
6131722Svbart@nginx.com
6141722Svbart@nginx.com</changes>
6151722Svbart@nginx.com
6161722Svbart@nginx.com
6171330Svbart@nginx.com<changes apply="unit-php
6181330Svbart@nginx.com                unit-python unit-python2.7
6191330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6201330Svbart@nginx.com                unit-python3.8
6211330Svbart@nginx.com                unit-go
6221330Svbart@nginx.com                unit-perl
6231330Svbart@nginx.com                unit-ruby
6241330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
6251640Svbart@nginx.com         ver="1.20.0" rev="1"
6261640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
6271640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6281640Svbart@nginx.com
6291640Svbart@nginx.com<change>
6301640Svbart@nginx.com<para>
6311640Svbart@nginx.comNGINX Unit updated to 1.20.0.
6321640Svbart@nginx.com</para>
6331640Svbart@nginx.com</change>
6341640Svbart@nginx.com
6351640Svbart@nginx.com</changes>
6361640Svbart@nginx.com
6371640Svbart@nginx.com
6381640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
6391640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
6401640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6411640Svbart@nginx.com
6421640Svbart@nginx.com<change type="change">
6431640Svbart@nginx.com<para>
6441640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
6451640Svbart@nginx.comextensions from the host system.
6461640Svbart@nginx.com</para>
6471640Svbart@nginx.com</change>
6481640Svbart@nginx.com
6491640Svbart@nginx.com<change type="change">
6501640Svbart@nginx.com<para>
6511640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
6521640Svbart@nginx.com</para>
6531640Svbart@nginx.com</change>
6541640Svbart@nginx.com
6551643Svbart@nginx.com<change type="change">
6561643Svbart@nginx.com<para>
6571643Svbart@nginx.comfunctional tests migrated to the pytest framework.
6581643Svbart@nginx.com</para>
6591643Svbart@nginx.com</change>
6601643Svbart@nginx.com
6611640Svbart@nginx.com<change type="feature">
6621640Svbart@nginx.com<para>
6631640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
6641640Svbart@nginx.cominterface.
6651640Svbart@nginx.com</para>
6661640Svbart@nginx.com</change>
6671640Svbart@nginx.com
6681640Svbart@nginx.com<change type="feature">
6691640Svbart@nginx.com<para>
6701640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
6711640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
6721640Svbart@nginx.comspecification.
6731640Svbart@nginx.com</para>
6741640Svbart@nginx.com</change>
6751640Svbart@nginx.com
6761640Svbart@nginx.com<change type="feature">
6771640Svbart@nginx.com<para>
6781640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
6791640Svbart@nginx.comenvironments.
6801640Svbart@nginx.com</para>
6811640Svbart@nginx.com</change>
6821640Svbart@nginx.com
6831640Svbart@nginx.com<change type="feature">
6841640Svbart@nginx.com<para>
6851640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
6861640Svbart@nginx.com</para>
6871640Svbart@nginx.com</change>
6881640Svbart@nginx.com
6891640Svbart@nginx.com<change type="feature">
6901640Svbart@nginx.com<para>
6911640Svbart@nginx.comthe "callable" option sets Python application callable names.
6921640Svbart@nginx.com</para>
6931640Svbart@nginx.com</change>
6941640Svbart@nginx.com
6951640Svbart@nginx.com<change type="feature">
6961640Svbart@nginx.com<para>
6971640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
6981640Svbart@nginx.com</para>
6991640Svbart@nginx.com</change>
7001640Svbart@nginx.com
7011640Svbart@nginx.com<change type="feature">
7021640Svbart@nginx.com<para>
7031640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
7041640Svbart@nginx.comautomatic mounting of language module dependencies.
7051640Svbart@nginx.com</para>
7061640Svbart@nginx.com</change>
7071640Svbart@nginx.com
7081640Svbart@nginx.com<change type="bugfix">
7091640Svbart@nginx.com<para>
7101640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
7111640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
7121640Svbart@nginx.com</para>
7131640Svbart@nginx.com</change>
7141640Svbart@nginx.com
7151640Svbart@nginx.com<change type="bugfix">
7161640Svbart@nginx.com<para>
7171640Svbart@nginx.comthe router process could crash during reconfiguration.
7181640Svbart@nginx.com</para>
7191640Svbart@nginx.com</change>
7201640Svbart@nginx.com
7211640Svbart@nginx.com<change type="bugfix">
7221640Svbart@nginx.com<para>
7231640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
7241640Svbart@nginx.com</para>
7251640Svbart@nginx.com</change>
7261640Svbart@nginx.com
7271640Svbart@nginx.com<change type="bugfix">
7281640Svbart@nginx.com<para>
7291640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
7301640Svbart@nginx.comthe bug had appeared in 1.19.0.
7311640Svbart@nginx.com</para>
7321640Svbart@nginx.com</change>
7331640Svbart@nginx.com
7341640Svbart@nginx.com<change type="bugfix">
7351640Svbart@nginx.com<para>
7361640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
7371640Svbart@nginx.comthe bug had appeared in 1.16.0.
7381640Svbart@nginx.com</para>
7391640Svbart@nginx.com</change>
7401640Svbart@nginx.com
7411640Svbart@nginx.com</changes>
7421640Svbart@nginx.com
7431640Svbart@nginx.com
7441640Svbart@nginx.com<changes apply="unit-php
7451640Svbart@nginx.com                unit-python unit-python2.7
7461640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7471640Svbart@nginx.com                unit-python3.8
7481640Svbart@nginx.com                unit-go
7491640Svbart@nginx.com                unit-perl
7501640Svbart@nginx.com                unit-ruby
7511640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
7521570Svbart@nginx.com         ver="1.19.0" rev="1"
7531570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
7541570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7551570Svbart@nginx.com
7561570Svbart@nginx.com<change>
7571570Svbart@nginx.com<para>
7581570Svbart@nginx.comNGINX Unit updated to 1.19.0.
7591570Svbart@nginx.com</para>
7601570Svbart@nginx.com</change>
7611570Svbart@nginx.com
7621570Svbart@nginx.com</changes>
7631570Svbart@nginx.com
7641570Svbart@nginx.com
7651570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1"
7661570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
7671570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7681570Svbart@nginx.com
7691570Svbart@nginx.com<change type="feature">
7701570Svbart@nginx.com<para>
7711570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
7721570Svbart@nginx.comincrease performance, and improve scalability.
7731570Svbart@nginx.com</para>
7741570Svbart@nginx.com</change>
7751570Svbart@nginx.com
7761570Svbart@nginx.com<change type="feature">
7771570Svbart@nginx.com<para>
7781570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns.
7791570Svbart@nginx.com</para>
7801570Svbart@nginx.com</change>
7811570Svbart@nginx.com
7821570Svbart@nginx.com<change type="feature">
7831570Svbart@nginx.com<para>
7841570Svbart@nginx.comchunked transfer encoding in proxy responses.
7851570Svbart@nginx.com</para>
7861570Svbart@nginx.com</change>
7871570Svbart@nginx.com
7881570Svbart@nginx.com<change type="feature">
7891570Svbart@nginx.com<para>
7901570Svbart@nginx.combasic variables support in the "pass" option.
7911570Svbart@nginx.com</para>
7921570Svbart@nginx.com</change>
7931570Svbart@nginx.com
7941570Svbart@nginx.com<change type="feature">
7951570Svbart@nginx.com<para>
7961570Svbart@nginx.comcompatibility with PHP 8 Beta 1.
7971570Svbart@nginx.comThanks to Remi Collet.
7981570Svbart@nginx.com</para>
7991570Svbart@nginx.com</change>
8001570Svbart@nginx.com
8011570Svbart@nginx.com<change type="bugfix">
8021570Svbart@nginx.com<para>
8031570Svbart@nginx.comthe router process could crash while passing requests to an application under
8041570Svbart@nginx.comhigh load.
8051570Svbart@nginx.com</para>
8061570Svbart@nginx.com</change>
8071570Svbart@nginx.com
8081570Svbart@nginx.com<change type="bugfix">
8091570Svbart@nginx.com<para>
8101570Svbart@nginx.coma number of language modules failed to build on some systems;
8111570Svbart@nginx.comthe bug had appeared in 1.18.0.
8121570Svbart@nginx.com</para>
8131570Svbart@nginx.com</change>
8141570Svbart@nginx.com
8151570Svbart@nginx.com<change type="bugfix">
8161570Svbart@nginx.com<para>
8171570Svbart@nginx.comtime in error log messages from PHP applications could lag.
8181570Svbart@nginx.com</para>
8191570Svbart@nginx.com</change>
8201570Svbart@nginx.com
8211570Svbart@nginx.com<change type="bugfix">
8221570Svbart@nginx.com<para>
8231570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start;
8241570Svbart@nginx.comthe bug had appeared in 1.18.0.
8251570Svbart@nginx.com</para>
8261570Svbart@nginx.com</change>
8271570Svbart@nginx.com
8281570Svbart@nginx.com<change type="bugfix">
8291570Svbart@nginx.com<para>
8301570Svbart@nginx.commemory leak during reconfiguration.
8311570Svbart@nginx.com</para>
8321570Svbart@nginx.com</change>
8331570Svbart@nginx.com
8341570Svbart@nginx.com<change type="bugfix">
8351570Svbart@nginx.com<para>
8361570Svbart@nginx.comthe daemon didn't start without language modules;
8371570Svbart@nginx.comthe bug had appeared in 1.18.0.
8381570Svbart@nginx.com</para>
8391570Svbart@nginx.com</change>
8401570Svbart@nginx.com
8411570Svbart@nginx.com<change type="bugfix">
8421570Svbart@nginx.com<para>
8431570Svbart@nginx.comthe router process could crash at exit.
8441570Svbart@nginx.com</para>
8451570Svbart@nginx.com</change>
8461570Svbart@nginx.com
8471570Svbart@nginx.com<change type="bugfix">
8481570Svbart@nginx.com<para>
8491570Svbart@nginx.comNode.js applications could crash at exit.
8501570Svbart@nginx.com</para>
8511570Svbart@nginx.com</change>
8521570Svbart@nginx.com
8531570Svbart@nginx.com<change type="bugfix">
8541570Svbart@nginx.com<para>
8551570Svbart@nginx.comthe Ruby module could be linked against a wrong library version.
8561570Svbart@nginx.com</para>
8571570Svbart@nginx.com</change>
8581570Svbart@nginx.com
8591570Svbart@nginx.com</changes>
8601570Svbart@nginx.com
8611570Svbart@nginx.com
8621570Svbart@nginx.com<changes apply="unit-php
8631570Svbart@nginx.com                unit-python unit-python2.7
8641570Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8651570Svbart@nginx.com                unit-python3.8
8661570Svbart@nginx.com                unit-go
8671570Svbart@nginx.com                unit-perl
8681570Svbart@nginx.com                unit-ruby
8691570Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8701491Svbart@nginx.com         ver="1.18.0" rev="1"
8711491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
8721491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8731491Svbart@nginx.com
8741491Svbart@nginx.com<change>
8751491Svbart@nginx.com<para>
8761491Svbart@nginx.comNGINX Unit updated to 1.18.0.
8771491Svbart@nginx.com</para>
8781491Svbart@nginx.com</change>
8791491Svbart@nginx.com
8801491Svbart@nginx.com</changes>
8811491Svbart@nginx.com
8821491Svbart@nginx.com
8831491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1"
8841491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
8851491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8861491Svbart@nginx.com
8871491Svbart@nginx.com<change type="feature">
8881491Svbart@nginx.com<para>
8891491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application.
8901491Svbart@nginx.com</para>
8911491Svbart@nginx.com</change>
8921491Svbart@nginx.com
8931491Svbart@nginx.com<change type="feature">
8941491Svbart@nginx.com<para>
8951491Svbart@nginx.commultiple "targets" in PHP applications.
8961491Svbart@nginx.com</para>
8971491Svbart@nginx.com</change>
8981491Svbart@nginx.com
8991491Svbart@nginx.com<change type="feature">
9001491Svbart@nginx.com<para>
9011491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options
9021491Svbart@nginx.comand in the "pass" option.
9031491Svbart@nginx.com</para>
9041491Svbart@nginx.com</change>
9051491Svbart@nginx.com
9061491Svbart@nginx.com</changes>
9071491Svbart@nginx.com
9081491Svbart@nginx.com
9091491Svbart@nginx.com<changes apply="unit-php
9101491Svbart@nginx.com                unit-python unit-python2.7
9111491Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9121491Svbart@nginx.com                unit-python3.8
9131491Svbart@nginx.com                unit-go
9141491Svbart@nginx.com                unit-perl
9151491Svbart@nginx.com                unit-ruby
9161491Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9171460Svbart@nginx.com         ver="1.17.0" rev="1"
9181460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
9191460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9201460Svbart@nginx.com
9211460Svbart@nginx.com<change>
9221460Svbart@nginx.com<para>
9231460Svbart@nginx.comNGINX Unit updated to 1.17.0.
9241460Svbart@nginx.com</para>
9251460Svbart@nginx.com</change>
9261460Svbart@nginx.com
9271460Svbart@nginx.com</changes>
9281460Svbart@nginx.com
9291460Svbart@nginx.com
9301460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1"
9311460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
9321460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9331460Svbart@nginx.com
9341460Svbart@nginx.com<change type="feature">
9351460Svbart@nginx.com<para>
9361460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external
9371460Svbart@nginx.comredirection.
9381460Svbart@nginx.com</para>
9391460Svbart@nginx.com</change>
9401460Svbart@nginx.com
9411460Svbart@nginx.com<change type="feature">
9421460Svbart@nginx.com<para>
9431460Svbart@nginx.comfractional weights support for upstream servers.
9441460Svbart@nginx.com</para>
9451460Svbart@nginx.com</change>
9461460Svbart@nginx.com
9471460Svbart@nginx.com<change type="bugfix">
9481460Svbart@nginx.com<para>
9491460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under
9501460Svbart@nginx.comhigh load.
9511460Svbart@nginx.com</para>
9521460Svbart@nginx.com</change>
9531460Svbart@nginx.com
9541460Svbart@nginx.com<change type="bugfix">
9551460Svbart@nginx.com<para>
9561460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0.
9571460Svbart@nginx.com</para>
9581460Svbart@nginx.com</change>
9591460Svbart@nginx.com
9601460Svbart@nginx.com<change type="bugfix">
9611460Svbart@nginx.com<para>
9621460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching
9631460Svbart@nginx.comopen connections limit.
9641460Svbart@nginx.com</para>
9651460Svbart@nginx.com</change>
9661460Svbart@nginx.com
9671460Svbart@nginx.com<change type="bugfix">
9681460Svbart@nginx.com<para>
9691460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log
9701460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0.
9711460Svbart@nginx.com</para>
9721460Svbart@nginx.com</change>
9731460Svbart@nginx.com
9741460Svbart@nginx.com<change type="bugfix">
9751460Svbart@nginx.com<para>
9761460Svbart@nginx.comexisting application processes didn't reopen the log file.
9771460Svbart@nginx.com</para>
9781460Svbart@nginx.com</change>
9791460Svbart@nginx.com
9801460Svbart@nginx.com<change type="bugfix">
9811460Svbart@nginx.com<para>
9821460Svbart@nginx.comincompatibility with some Node.js applications.
9831460Svbart@nginx.com</para>
9841460Svbart@nginx.com</change>
9851460Svbart@nginx.com
9861460Svbart@nginx.com<change type="bugfix">
9871460Svbart@nginx.com<para>
9881460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0.
9891460Svbart@nginx.com</para>
9901460Svbart@nginx.com</change>
9911460Svbart@nginx.com
9921460Svbart@nginx.com</changes>
9931460Svbart@nginx.com
9941460Svbart@nginx.com
9951460Svbart@nginx.com<changes apply="unit-php
9961460Svbart@nginx.com                unit-python unit-python2.7
9971460Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9981460Svbart@nginx.com                unit-python3.8
9991460Svbart@nginx.com                unit-go
10001460Svbart@nginx.com                unit-perl
10011460Svbart@nginx.com                unit-ruby
10021460Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10031404Svbart@nginx.com         ver="1.16.0" rev="1"
10041404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
10051404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10061404Svbart@nginx.com
10071404Svbart@nginx.com<change>
10081404Svbart@nginx.com<para>
10091404Svbart@nginx.comNGINX Unit updated to 1.16.0.
10101404Svbart@nginx.com</para>
10111404Svbart@nginx.com</change>
10121404Svbart@nginx.com
10131404Svbart@nginx.com</changes>
10141404Svbart@nginx.com
10151404Svbart@nginx.com
10161404Svbart@nginx.com<changes apply="unit" ver="1.16.0" rev="1"
10171404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
10181404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10191404Svbart@nginx.com
10201404Svbart@nginx.com<change type="feature">
10211404Svbart@nginx.com<para>
10221404Svbart@nginx.combasic load-balancing support with round-robin.
10231404Svbart@nginx.com</para>
10241404Svbart@nginx.com</change>
10251404Svbart@nginx.com
10261404Svbart@nginx.com<change type="feature">
10271404Svbart@nginx.com<para>
10281404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be
10291404Svbart@nginx.comserved from the "share" directory.
10301404Svbart@nginx.com</para>
10311404Svbart@nginx.com</change>
10321404Svbart@nginx.com
10331404Svbart@nginx.com<change type="feature">
10341404Svbart@nginx.com<para>
10351404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk.
10361404Svbart@nginx.com</para>
10371404Svbart@nginx.com</change>
10381404Svbart@nginx.com
10391404Svbart@nginx.com<change type="feature">
10401404Svbart@nginx.com<para>
10411404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON.
10421404Svbart@nginx.com</para>
10431404Svbart@nginx.com</change>
10441404Svbart@nginx.com
10451404Svbart@nginx.com<change type="bugfix">
10461404Svbart@nginx.com<para>
10471404Svbart@nginx.comnegative address matching in router might work improperly in combination with
10481404Svbart@nginx.comnon-negative patterns.
10491404Svbart@nginx.com</para>
10501404Svbart@nginx.com</change>
10511404Svbart@nginx.com
10521404Svbart@nginx.com<change type="bugfix">
10531404Svbart@nginx.com<para>
10541404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0.
10551404Svbart@nginx.com</para>
10561404Svbart@nginx.com</change>
10571404Svbart@nginx.com
10581404Svbart@nginx.com<change type="bugfix">
10591404Svbart@nginx.com<para>
10601404Svbart@nginx.comPHP 7.4 was broken if it was built with thread safety enabled.
10611404Svbart@nginx.com</para>
10621404Svbart@nginx.com</change>
10631404Svbart@nginx.com
10641404Svbart@nginx.com<change type="bugfix">
10651404Svbart@nginx.com<para>
10661404Svbart@nginx.comcompatibility issues with some Python applications.
10671404Svbart@nginx.com</para>
10681404Svbart@nginx.com</change>
10691404Svbart@nginx.com
10701404Svbart@nginx.com</changes>
10711404Svbart@nginx.com
10721404Svbart@nginx.com
10731404Svbart@nginx.com<changes apply="unit-php
10741404Svbart@nginx.com                unit-python unit-python2.7
10751404Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10761404Svbart@nginx.com                unit-python3.8
10771404Svbart@nginx.com                unit-go
10781404Svbart@nginx.com                unit-perl
10791404Svbart@nginx.com                unit-ruby
10801404Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10811357Svbart@nginx.com         ver="1.15.0" rev="1"
10821357Svbart@nginx.com         date="2020-02-06" time="18:00:00 +0300"
10831357Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10841357Svbart@nginx.com
10851357Svbart@nginx.com<change>
10861357Svbart@nginx.com<para>
10871357Svbart@nginx.comNGINX Unit updated to 1.15.0.
10881357Svbart@nginx.com</para>
10891357Svbart@nginx.com</change>
10901357Svbart@nginx.com
10911357Svbart@nginx.com</changes>
10921357Svbart@nginx.com
10931357Svbart@nginx.com
10941357Svbart@nginx.com<changes apply="unit" ver="1.15.0" rev="1"
10951357Svbart@nginx.com         date="2020-02-06" time="18:00:00 +0300"
10961357Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10971357Svbart@nginx.com
10981357Svbart@nginx.com<change type="change">
10991357Svbart@nginx.com<para>
11001357Svbart@nginx.comextensions of dynamically requested PHP scripts were restricted to ".php".
11011357Svbart@nginx.com</para>
11021357Svbart@nginx.com</change>
11031357Svbart@nginx.com
11041357Svbart@nginx.com<change type="feature">
11051357Svbart@nginx.com<para>
11061357Svbart@nginx.comcompatibility with Ruby 2.7.
11071357Svbart@nginx.com</para>
11081357Svbart@nginx.com</change>
11091357Svbart@nginx.com
11101357Svbart@nginx.com<change type="bugfix">
11111357Svbart@nginx.com<para>
11121357Svbart@nginx.comsegmentation fault might have occurred in the router process with multiple
11131357Svbart@nginx.comapplication processes under load; the bug had appeared in 1.14.0.
11141357Svbart@nginx.com</para>
11151357Svbart@nginx.com</change>
11161357Svbart@nginx.com
11171357Svbart@nginx.com<change type="bugfix">
11181357Svbart@nginx.com<para>
11191357Svbart@nginx.comreceiving request body over TLS connection might have stalled.
11201357Svbart@nginx.com</para>
11211357Svbart@nginx.com</change>
11221357Svbart@nginx.com
11231357Svbart@nginx.com</changes>
11241357Svbart@nginx.com
11251357Svbart@nginx.com
11261357Svbart@nginx.com<changes apply="unit-php
11271357Svbart@nginx.com                unit-python unit-python2.7
11281357Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11291357Svbart@nginx.com                unit-python3.8
11301357Svbart@nginx.com                unit-go
11311357Svbart@nginx.com                unit-perl
11321357Svbart@nginx.com                unit-ruby
11331357Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11341330Svbart@nginx.com         ver="1.14.0" rev="1"
11351330Svbart@nginx.com         date="2019-12-26" time="18:00:00 +0300"
11361330Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11371330Svbart@nginx.com
11381330Svbart@nginx.com<change>
11391330Svbart@nginx.com<para>
11401330Svbart@nginx.comNGINX Unit updated to 1.14.0.
11411330Svbart@nginx.com</para>
11421330Svbart@nginx.com</change>
11431330Svbart@nginx.com
11441330Svbart@nginx.com</changes>
11451330Svbart@nginx.com
11461330Svbart@nginx.com
11471330Svbart@nginx.com<changes apply="unit" ver="1.14.0" rev="1"
11481330Svbart@nginx.com         date="2019-12-26" time="18:00:00 +0300"
11491330Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11501330Svbart@nginx.com
11511330Svbart@nginx.com<change type="change">
11521330Svbart@nginx.com<para>
11531330Svbart@nginx.comthe Go package import name changed to "unit.nginx.org/go".
11541330Svbart@nginx.com</para>
11551330Svbart@nginx.com</change>
11561330Svbart@nginx.com
11571330Svbart@nginx.com<change type="change">
11581330Svbart@nginx.com<para>
11591330Svbart@nginx.comGo package now links to libunit instead of including library sources.
11601330Svbart@nginx.com</para>
11611330Svbart@nginx.com</change>
11621330Svbart@nginx.com
11631330Svbart@nginx.com<change type="feature">
11641330Svbart@nginx.com<para>
11651330Svbart@nginx.comability to change user and group for isolated applications when Unit daemon
11661330Svbart@nginx.comruns as an unprivileged user.
11671330Svbart@nginx.com</para>
11681330Svbart@nginx.com</change>
11691330Svbart@nginx.com
11701330Svbart@nginx.com<change type="feature">
11711330Svbart@nginx.com<para>
11721330Svbart@nginx.comrequest routing by source and destination addresses and ports.
11731330Svbart@nginx.com</para>
11741330Svbart@nginx.com</change>
11751330Svbart@nginx.com
11761330Svbart@nginx.com<change type="bugfix">
11771330Svbart@nginx.com<para>
11781330Svbart@nginx.commemory bloat on large responses.
11791330Svbart@nginx.com</para>
11801330Svbart@nginx.com</change>
11811330Svbart@nginx.com
11821330Svbart@nginx.com</changes>
11831330Svbart@nginx.com
11841330Svbart@nginx.com
11851290Sdefan@nginx.com<changes apply="unit-go1.13" ver="1.13.0" rev="1"
11861290Sdefan@nginx.com         date="2019-11-20" time="09:00:00 +0300"
11871290Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11881290Sdefan@nginx.com
11891290Sdefan@nginx.com<change>
11901290Sdefan@nginx.com<para>
11911290Sdefan@nginx.comInitial release of Go 1.13 module for NGINX Unit.
11921290Sdefan@nginx.com</para>
11931290Sdefan@nginx.com</change>
11941290Sdefan@nginx.com
11951290Sdefan@nginx.com</changes>
11961290Sdefan@nginx.com
11971290Sdefan@nginx.com
11981290Sdefan@nginx.com<changes apply="unit-go1.12" ver="1.13.0" rev="1"
11991290Sdefan@nginx.com         date="2019-11-20" time="09:00:00 +0300"
12001290Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
12011290Sdefan@nginx.com
12021290Sdefan@nginx.com<change>
12031290Sdefan@nginx.com<para>
12041290Sdefan@nginx.comInitial release of Go 1.12 module for NGINX Unit.
12051290Sdefan@nginx.com</para>
12061290Sdefan@nginx.com</change>
12071290Sdefan@nginx.com
12081290Sdefan@nginx.com</changes>
12091290Sdefan@nginx.com
12101290Sdefan@nginx.com
12111289Sdefan@nginx.com<changes apply="unit-python3.8" ver="1.13.0" rev="1"
12121289Sdefan@nginx.com         date="2019-11-18" time="14:20:00 +0300"
12131289Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
12141289Sdefan@nginx.com
12151289Sdefan@nginx.com<change>
12161289Sdefan@nginx.com<para>
12171289Sdefan@nginx.comInitial release of Python 3.8 module for NGINX Unit.
12181289Sdefan@nginx.com</para>
12191289Sdefan@nginx.com</change>
12201289Sdefan@nginx.com
1221