xref: /unit/docs/changes.xml (revision 1944)
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>
36*1944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
371942Sa.suvorov@f5.com</para>
381942Sa.suvorov@f5.com</change>
391942Sa.suvorov@f5.com
401942Sa.suvorov@f5.com<change type="feature">
411942Sa.suvorov@f5.com<para>
421920Sa.suvorov@f5.comTLS sessions cache.
431920Sa.suvorov@f5.com</para>
441920Sa.suvorov@f5.com</change>
451920Sa.suvorov@f5.com
461920Sa.suvorov@f5.com<change type="feature">
471920Sa.suvorov@f5.com<para>
48*1944Svbart@nginx.comTLS session tickets.
491910So.canty@f5.com</para>
501910So.canty@f5.com</change>
511910So.canty@f5.com
521926Smax.romanov@nginx.com<change type="feature">
531926Smax.romanov@nginx.com<para>
541926Smax.romanov@nginx.comapplication restart control.
551926Smax.romanov@nginx.com</para>
561926Smax.romanov@nginx.com</change>
571926Smax.romanov@nginx.com
581936So.canty@f5.com<change type="feature">
591936So.canty@f5.com<para>
60*1944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
611936So.canty@f5.com</para>
621936So.canty@f5.com</change>
631936So.canty@f5.com
641907Smax.romanov@nginx.com<change type="bugfix">
651907Smax.romanov@nginx.com<para>
66*1944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
67*1944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
681921Sa.suvorov@f5.com</para>
691921Sa.suvorov@f5.com</change>
701921Sa.suvorov@f5.com
711921Sa.suvorov@f5.com<change type="bugfix">
721921Sa.suvorov@f5.com<para>
73*1944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
74*1944Svbart@nginx.combundles in a listener if the client did not use SNI.
751907Smax.romanov@nginx.com</para>
761907Smax.romanov@nginx.com</change>
771907Smax.romanov@nginx.com
781907Smax.romanov@nginx.com<change type="bugfix">
791907Smax.romanov@nginx.com<para>
801943Sartem.konev@nginx.comthe router process could crash with frequent mutithreaded application
811915Smax.romanov@nginx.comreconfiguration.
821915Smax.romanov@nginx.com</para>
831915Smax.romanov@nginx.com</change>
841915Smax.romanov@nginx.com
851915Smax.romanov@nginx.com<change type="bugfix">
861915Smax.romanov@nginx.com<para>
87*1944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
88*1944Svbart@nginx.comframework.
89*1944Svbart@nginx.com</para>
90*1944Svbart@nginx.com</change>
91*1944Svbart@nginx.com
92*1944Svbart@nginx.com<change type="bugfix">
93*1944Svbart@nginx.com<para>
94*1944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
95*1944Svbart@nginx.comstopped or crashed.
961907Smax.romanov@nginx.com</para>
971907Smax.romanov@nginx.com</change>
981907Smax.romanov@nginx.com
991909So.canty@f5.com<change type="bugfix">
1001909So.canty@f5.com<para>
1011909So.canty@f5.comthe controller or router process could crash if the configuration contained
1021909So.canty@f5.coma full-form IPv6 in a listener address.
1031909So.canty@f5.com</para>
1041909So.canty@f5.com</change>
1051909So.canty@f5.com
1061916Smax.romanov@nginx.com<change type="bugfix">
1071916Smax.romanov@nginx.com<para>
1081929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
1091929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
1101929Sz.hong@f5.com</para>
1111929Sz.hong@f5.com</change>
1121929Sz.hong@f5.com
1131930So.canty@f5.com<change type="bugfix">
1141930So.canty@f5.com<para>
115*1944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
116*1944Svbart@nginx.comor destination address patterns.
1171930So.canty@f5.com</para>
1181930So.canty@f5.com</change>
1191930So.canty@f5.com
1201896Svbart@nginx.com</changes>
1211896Svbart@nginx.com
1221896Svbart@nginx.com
1231887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
1241891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
1251887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1261887Sdefan@nginx.com
1271887Sdefan@nginx.com<change>
1281887Sdefan@nginx.com<para>
1291887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
1301887Sdefan@nginx.com</para>
1311887Sdefan@nginx.com</change>
1321887Sdefan@nginx.com
1331887Sdefan@nginx.com</changes>
1341887Sdefan@nginx.com
1351887Sdefan@nginx.com
1361887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
1371891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
1381887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1391887Sdefan@nginx.com
1401887Sdefan@nginx.com<change>
1411887Sdefan@nginx.com<para>
1421887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
1431887Sdefan@nginx.com</para>
1441887Sdefan@nginx.com</change>
1451887Sdefan@nginx.com
1461887Sdefan@nginx.com</changes>
1471887Sdefan@nginx.com
1481887Sdefan@nginx.com
1491834Svbart@nginx.com<changes apply="unit-php
1501834Svbart@nginx.com                unit-python unit-python2.7
1511834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1521834Svbart@nginx.com                unit-python3.8 unit-python3.9
1531834Svbart@nginx.com                unit-go
1541834Svbart@nginx.com                unit-perl
1551834Svbart@nginx.com                unit-ruby
1561834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1571834Svbart@nginx.com                unit-jsc14 unit-jsc15"
1581839Svbart@nginx.com         ver="1.24.0" rev="1"
1591891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
1601839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1611839Svbart@nginx.com
1621839Svbart@nginx.com<change>
1631839Svbart@nginx.com<para>
1641839Svbart@nginx.comNGINX Unit updated to 1.24.0.
1651839Svbart@nginx.com</para>
1661839Svbart@nginx.com</change>
1671839Svbart@nginx.com
1681839Svbart@nginx.com</changes>
1691839Svbart@nginx.com
1701839Svbart@nginx.com
1711839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
1721891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
1731839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1741839Svbart@nginx.com
1751882So.canty@f5.com<change type="change">
1761882So.canty@f5.com<para>
1771882So.canty@f5.comPHP added to the default MIME type list.
1781882So.canty@f5.com</para>
1791882So.canty@f5.com</change>
1801882So.canty@f5.com
1811855Sz.hong@f5.com<change type="feature">
1821855Sz.hong@f5.com<para>
1831885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
1841885Sa.suvorov@f5.com</para>
1851885Sa.suvorov@f5.com</change>
1861885Sa.suvorov@f5.com
1871885Sa.suvorov@f5.com<change type="feature">
1881885Sa.suvorov@f5.com<para>
1891890Svbart@nginx.comthe ability to limit static file serving by MIME types.
1901890Svbart@nginx.com</para>
1911890Svbart@nginx.com</change>
1921890Svbart@nginx.com
1931890Svbart@nginx.com<change type="feature">
1941890Svbart@nginx.com<para>
1951890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
1961890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
1971872So.canty@f5.com</para>
1981872So.canty@f5.com</change>
1991872So.canty@f5.com
2001872So.canty@f5.com<change type="feature">
2011872So.canty@f5.com<para>
2021889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
2031889Sartem.konev@nginx.comNode.js.
2041865So.canty@f5.com</para>
2051865So.canty@f5.com</change>
2061865So.canty@f5.com
2071865So.canty@f5.com<change type="feature">
2081865So.canty@f5.com<para>
2091890Svbart@nginx.commultiple "targets" in Python applications.
2101855Sz.hong@f5.com</para>
2111855Sz.hong@f5.com</change>
2121855Sz.hong@f5.com
2131870So.canty@f5.com<change type="feature">
2141870So.canty@f5.com<para>
2151870So.canty@f5.comcompatibility with Ruby 3.0.
2161870So.canty@f5.com</para>
2171870So.canty@f5.com</change>
2181870So.canty@f5.com
2191861Svbart@nginx.com<change type="bugfix">
2201861Svbart@nginx.com<para>
2211889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
2221884Sa.suvorov@f5.com</para>
2231884Sa.suvorov@f5.com</change>
2241884Sa.suvorov@f5.com
2251884Sa.suvorov@f5.com<change type="bugfix">
2261884Sa.suvorov@f5.com<para>
2271861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
2281861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
2291861Svbart@nginx.com</para>
2301861Svbart@nginx.com</change>
2311861Svbart@nginx.com
2321839Svbart@nginx.com</changes>
2331839Svbart@nginx.com
2341839Svbart@nginx.com
2351839Svbart@nginx.com<changes apply="unit-php
2361839Svbart@nginx.com                unit-python unit-python2.7
2371839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2381839Svbart@nginx.com                unit-python3.8 unit-python3.9
2391839Svbart@nginx.com                unit-go
2401839Svbart@nginx.com                unit-perl
2411839Svbart@nginx.com                unit-ruby
2421839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2431839Svbart@nginx.com                unit-jsc14 unit-jsc15"
2441834Svbart@nginx.com         ver="1.23.0" rev="1"
2451834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
2461834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2471834Svbart@nginx.com
2481834Svbart@nginx.com<change>
2491834Svbart@nginx.com<para>
2501834Svbart@nginx.comNGINX Unit updated to 1.23.0.
2511834Svbart@nginx.com</para>
2521834Svbart@nginx.com</change>
2531834Svbart@nginx.com
2541834Svbart@nginx.com</changes>
2551834Svbart@nginx.com
2561834Svbart@nginx.com
2571806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
2581834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
2591806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2601806Svbart@nginx.com
2611825Sthresh@nginx.com<change type="feature">
2621825Sthresh@nginx.com<para>
2631833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
2641828Sa.suvorov@f5.comIndication (SNI) TLS extension.
2651828Sa.suvorov@f5.com</para>
2661828Sa.suvorov@f5.com</change>
2671828Sa.suvorov@f5.com
2681828Sa.suvorov@f5.com<change type="feature">
2691828Sa.suvorov@f5.com<para>
2701833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
2711833Sartem.konev@nginx.cominstallation.
2721825Sthresh@nginx.com</para>
2731825Sthresh@nginx.com</change>
2741825Sthresh@nginx.com
2751811Smax.romanov@nginx.com<change type="bugfix">
2761811Smax.romanov@nginx.com<para>
2771812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
2781812Svbart@nginx.comappeared in 1.17.0.
2791812Svbart@nginx.com</para>
2801812Svbart@nginx.com</change>
2811812Svbart@nginx.com
2821812Svbart@nginx.com<change type="bugfix">
2831812Svbart@nginx.com<para>
2841833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
2851812Svbart@nginx.comappeared in 1.6.
2861812Svbart@nginx.com</para>
2871812Svbart@nginx.com</change>
2881812Svbart@nginx.com
2891812Svbart@nginx.com<change type="bugfix">
2901812Svbart@nginx.com<para>
2911833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
2921832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
2931832Smax.romanov@nginx.com</para>
2941832Smax.romanov@nginx.com</change>
2951832Smax.romanov@nginx.com
2961832Smax.romanov@nginx.com<change type="bugfix">
2971832Smax.romanov@nginx.com<para>
2981833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
2991811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
3001811Smax.romanov@nginx.com</para>
3011811Smax.romanov@nginx.com</change>
3021806Svbart@nginx.com
3031813Svbart@nginx.com<change type="bugfix">
3041813Svbart@nginx.com<para>
3051813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
3061813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
3071813Svbart@nginx.com</para>
3081813Svbart@nginx.com</change>
3091813Svbart@nginx.com
3101814Svbart@nginx.com<change type="bugfix">
3111814Svbart@nginx.com<para>
3121820Svbart@nginx.comthe controller process could crash while requesting information about a
3131820Svbart@nginx.comcertificate with a non-DNS SAN entry.
3141820Svbart@nginx.com</para>
3151820Svbart@nginx.com</change>
3161820Svbart@nginx.com
3171820Svbart@nginx.com<change type="bugfix">
3181820Svbart@nginx.com<para>
3191822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
3201833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
3211822Svbart@nginx.com</para>
3221822Svbart@nginx.com</change>
3231822Svbart@nginx.com
3241822Svbart@nginx.com<change type="bugfix">
3251822Svbart@nginx.com<para>
3261833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
3271833Sartem.konev@nginx.comclass.
3281814Svbart@nginx.com</para>
3291814Svbart@nginx.com</change>
3301814Svbart@nginx.com
3311815Svbart@nginx.com<change type="bugfix">
3321815Svbart@nginx.com<para>
3331815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
3341815Svbart@nginx.comappeared in 1.22.0.
3351815Svbart@nginx.com</para>
3361815Svbart@nginx.com</change>
3371815Svbart@nginx.com
3381806Svbart@nginx.com</changes>
3391806Svbart@nginx.com
3401806Svbart@nginx.com
3411798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
3421798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
3431798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3441798Sdefan@nginx.com
3451798Sdefan@nginx.com<change>
3461798Sdefan@nginx.com<para>
3471798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
3481798Sdefan@nginx.com</para>
3491798Sdefan@nginx.com</change>
3501798Sdefan@nginx.com
3511798Sdefan@nginx.com</changes>
3521798Sdefan@nginx.com
3531798Sdefan@nginx.com
3541763Sdefan@nginx.com<changes apply="unit-php
3551763Sdefan@nginx.com                unit-python unit-python2.7
3561763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3571763Sdefan@nginx.com                unit-python3.8
3581763Sdefan@nginx.com                unit-go
3591763Sdefan@nginx.com                unit-perl
3601763Sdefan@nginx.com                unit-ruby
3611763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3621763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
3631763Sdefan@nginx.com         ver="1.22.0" rev="1"
3641793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
3651763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3661763Sdefan@nginx.com
3671763Sdefan@nginx.com<change>
3681763Sdefan@nginx.com<para>
3691763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
3701763Sdefan@nginx.com</para>
3711763Sdefan@nginx.com</change>
3721763Sdefan@nginx.com
3731763Sdefan@nginx.com</changes>
3741763Sdefan@nginx.com
3751763Sdefan@nginx.com
3761727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
3771793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
3781727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3791727Svbart@nginx.com
3801759Svbart@nginx.com<change type="feature">
3811759Svbart@nginx.com<para>
3821792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
3831792Svbart@nginx.comcompliant with Stream API.
3841759Svbart@nginx.com</para>
3851759Svbart@nginx.com</change>
3861759Svbart@nginx.com
3871766Smax.romanov@nginx.com<change type="feature">
3881766Smax.romanov@nginx.com<para>
3891792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
3901792Svbart@nginx.comapps.
3911732Svbart@nginx.com</para>
3921732Svbart@nginx.com</change>
3931732Svbart@nginx.com
3941733Svbart@nginx.com<change type="bugfix">
3951733Svbart@nginx.com<para>
3961792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
3971792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
3981754Smax.romanov@nginx.com</para>
3991754Smax.romanov@nginx.com</change>
4001754Smax.romanov@nginx.com
4011755Smax.romanov@nginx.com<change type="bugfix">
4021755Smax.romanov@nginx.com<para>
4031790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
4041755Smax.romanov@nginx.comappeared in 1.19.0.
4051755Smax.romanov@nginx.com</para>
4061755Smax.romanov@nginx.com</change>
4071755Smax.romanov@nginx.com
4081756Smax.romanov@nginx.com<change type="bugfix">
4091756Smax.romanov@nginx.com<para>
4101790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
4111790Sartem.konev@nginx.comappeared in 1.19.0.
4121756Smax.romanov@nginx.com</para>
4131756Smax.romanov@nginx.com</change>
4141756Smax.romanov@nginx.com
4151760Smax.romanov@nginx.com<change type="bugfix">
4161760Smax.romanov@nginx.com<para>
4171792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
4181792Svbart@nginx.com</para>
4191792Svbart@nginx.com</change>
4201792Svbart@nginx.com
4211792Svbart@nginx.com<change type="bugfix">
4221792Svbart@nginx.com<para>
4231792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
4241792Svbart@nginx.commissing in the PHP module.
4251792Svbart@nginx.com</para>
4261792Svbart@nginx.com</change>
4271792Svbart@nginx.com
4281792Svbart@nginx.com<change type="bugfix">
4291792Svbart@nginx.com<para>
4301792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
4311792Svbart@nginx.com</para>
4321792Svbart@nginx.com</change>
4331792Svbart@nginx.com
4341792Svbart@nginx.com<change type="bugfix">
4351792Svbart@nginx.com<para>
4361792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
4371792Svbart@nginx.com</para>
4381792Svbart@nginx.com</change>
4391792Svbart@nginx.com
4401792Svbart@nginx.com<change type="bugfix">
4411792Svbart@nginx.com<para>
4421792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
4431792Svbart@nginx.comthe bug had appeared in 1.21.0.
4441760Smax.romanov@nginx.com</para>
4451760Smax.romanov@nginx.com</change>
4461760Smax.romanov@nginx.com
4471780Smax.romanov@nginx.com<change type="bugfix">
4481780Smax.romanov@nginx.com<para>
4491790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
4501790Sartem.konev@nginx.comWebSocket.
4511780Smax.romanov@nginx.com</para>
4521780Smax.romanov@nginx.com</change>
4531780Smax.romanov@nginx.com
4541789Smax.romanov@nginx.com<change type="bugfix">
4551789Smax.romanov@nginx.com<para>
4561789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
4571789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
4581789Smax.romanov@nginx.com</para>
4591789Smax.romanov@nginx.com</change>
4601789Smax.romanov@nginx.com
4611727Svbart@nginx.com</changes>
4621727Svbart@nginx.com
4631727Svbart@nginx.com
4641722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
4651722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
4661722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4671722Svbart@nginx.com
4681722Svbart@nginx.com<change>
4691722Svbart@nginx.com<para>
4701722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
4711722Svbart@nginx.com</para>
4721722Svbart@nginx.com</change>
4731722Svbart@nginx.com
4741722Svbart@nginx.com</changes>
4751722Svbart@nginx.com
4761722Svbart@nginx.com
4771722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
4781722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
4791722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4801722Svbart@nginx.com
4811722Svbart@nginx.com<change>
4821722Svbart@nginx.com<para>
4831722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
4841722Svbart@nginx.com</para>
4851722Svbart@nginx.com</change>
4861722Svbart@nginx.com
4871722Svbart@nginx.com</changes>
4881722Svbart@nginx.com
4891722Svbart@nginx.com
4901722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
4911722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
4921722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4931722Svbart@nginx.com
4941722Svbart@nginx.com<change>
4951722Svbart@nginx.com<para>
4961722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
4971722Svbart@nginx.com</para>
4981722Svbart@nginx.com</change>
4991722Svbart@nginx.com
5001722Svbart@nginx.com</changes>
5011722Svbart@nginx.com
5021722Svbart@nginx.com
5031722Svbart@nginx.com<changes apply="unit-php
5041722Svbart@nginx.com                unit-python unit-python2.7
5051722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5061722Svbart@nginx.com                unit-python3.8
5071722Svbart@nginx.com                unit-go
5081722Svbart@nginx.com                unit-perl
5091722Svbart@nginx.com                unit-ruby
5101722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
5111722Svbart@nginx.com         ver="1.21.0" rev="1"
5121722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5131722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5141722Svbart@nginx.com
5151722Svbart@nginx.com<change>
5161722Svbart@nginx.com<para>
5171722Svbart@nginx.comNGINX Unit updated to 1.21.0.
5181722Svbart@nginx.com</para>
5191722Svbart@nginx.com</change>
5201722Svbart@nginx.com
5211722Svbart@nginx.com</changes>
5221722Svbart@nginx.com
5231722Svbart@nginx.com
5241722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
5251722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5261722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5271722Svbart@nginx.com
5281722Svbart@nginx.com<change type="change">
5291722Svbart@nginx.com<para>
5301722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
5311722Svbart@nginx.com</para>
5321722Svbart@nginx.com</change>
5331722Svbart@nginx.com
5341722Svbart@nginx.com<change type="change">
5351722Svbart@nginx.com<para>
5361722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
5371722Svbart@nginx.comnames.
5381722Svbart@nginx.com</para>
5391722Svbart@nginx.com</change>
5401722Svbart@nginx.com
5411722Svbart@nginx.com<change type="change">
5421722Svbart@nginx.com<para>
5431722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
5441722Svbart@nginx.comdefault.
5451722Svbart@nginx.com</para>
5461722Svbart@nginx.com</change>
5471722Svbart@nginx.com
5481722Svbart@nginx.com<change type="feature">
5491722Svbart@nginx.com<para>
5501722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
5511722Svbart@nginx.com</para>
5521722Svbart@nginx.com</change>
5531722Svbart@nginx.com
5541722Svbart@nginx.com<change type="feature">
5551722Svbart@nginx.com<para>
5561722Svbart@nginx.comregular expressions in route matching patterns.
5571722Svbart@nginx.com</para>
5581722Svbart@nginx.com</change>
5591722Svbart@nginx.com
5601722Svbart@nginx.com<change type="feature">
5611722Svbart@nginx.com<para>
5621722Svbart@nginx.comcompatibility with Python 3.9.
5631722Svbart@nginx.com</para>
5641722Svbart@nginx.com</change>
5651722Svbart@nginx.com
5661722Svbart@nginx.com<change type="feature">
5671722Svbart@nginx.com<para>
5681722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
5691722Svbart@nginx.com</para>
5701722Svbart@nginx.com</change>
5711722Svbart@nginx.com
5721722Svbart@nginx.com<change type="feature">
5731722Svbart@nginx.com<para>
5741722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
5751722Svbart@nginx.com</para>
5761722Svbart@nginx.com</change>
5771722Svbart@nginx.com
5781722Svbart@nginx.com<change type="feature">
5791722Svbart@nginx.com<para>
5801722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
5811722Svbart@nginx.comcontinues code execution without holding onto the client connection.
5821722Svbart@nginx.com</para>
5831722Svbart@nginx.com</change>
5841722Svbart@nginx.com
5851722Svbart@nginx.com<change type="feature">
5861722Svbart@nginx.com<para>
5871722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
5881722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
5891722Svbart@nginx.com</para>
5901722Svbart@nginx.com</change>
5911722Svbart@nginx.com
5921722Svbart@nginx.com<change type="feature">
5931722Svbart@nginx.com<para>
5941722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
5951722Svbart@nginx.commounting of eponymous filesystems.
5961722Svbart@nginx.com</para>
5971722Svbart@nginx.com</change>
5981722Svbart@nginx.com
5991722Svbart@nginx.com<change type="bugfix">
6001722Svbart@nginx.com<para>
6011722Svbart@nginx.comthe router process could crash when running Go applications under high load;
6021722Svbart@nginx.comthe bug had appeared in 1.19.0.
6031722Svbart@nginx.com</para>
6041722Svbart@nginx.com</change>
6051722Svbart@nginx.com
6061722Svbart@nginx.com<change type="bugfix">
6071722Svbart@nginx.com<para>
6081722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
6091722Svbart@nginx.com</para>
6101722Svbart@nginx.com</change>
6111722Svbart@nginx.com
6121722Svbart@nginx.com<change type="bugfix">
6131722Svbart@nginx.com<para>
6141722Svbart@nginx.comvarious compatibility issues in Java applications.
6151722Svbart@nginx.com</para>
6161722Svbart@nginx.com</change>
6171722Svbart@nginx.com
6181722Svbart@nginx.com<change type="bugfix">
6191722Svbart@nginx.com<para>
6201722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
6211722Svbart@nginx.comuse "rootfs" isolation.
6221722Svbart@nginx.com</para>
6231722Svbart@nginx.com</change>
6241722Svbart@nginx.com
6251722Svbart@nginx.com</changes>
6261722Svbart@nginx.com
6271722Svbart@nginx.com
6281330Svbart@nginx.com<changes apply="unit-php
6291330Svbart@nginx.com                unit-python unit-python2.7
6301330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6311330Svbart@nginx.com                unit-python3.8
6321330Svbart@nginx.com                unit-go
6331330Svbart@nginx.com                unit-perl
6341330Svbart@nginx.com                unit-ruby
6351330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
6361640Svbart@nginx.com         ver="1.20.0" rev="1"
6371640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
6381640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6391640Svbart@nginx.com
6401640Svbart@nginx.com<change>
6411640Svbart@nginx.com<para>
6421640Svbart@nginx.comNGINX Unit updated to 1.20.0.
6431640Svbart@nginx.com</para>
6441640Svbart@nginx.com</change>
6451640Svbart@nginx.com
6461640Svbart@nginx.com</changes>
6471640Svbart@nginx.com
6481640Svbart@nginx.com
6491640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
6501640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
6511640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6521640Svbart@nginx.com
6531640Svbart@nginx.com<change type="change">
6541640Svbart@nginx.com<para>
6551640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
6561640Svbart@nginx.comextensions from the host system.
6571640Svbart@nginx.com</para>
6581640Svbart@nginx.com</change>
6591640Svbart@nginx.com
6601640Svbart@nginx.com<change type="change">
6611640Svbart@nginx.com<para>
6621640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
6631640Svbart@nginx.com</para>
6641640Svbart@nginx.com</change>
6651640Svbart@nginx.com
6661643Svbart@nginx.com<change type="change">
6671643Svbart@nginx.com<para>
6681643Svbart@nginx.comfunctional tests migrated to the pytest framework.
6691643Svbart@nginx.com</para>
6701643Svbart@nginx.com</change>
6711643Svbart@nginx.com
6721640Svbart@nginx.com<change type="feature">
6731640Svbart@nginx.com<para>
6741640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
6751640Svbart@nginx.cominterface.
6761640Svbart@nginx.com</para>
6771640Svbart@nginx.com</change>
6781640Svbart@nginx.com
6791640Svbart@nginx.com<change type="feature">
6801640Svbart@nginx.com<para>
6811640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
6821640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
6831640Svbart@nginx.comspecification.
6841640Svbart@nginx.com</para>
6851640Svbart@nginx.com</change>
6861640Svbart@nginx.com
6871640Svbart@nginx.com<change type="feature">
6881640Svbart@nginx.com<para>
6891640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
6901640Svbart@nginx.comenvironments.
6911640Svbart@nginx.com</para>
6921640Svbart@nginx.com</change>
6931640Svbart@nginx.com
6941640Svbart@nginx.com<change type="feature">
6951640Svbart@nginx.com<para>
6961640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
6971640Svbart@nginx.com</para>
6981640Svbart@nginx.com</change>
6991640Svbart@nginx.com
7001640Svbart@nginx.com<change type="feature">
7011640Svbart@nginx.com<para>
7021640Svbart@nginx.comthe "callable" option sets Python application callable names.
7031640Svbart@nginx.com</para>
7041640Svbart@nginx.com</change>
7051640Svbart@nginx.com
7061640Svbart@nginx.com<change type="feature">
7071640Svbart@nginx.com<para>
7081640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
7091640Svbart@nginx.com</para>
7101640Svbart@nginx.com</change>
7111640Svbart@nginx.com
7121640Svbart@nginx.com<change type="feature">
7131640Svbart@nginx.com<para>
7141640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
7151640Svbart@nginx.comautomatic mounting of language module dependencies.
7161640Svbart@nginx.com</para>
7171640Svbart@nginx.com</change>
7181640Svbart@nginx.com
7191640Svbart@nginx.com<change type="bugfix">
7201640Svbart@nginx.com<para>
7211640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
7221640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
7231640Svbart@nginx.com</para>
7241640Svbart@nginx.com</change>
7251640Svbart@nginx.com
7261640Svbart@nginx.com<change type="bugfix">
7271640Svbart@nginx.com<para>
7281640Svbart@nginx.comthe router process could crash during reconfiguration.
7291640Svbart@nginx.com</para>
7301640Svbart@nginx.com</change>
7311640Svbart@nginx.com
7321640Svbart@nginx.com<change type="bugfix">
7331640Svbart@nginx.com<para>
7341640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
7351640Svbart@nginx.com</para>
7361640Svbart@nginx.com</change>
7371640Svbart@nginx.com
7381640Svbart@nginx.com<change type="bugfix">
7391640Svbart@nginx.com<para>
7401640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
7411640Svbart@nginx.comthe bug had appeared in 1.19.0.
7421640Svbart@nginx.com</para>
7431640Svbart@nginx.com</change>
7441640Svbart@nginx.com
7451640Svbart@nginx.com<change type="bugfix">
7461640Svbart@nginx.com<para>
7471640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
7481640Svbart@nginx.comthe bug had appeared in 1.16.0.
7491640Svbart@nginx.com</para>
7501640Svbart@nginx.com</change>
7511640Svbart@nginx.com
7521640Svbart@nginx.com</changes>
7531640Svbart@nginx.com
7541640Svbart@nginx.com
7551640Svbart@nginx.com<changes apply="unit-php
7561640Svbart@nginx.com                unit-python unit-python2.7
7571640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7581640Svbart@nginx.com                unit-python3.8
7591640Svbart@nginx.com                unit-go
7601640Svbart@nginx.com                unit-perl
7611640Svbart@nginx.com                unit-ruby
7621640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
7631570Svbart@nginx.com         ver="1.19.0" rev="1"
7641570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
7651570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7661570Svbart@nginx.com
7671570Svbart@nginx.com<change>
7681570Svbart@nginx.com<para>
7691570Svbart@nginx.comNGINX Unit updated to 1.19.0.
7701570Svbart@nginx.com</para>
7711570Svbart@nginx.com</change>
7721570Svbart@nginx.com
7731570Svbart@nginx.com</changes>
7741570Svbart@nginx.com
7751570Svbart@nginx.com
7761570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1"
7771570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
7781570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7791570Svbart@nginx.com
7801570Svbart@nginx.com<change type="feature">
7811570Svbart@nginx.com<para>
7821570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
7831570Svbart@nginx.comincrease performance, and improve scalability.
7841570Svbart@nginx.com</para>
7851570Svbart@nginx.com</change>
7861570Svbart@nginx.com
7871570Svbart@nginx.com<change type="feature">
7881570Svbart@nginx.com<para>
7891570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns.
7901570Svbart@nginx.com</para>
7911570Svbart@nginx.com</change>
7921570Svbart@nginx.com
7931570Svbart@nginx.com<change type="feature">
7941570Svbart@nginx.com<para>
7951570Svbart@nginx.comchunked transfer encoding in proxy responses.
7961570Svbart@nginx.com</para>
7971570Svbart@nginx.com</change>
7981570Svbart@nginx.com
7991570Svbart@nginx.com<change type="feature">
8001570Svbart@nginx.com<para>
8011570Svbart@nginx.combasic variables support in the "pass" option.
8021570Svbart@nginx.com</para>
8031570Svbart@nginx.com</change>
8041570Svbart@nginx.com
8051570Svbart@nginx.com<change type="feature">
8061570Svbart@nginx.com<para>
8071570Svbart@nginx.comcompatibility with PHP 8 Beta 1.
8081570Svbart@nginx.comThanks to Remi Collet.
8091570Svbart@nginx.com</para>
8101570Svbart@nginx.com</change>
8111570Svbart@nginx.com
8121570Svbart@nginx.com<change type="bugfix">
8131570Svbart@nginx.com<para>
8141570Svbart@nginx.comthe router process could crash while passing requests to an application under
8151570Svbart@nginx.comhigh load.
8161570Svbart@nginx.com</para>
8171570Svbart@nginx.com</change>
8181570Svbart@nginx.com
8191570Svbart@nginx.com<change type="bugfix">
8201570Svbart@nginx.com<para>
8211570Svbart@nginx.coma number of language modules failed to build on some systems;
8221570Svbart@nginx.comthe bug had appeared in 1.18.0.
8231570Svbart@nginx.com</para>
8241570Svbart@nginx.com</change>
8251570Svbart@nginx.com
8261570Svbart@nginx.com<change type="bugfix">
8271570Svbart@nginx.com<para>
8281570Svbart@nginx.comtime in error log messages from PHP applications could lag.
8291570Svbart@nginx.com</para>
8301570Svbart@nginx.com</change>
8311570Svbart@nginx.com
8321570Svbart@nginx.com<change type="bugfix">
8331570Svbart@nginx.com<para>
8341570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start;
8351570Svbart@nginx.comthe bug had appeared in 1.18.0.
8361570Svbart@nginx.com</para>
8371570Svbart@nginx.com</change>
8381570Svbart@nginx.com
8391570Svbart@nginx.com<change type="bugfix">
8401570Svbart@nginx.com<para>
8411570Svbart@nginx.commemory leak during reconfiguration.
8421570Svbart@nginx.com</para>
8431570Svbart@nginx.com</change>
8441570Svbart@nginx.com
8451570Svbart@nginx.com<change type="bugfix">
8461570Svbart@nginx.com<para>
8471570Svbart@nginx.comthe daemon didn't start without language modules;
8481570Svbart@nginx.comthe bug had appeared in 1.18.0.
8491570Svbart@nginx.com</para>
8501570Svbart@nginx.com</change>
8511570Svbart@nginx.com
8521570Svbart@nginx.com<change type="bugfix">
8531570Svbart@nginx.com<para>
8541570Svbart@nginx.comthe router process could crash at exit.
8551570Svbart@nginx.com</para>
8561570Svbart@nginx.com</change>
8571570Svbart@nginx.com
8581570Svbart@nginx.com<change type="bugfix">
8591570Svbart@nginx.com<para>
8601570Svbart@nginx.comNode.js applications could crash at exit.
8611570Svbart@nginx.com</para>
8621570Svbart@nginx.com</change>
8631570Svbart@nginx.com
8641570Svbart@nginx.com<change type="bugfix">
8651570Svbart@nginx.com<para>
8661570Svbart@nginx.comthe Ruby module could be linked against a wrong library version.
8671570Svbart@nginx.com</para>
8681570Svbart@nginx.com</change>
8691570Svbart@nginx.com
8701570Svbart@nginx.com</changes>
8711570Svbart@nginx.com
8721570Svbart@nginx.com
8731570Svbart@nginx.com<changes apply="unit-php
8741570Svbart@nginx.com                unit-python unit-python2.7
8751570Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8761570Svbart@nginx.com                unit-python3.8
8771570Svbart@nginx.com                unit-go
8781570Svbart@nginx.com                unit-perl
8791570Svbart@nginx.com                unit-ruby
8801570Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8811491Svbart@nginx.com         ver="1.18.0" rev="1"
8821491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
8831491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8841491Svbart@nginx.com
8851491Svbart@nginx.com<change>
8861491Svbart@nginx.com<para>
8871491Svbart@nginx.comNGINX Unit updated to 1.18.0.
8881491Svbart@nginx.com</para>
8891491Svbart@nginx.com</change>
8901491Svbart@nginx.com
8911491Svbart@nginx.com</changes>
8921491Svbart@nginx.com
8931491Svbart@nginx.com
8941491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1"
8951491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
8961491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8971491Svbart@nginx.com
8981491Svbart@nginx.com<change type="feature">
8991491Svbart@nginx.com<para>
9001491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application.
9011491Svbart@nginx.com</para>
9021491Svbart@nginx.com</change>
9031491Svbart@nginx.com
9041491Svbart@nginx.com<change type="feature">
9051491Svbart@nginx.com<para>
9061491Svbart@nginx.commultiple "targets" in PHP applications.
9071491Svbart@nginx.com</para>
9081491Svbart@nginx.com</change>
9091491Svbart@nginx.com
9101491Svbart@nginx.com<change type="feature">
9111491Svbart@nginx.com<para>
9121491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options
9131491Svbart@nginx.comand in the "pass" option.
9141491Svbart@nginx.com</para>
9151491Svbart@nginx.com</change>
9161491Svbart@nginx.com
9171491Svbart@nginx.com</changes>
9181491Svbart@nginx.com
9191491Svbart@nginx.com
9201491Svbart@nginx.com<changes apply="unit-php
9211491Svbart@nginx.com                unit-python unit-python2.7
9221491Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9231491Svbart@nginx.com                unit-python3.8
9241491Svbart@nginx.com                unit-go
9251491Svbart@nginx.com                unit-perl
9261491Svbart@nginx.com                unit-ruby
9271491Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9281460Svbart@nginx.com         ver="1.17.0" rev="1"
9291460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
9301460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9311460Svbart@nginx.com
9321460Svbart@nginx.com<change>
9331460Svbart@nginx.com<para>
9341460Svbart@nginx.comNGINX Unit updated to 1.17.0.
9351460Svbart@nginx.com</para>
9361460Svbart@nginx.com</change>
9371460Svbart@nginx.com
9381460Svbart@nginx.com</changes>
9391460Svbart@nginx.com
9401460Svbart@nginx.com
9411460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1"
9421460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
9431460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9441460Svbart@nginx.com
9451460Svbart@nginx.com<change type="feature">
9461460Svbart@nginx.com<para>
9471460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external
9481460Svbart@nginx.comredirection.
9491460Svbart@nginx.com</para>
9501460Svbart@nginx.com</change>
9511460Svbart@nginx.com
9521460Svbart@nginx.com<change type="feature">
9531460Svbart@nginx.com<para>
9541460Svbart@nginx.comfractional weights support for upstream servers.
9551460Svbart@nginx.com</para>
9561460Svbart@nginx.com</change>
9571460Svbart@nginx.com
9581460Svbart@nginx.com<change type="bugfix">
9591460Svbart@nginx.com<para>
9601460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under
9611460Svbart@nginx.comhigh load.
9621460Svbart@nginx.com</para>
9631460Svbart@nginx.com</change>
9641460Svbart@nginx.com
9651460Svbart@nginx.com<change type="bugfix">
9661460Svbart@nginx.com<para>
9671460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0.
9681460Svbart@nginx.com</para>
9691460Svbart@nginx.com</change>
9701460Svbart@nginx.com
9711460Svbart@nginx.com<change type="bugfix">
9721460Svbart@nginx.com<para>
9731460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching
9741460Svbart@nginx.comopen connections limit.
9751460Svbart@nginx.com</para>
9761460Svbart@nginx.com</change>
9771460Svbart@nginx.com
9781460Svbart@nginx.com<change type="bugfix">
9791460Svbart@nginx.com<para>
9801460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log
9811460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0.
9821460Svbart@nginx.com</para>
9831460Svbart@nginx.com</change>
9841460Svbart@nginx.com
9851460Svbart@nginx.com<change type="bugfix">
9861460Svbart@nginx.com<para>
9871460Svbart@nginx.comexisting application processes didn't reopen the log file.
9881460Svbart@nginx.com</para>
9891460Svbart@nginx.com</change>
9901460Svbart@nginx.com
9911460Svbart@nginx.com<change type="bugfix">
9921460Svbart@nginx.com<para>
9931460Svbart@nginx.comincompatibility with some Node.js applications.
9941460Svbart@nginx.com</para>
9951460Svbart@nginx.com</change>
9961460Svbart@nginx.com
9971460Svbart@nginx.com<change type="bugfix">
9981460Svbart@nginx.com<para>
9991460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0.
10001460Svbart@nginx.com</para>
10011460Svbart@nginx.com</change>
10021460Svbart@nginx.com
10031460Svbart@nginx.com</changes>
10041460Svbart@nginx.com
10051460Svbart@nginx.com
10061460Svbart@nginx.com<changes apply="unit-php
10071460Svbart@nginx.com                unit-python unit-python2.7
10081460Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10091460Svbart@nginx.com                unit-python3.8
10101460Svbart@nginx.com                unit-go
10111460Svbart@nginx.com                unit-perl
10121460Svbart@nginx.com                unit-ruby
10131460Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10141404Svbart@nginx.com         ver="1.16.0" rev="1"
10151404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
10161404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10171404Svbart@nginx.com
10181404Svbart@nginx.com<change>
10191404Svbart@nginx.com<para>
10201404Svbart@nginx.comNGINX Unit updated to 1.16.0.
10211404Svbart@nginx.com</para>
10221404Svbart@nginx.com</change>
10231404Svbart@nginx.com
10241404Svbart@nginx.com</changes>
10251404Svbart@nginx.com
10261404Svbart@nginx.com
10271404Svbart@nginx.com<changes apply="unit" ver="1.16.0" rev="1"
10281404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
10291404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10301404Svbart@nginx.com
10311404Svbart@nginx.com<change type="feature">
10321404Svbart@nginx.com<para>
10331404Svbart@nginx.combasic load-balancing support with round-robin.
10341404Svbart@nginx.com</para>
10351404Svbart@nginx.com</change>
10361404Svbart@nginx.com
10371404Svbart@nginx.com<change type="feature">
10381404Svbart@nginx.com<para>
10391404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be
10401404Svbart@nginx.comserved from the "share" directory.
10411404Svbart@nginx.com</para>
10421404Svbart@nginx.com</change>
10431404Svbart@nginx.com
10441404Svbart@nginx.com<change type="feature">
10451404Svbart@nginx.com<para>
10461404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk.
10471404Svbart@nginx.com</para>
10481404Svbart@nginx.com</change>
10491404Svbart@nginx.com
10501404Svbart@nginx.com<change type="feature">
10511404Svbart@nginx.com<para>
10521404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON.
10531404Svbart@nginx.com</para>
10541404Svbart@nginx.com</change>
10551404Svbart@nginx.com
10561404Svbart@nginx.com<change type="bugfix">
10571404Svbart@nginx.com<para>
10581404Svbart@nginx.comnegative address matching in router might work improperly in combination with
10591404Svbart@nginx.comnon-negative patterns.
10601404Svbart@nginx.com</para>
10611404Svbart@nginx.com</change>
10621404Svbart@nginx.com
10631404Svbart@nginx.com<change type="bugfix">
10641404Svbart@nginx.com<para>
10651404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0.
10661404Svbart@nginx.com</para>
10671404Svbart@nginx.com</change>
10681404Svbart@nginx.com
10691404Svbart@nginx.com<change type="bugfix">
10701404Svbart@nginx.com<para>
10711404Svbart@nginx.comPHP 7.4 was broken if it was built with thread safety enabled.
10721404Svbart@nginx.com</para>
10731404Svbart@nginx.com</change>
10741404Svbart@nginx.com
10751404Svbart@nginx.com<change type="bugfix">
10761404Svbart@nginx.com<para>
10771404Svbart@nginx.comcompatibility issues with some Python applications.
10781404Svbart@nginx.com</para>
10791404Svbart@nginx.com</change>
10801404Svbart@nginx.com
10811404Svbart@nginx.com</changes>
10821404Svbart@nginx.com
10831404Svbart@nginx.com
10841404Svbart@nginx.com<changes apply="unit-php
10851404Svbart@nginx.com                unit-python unit-python2.7
10861404Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10871404Svbart@nginx.com                unit-python3.8
10881404Svbart@nginx.com                unit-go
10891404Svbart@nginx.com                unit-perl
10901404Svbart@nginx.com                unit-ruby
10911404Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10921357Svbart@nginx.com         ver="1.15.0" rev="1"
10931357Svbart@nginx.com         date="2020-02-06" time="18:00:00 +0300"
10941357Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10951357Svbart@nginx.com
10961357Svbart@nginx.com<change>
10971357Svbart@nginx.com<para>
10981357Svbart@nginx.comNGINX Unit updated to 1.15.0.
10991357Svbart@nginx.com</para>
11001357Svbart@nginx.com</change>
11011357Svbart@nginx.com
11021357Svbart@nginx.com</changes>
11031357Svbart@nginx.com
11041357Svbart@nginx.com
11051357Svbart@nginx.com<changes apply="unit" ver="1.15.0" rev="1"
11061357Svbart@nginx.com         date="2020-02-06" time="18:00:00 +0300"
11071357Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11081357Svbart@nginx.com
11091357Svbart@nginx.com<change type="change">
11101357Svbart@nginx.com<para>
11111357Svbart@nginx.comextensions of dynamically requested PHP scripts were restricted to ".php".
11121357Svbart@nginx.com</para>
11131357Svbart@nginx.com</change>
11141357Svbart@nginx.com
11151357Svbart@nginx.com<change type="feature">
11161357Svbart@nginx.com<para>
11171357Svbart@nginx.comcompatibility with Ruby 2.7.
11181357Svbart@nginx.com</para>
11191357Svbart@nginx.com</change>
11201357Svbart@nginx.com
11211357Svbart@nginx.com<change type="bugfix">
11221357Svbart@nginx.com<para>
11231357Svbart@nginx.comsegmentation fault might have occurred in the router process with multiple
11241357Svbart@nginx.comapplication processes under load; the bug had appeared in 1.14.0.
11251357Svbart@nginx.com</para>
11261357Svbart@nginx.com</change>
11271357Svbart@nginx.com
11281357Svbart@nginx.com<change type="bugfix">
11291357Svbart@nginx.com<para>
11301357Svbart@nginx.comreceiving request body over TLS connection might have stalled.
11311357Svbart@nginx.com</para>
11321357Svbart@nginx.com</change>
11331357Svbart@nginx.com
11341357Svbart@nginx.com</changes>
11351357Svbart@nginx.com
11361357Svbart@nginx.com
11371357Svbart@nginx.com<changes apply="unit-php
11381357Svbart@nginx.com                unit-python unit-python2.7
11391357Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11401357Svbart@nginx.com                unit-python3.8
11411357Svbart@nginx.com                unit-go
11421357Svbart@nginx.com                unit-perl
11431357Svbart@nginx.com                unit-ruby
11441357Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11451330Svbart@nginx.com         ver="1.14.0" rev="1"
11461330Svbart@nginx.com         date="2019-12-26" time="18:00:00 +0300"
11471330Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11481330Svbart@nginx.com
11491330Svbart@nginx.com<change>
11501330Svbart@nginx.com<para>
11511330Svbart@nginx.comNGINX Unit updated to 1.14.0.
11521330Svbart@nginx.com</para>
11531330Svbart@nginx.com</change>
11541330Svbart@nginx.com
11551330Svbart@nginx.com</changes>
11561330Svbart@nginx.com
11571330Svbart@nginx.com
11581330Svbart@nginx.com<changes apply="unit" ver="1.14.0" rev="1"
11591330Svbart@nginx.com         date="2019-12-26" time="18:00:00 +0300"
11601330Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11611330Svbart@nginx.com
11621330Svbart@nginx.com<change type="change">
11631330Svbart@nginx.com<para>
11641330Svbart@nginx.comthe Go package import name changed to "unit.nginx.org/go".
11651330Svbart@nginx.com</para>
11661330Svbart@nginx.com</change>
11671330Svbart@nginx.com
11681330Svbart@nginx.com<change type="change">
11691330Svbart@nginx.com<para>
11701330Svbart@nginx.comGo package now links to libunit instead of including library sources.
11711330Svbart@nginx.com</para>
11721330Svbart@nginx.com</change>
11731330Svbart@nginx.com
11741330Svbart@nginx.com<change type="feature">
11751330Svbart@nginx.com<para>
11761330Svbart@nginx.comability to change user and group for isolated applications when Unit daemon
11771330Svbart@nginx.comruns as an unprivileged user.
11781330Svbart@nginx.com</para>
11791330Svbart@nginx.com</change>
11801330Svbart@nginx.com
11811330Svbart@nginx.com<change type="feature">
11821330Svbart@nginx.com<para>
11831330Svbart@nginx.comrequest routing by source and destination addresses and ports.
11841330Svbart@nginx.com</para>
11851330Svbart@nginx.com</change>
11861330Svbart@nginx.com
11871330Svbart@nginx.com<change type="bugfix">
11881330Svbart@nginx.com<para>
11891330Svbart@nginx.commemory bloat on large responses.
11901330Svbart@nginx.com</para>
11911330Svbart@nginx.com</change>
11921330Svbart@nginx.com
11931330Svbart@nginx.com</changes>
11941330Svbart@nginx.com
11951330Svbart@nginx.com
11961290Sdefan@nginx.com<changes apply="unit-go1.13" ver="1.13.0" rev="1"
11971290Sdefan@nginx.com         date="2019-11-20" time="09:00:00 +0300"
11981290Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11991290Sdefan@nginx.com
12001290Sdefan@nginx.com<change>
12011290Sdefan@nginx.com<para>
12021290