xref: /unit/docs/changes.xml (revision 1951)
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"
17*1951Svbart@nginx.com         ver="1.26.0" rev="1"
18*1951Svbart@nginx.com         date="" time=""
19*1951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
20*1951Svbart@nginx.com
21*1951Svbart@nginx.com<change>
22*1951Svbart@nginx.com<para>
23*1951Svbart@nginx.comNGINX Unit updated to 1.26.0.
24*1951Svbart@nginx.com</para>
25*1951Svbart@nginx.com</change>
26*1951Svbart@nginx.com
27*1951Svbart@nginx.com</changes>
28*1951Svbart@nginx.com
29*1951Svbart@nginx.com
30*1951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
31*1951Svbart@nginx.com         date="" time=""
32*1951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
33*1951Svbart@nginx.com
34*1951Svbart@nginx.com</changes>
35*1951Svbart@nginx.com
36*1951Svbart@nginx.com
37*1951Svbart@nginx.com<changes apply="unit-php
38*1951Svbart@nginx.com                unit-python unit-python2.7
39*1951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
40*1951Svbart@nginx.com                unit-python3.8 unit-python3.9
41*1951Svbart@nginx.com                unit-go
42*1951Svbart@nginx.com                unit-perl
43*1951Svbart@nginx.com                unit-ruby
44*1951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
45*1951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
461896Svbart@nginx.com         ver="1.25.0" rev="1"
471945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
481896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
491896Svbart@nginx.com
501896Svbart@nginx.com<change>
511896Svbart@nginx.com<para>
521896Svbart@nginx.comNGINX Unit updated to 1.25.0.
531896Svbart@nginx.com</para>
541896Svbart@nginx.com</change>
551896Svbart@nginx.com
561896Svbart@nginx.com</changes>
571896Svbart@nginx.com
581896Svbart@nginx.com
591896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
601945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
611896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
621896Svbart@nginx.com
631910So.canty@f5.com<change type="feature">
641910So.canty@f5.com<para>
651944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
661942Sa.suvorov@f5.com</para>
671942Sa.suvorov@f5.com</change>
681942Sa.suvorov@f5.com
691942Sa.suvorov@f5.com<change type="feature">
701942Sa.suvorov@f5.com<para>
711920Sa.suvorov@f5.comTLS sessions cache.
721920Sa.suvorov@f5.com</para>
731920Sa.suvorov@f5.com</change>
741920Sa.suvorov@f5.com
751920Sa.suvorov@f5.com<change type="feature">
761920Sa.suvorov@f5.com<para>
771944Svbart@nginx.comTLS session tickets.
781910So.canty@f5.com</para>
791910So.canty@f5.com</change>
801910So.canty@f5.com
811926Smax.romanov@nginx.com<change type="feature">
821926Smax.romanov@nginx.com<para>
831926Smax.romanov@nginx.comapplication restart control.
841926Smax.romanov@nginx.com</para>
851926Smax.romanov@nginx.com</change>
861926Smax.romanov@nginx.com
871936So.canty@f5.com<change type="feature">
881936So.canty@f5.com<para>
891944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
901936So.canty@f5.com</para>
911936So.canty@f5.com</change>
921936So.canty@f5.com
931907Smax.romanov@nginx.com<change type="bugfix">
941907Smax.romanov@nginx.com<para>
951944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
961944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
971921Sa.suvorov@f5.com</para>
981921Sa.suvorov@f5.com</change>
991921Sa.suvorov@f5.com
1001921Sa.suvorov@f5.com<change type="bugfix">
1011921Sa.suvorov@f5.com<para>
1021944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
1031944Svbart@nginx.combundles in a listener if the client did not use SNI.
1041907Smax.romanov@nginx.com</para>
1051907Smax.romanov@nginx.com</change>
1061907Smax.romanov@nginx.com
1071907Smax.romanov@nginx.com<change type="bugfix">
1081907Smax.romanov@nginx.com<para>
1091950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
1101915Smax.romanov@nginx.comreconfiguration.
1111915Smax.romanov@nginx.com</para>
1121915Smax.romanov@nginx.com</change>
1131915Smax.romanov@nginx.com
1141915Smax.romanov@nginx.com<change type="bugfix">
1151915Smax.romanov@nginx.com<para>
1161944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
1171944Svbart@nginx.comframework.
1181944Svbart@nginx.com</para>
1191944Svbart@nginx.com</change>
1201944Svbart@nginx.com
1211944Svbart@nginx.com<change type="bugfix">
1221944Svbart@nginx.com<para>
1231944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
1241944Svbart@nginx.comstopped or crashed.
1251907Smax.romanov@nginx.com</para>
1261907Smax.romanov@nginx.com</change>
1271907Smax.romanov@nginx.com
1281909So.canty@f5.com<change type="bugfix">
1291909So.canty@f5.com<para>
1301909So.canty@f5.comthe controller or router process could crash if the configuration contained
1311909So.canty@f5.coma full-form IPv6 in a listener address.
1321909So.canty@f5.com</para>
1331909So.canty@f5.com</change>
1341909So.canty@f5.com
1351916Smax.romanov@nginx.com<change type="bugfix">
1361916Smax.romanov@nginx.com<para>
1371929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
1381929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
1391929Sz.hong@f5.com</para>
1401929Sz.hong@f5.com</change>
1411929Sz.hong@f5.com
1421930So.canty@f5.com<change type="bugfix">
1431930So.canty@f5.com<para>
1441944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
1451944Svbart@nginx.comor destination address patterns.
1461930So.canty@f5.com</para>
1471930So.canty@f5.com</change>
1481930So.canty@f5.com
1491896Svbart@nginx.com</changes>
1501896Svbart@nginx.com
1511896Svbart@nginx.com
1521887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
1531891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
1541887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1551887Sdefan@nginx.com
1561887Sdefan@nginx.com<change>
1571887Sdefan@nginx.com<para>
1581887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
1591887Sdefan@nginx.com</para>
1601887Sdefan@nginx.com</change>
1611887Sdefan@nginx.com
1621887Sdefan@nginx.com</changes>
1631887Sdefan@nginx.com
1641887Sdefan@nginx.com
1651887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
1661891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
1671887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1681887Sdefan@nginx.com
1691887Sdefan@nginx.com<change>
1701887Sdefan@nginx.com<para>
1711887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
1721887Sdefan@nginx.com</para>
1731887Sdefan@nginx.com</change>
1741887Sdefan@nginx.com
1751887Sdefan@nginx.com</changes>
1761887Sdefan@nginx.com
1771887Sdefan@nginx.com
1781834Svbart@nginx.com<changes apply="unit-php
1791834Svbart@nginx.com                unit-python unit-python2.7
1801834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1811834Svbart@nginx.com                unit-python3.8 unit-python3.9
1821834Svbart@nginx.com                unit-go
1831834Svbart@nginx.com                unit-perl
1841834Svbart@nginx.com                unit-ruby
1851834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1861834Svbart@nginx.com                unit-jsc14 unit-jsc15"
1871839Svbart@nginx.com         ver="1.24.0" rev="1"
1881891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
1891839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1901839Svbart@nginx.com
1911839Svbart@nginx.com<change>
1921839Svbart@nginx.com<para>
1931839Svbart@nginx.comNGINX Unit updated to 1.24.0.
1941839Svbart@nginx.com</para>
1951839Svbart@nginx.com</change>
1961839Svbart@nginx.com
1971839Svbart@nginx.com</changes>
1981839Svbart@nginx.com
1991839Svbart@nginx.com
2001839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
2011891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2021839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2031839Svbart@nginx.com
2041882So.canty@f5.com<change type="change">
2051882So.canty@f5.com<para>
2061882So.canty@f5.comPHP added to the default MIME type list.
2071882So.canty@f5.com</para>
2081882So.canty@f5.com</change>
2091882So.canty@f5.com
2101855Sz.hong@f5.com<change type="feature">
2111855Sz.hong@f5.com<para>
2121885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
2131885Sa.suvorov@f5.com</para>
2141885Sa.suvorov@f5.com</change>
2151885Sa.suvorov@f5.com
2161885Sa.suvorov@f5.com<change type="feature">
2171885Sa.suvorov@f5.com<para>
2181890Svbart@nginx.comthe ability to limit static file serving by MIME types.
2191890Svbart@nginx.com</para>
2201890Svbart@nginx.com</change>
2211890Svbart@nginx.com
2221890Svbart@nginx.com<change type="feature">
2231890Svbart@nginx.com<para>
2241890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
2251890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
2261872So.canty@f5.com</para>
2271872So.canty@f5.com</change>
2281872So.canty@f5.com
2291872So.canty@f5.com<change type="feature">
2301872So.canty@f5.com<para>
2311889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
2321889Sartem.konev@nginx.comNode.js.
2331865So.canty@f5.com</para>
2341865So.canty@f5.com</change>
2351865So.canty@f5.com
2361865So.canty@f5.com<change type="feature">
2371865So.canty@f5.com<para>
2381890Svbart@nginx.commultiple "targets" in Python applications.
2391855Sz.hong@f5.com</para>
2401855Sz.hong@f5.com</change>
2411855Sz.hong@f5.com
2421870So.canty@f5.com<change type="feature">
2431870So.canty@f5.com<para>
2441870So.canty@f5.comcompatibility with Ruby 3.0.
2451870So.canty@f5.com</para>
2461870So.canty@f5.com</change>
2471870So.canty@f5.com
2481861Svbart@nginx.com<change type="bugfix">
2491861Svbart@nginx.com<para>
2501889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
2511884Sa.suvorov@f5.com</para>
2521884Sa.suvorov@f5.com</change>
2531884Sa.suvorov@f5.com
2541884Sa.suvorov@f5.com<change type="bugfix">
2551884Sa.suvorov@f5.com<para>
2561861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
2571861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
2581861Svbart@nginx.com</para>
2591861Svbart@nginx.com</change>
2601861Svbart@nginx.com
2611839Svbart@nginx.com</changes>
2621839Svbart@nginx.com
2631839Svbart@nginx.com
2641839Svbart@nginx.com<changes apply="unit-php
2651839Svbart@nginx.com                unit-python unit-python2.7
2661839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2671839Svbart@nginx.com                unit-python3.8 unit-python3.9
2681839Svbart@nginx.com                unit-go
2691839Svbart@nginx.com                unit-perl
2701839Svbart@nginx.com                unit-ruby
2711839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2721839Svbart@nginx.com                unit-jsc14 unit-jsc15"
2731834Svbart@nginx.com         ver="1.23.0" rev="1"
2741834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
2751834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2761834Svbart@nginx.com
2771834Svbart@nginx.com<change>
2781834Svbart@nginx.com<para>
2791834Svbart@nginx.comNGINX Unit updated to 1.23.0.
2801834Svbart@nginx.com</para>
2811834Svbart@nginx.com</change>
2821834Svbart@nginx.com
2831834Svbart@nginx.com</changes>
2841834Svbart@nginx.com
2851834Svbart@nginx.com
2861806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
2871834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
2881806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2891806Svbart@nginx.com
2901825Sthresh@nginx.com<change type="feature">
2911825Sthresh@nginx.com<para>
2921833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
2931828Sa.suvorov@f5.comIndication (SNI) TLS extension.
2941828Sa.suvorov@f5.com</para>
2951828Sa.suvorov@f5.com</change>
2961828Sa.suvorov@f5.com
2971828Sa.suvorov@f5.com<change type="feature">
2981828Sa.suvorov@f5.com<para>
2991833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
3001833Sartem.konev@nginx.cominstallation.
3011825Sthresh@nginx.com</para>
3021825Sthresh@nginx.com</change>
3031825Sthresh@nginx.com
3041811Smax.romanov@nginx.com<change type="bugfix">
3051811Smax.romanov@nginx.com<para>
3061812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
3071812Svbart@nginx.comappeared in 1.17.0.
3081812Svbart@nginx.com</para>
3091812Svbart@nginx.com</change>
3101812Svbart@nginx.com
3111812Svbart@nginx.com<change type="bugfix">
3121812Svbart@nginx.com<para>
3131833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
3141812Svbart@nginx.comappeared in 1.6.
3151812Svbart@nginx.com</para>
3161812Svbart@nginx.com</change>
3171812Svbart@nginx.com
3181812Svbart@nginx.com<change type="bugfix">
3191812Svbart@nginx.com<para>
3201833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
3211832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
3221832Smax.romanov@nginx.com</para>
3231832Smax.romanov@nginx.com</change>
3241832Smax.romanov@nginx.com
3251832Smax.romanov@nginx.com<change type="bugfix">
3261832Smax.romanov@nginx.com<para>
3271833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
3281811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
3291811Smax.romanov@nginx.com</para>
3301811Smax.romanov@nginx.com</change>
3311806Svbart@nginx.com
3321813Svbart@nginx.com<change type="bugfix">
3331813Svbart@nginx.com<para>
3341813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
3351813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
3361813Svbart@nginx.com</para>
3371813Svbart@nginx.com</change>
3381813Svbart@nginx.com
3391814Svbart@nginx.com<change type="bugfix">
3401814Svbart@nginx.com<para>
3411820Svbart@nginx.comthe controller process could crash while requesting information about a
3421820Svbart@nginx.comcertificate with a non-DNS SAN entry.
3431820Svbart@nginx.com</para>
3441820Svbart@nginx.com</change>
3451820Svbart@nginx.com
3461820Svbart@nginx.com<change type="bugfix">
3471820Svbart@nginx.com<para>
3481822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
3491833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
3501822Svbart@nginx.com</para>
3511822Svbart@nginx.com</change>
3521822Svbart@nginx.com
3531822Svbart@nginx.com<change type="bugfix">
3541822Svbart@nginx.com<para>
3551833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
3561833Sartem.konev@nginx.comclass.
3571814Svbart@nginx.com</para>
3581814Svbart@nginx.com</change>
3591814Svbart@nginx.com
3601815Svbart@nginx.com<change type="bugfix">
3611815Svbart@nginx.com<para>
3621815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
3631815Svbart@nginx.comappeared in 1.22.0.
3641815Svbart@nginx.com</para>
3651815Svbart@nginx.com</change>
3661815Svbart@nginx.com
3671806Svbart@nginx.com</changes>
3681806Svbart@nginx.com
3691806Svbart@nginx.com
3701798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
3711798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
3721798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3731798Sdefan@nginx.com
3741798Sdefan@nginx.com<change>
3751798Sdefan@nginx.com<para>
3761798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
3771798Sdefan@nginx.com</para>
3781798Sdefan@nginx.com</change>
3791798Sdefan@nginx.com
3801798Sdefan@nginx.com</changes>
3811798Sdefan@nginx.com
3821798Sdefan@nginx.com
3831763Sdefan@nginx.com<changes apply="unit-php
3841763Sdefan@nginx.com                unit-python unit-python2.7
3851763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3861763Sdefan@nginx.com                unit-python3.8
3871763Sdefan@nginx.com                unit-go
3881763Sdefan@nginx.com                unit-perl
3891763Sdefan@nginx.com                unit-ruby
3901763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3911763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
3921763Sdefan@nginx.com         ver="1.22.0" rev="1"
3931793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
3941763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3951763Sdefan@nginx.com
3961763Sdefan@nginx.com<change>
3971763Sdefan@nginx.com<para>
3981763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
3991763Sdefan@nginx.com</para>
4001763Sdefan@nginx.com</change>
4011763Sdefan@nginx.com
4021763Sdefan@nginx.com</changes>
4031763Sdefan@nginx.com
4041763Sdefan@nginx.com
4051727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
4061793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
4071727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4081727Svbart@nginx.com
4091759Svbart@nginx.com<change type="feature">
4101759Svbart@nginx.com<para>
4111792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
4121792Svbart@nginx.comcompliant with Stream API.
4131759Svbart@nginx.com</para>
4141759Svbart@nginx.com</change>
4151759Svbart@nginx.com
4161766Smax.romanov@nginx.com<change type="feature">
4171766Smax.romanov@nginx.com<para>
4181792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
4191792Svbart@nginx.comapps.
4201732Svbart@nginx.com</para>
4211732Svbart@nginx.com</change>
4221732Svbart@nginx.com
4231733Svbart@nginx.com<change type="bugfix">
4241733Svbart@nginx.com<para>
4251792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
4261792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
4271754Smax.romanov@nginx.com</para>
4281754Smax.romanov@nginx.com</change>
4291754Smax.romanov@nginx.com
4301755Smax.romanov@nginx.com<change type="bugfix">
4311755Smax.romanov@nginx.com<para>
4321790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
4331755Smax.romanov@nginx.comappeared in 1.19.0.
4341755Smax.romanov@nginx.com</para>
4351755Smax.romanov@nginx.com</change>
4361755Smax.romanov@nginx.com
4371756Smax.romanov@nginx.com<change type="bugfix">
4381756Smax.romanov@nginx.com<para>
4391790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
4401790Sartem.konev@nginx.comappeared in 1.19.0.
4411756Smax.romanov@nginx.com</para>
4421756Smax.romanov@nginx.com</change>
4431756Smax.romanov@nginx.com
4441760Smax.romanov@nginx.com<change type="bugfix">
4451760Smax.romanov@nginx.com<para>
4461792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
4471792Svbart@nginx.com</para>
4481792Svbart@nginx.com</change>
4491792Svbart@nginx.com
4501792Svbart@nginx.com<change type="bugfix">
4511792Svbart@nginx.com<para>
4521792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
4531792Svbart@nginx.commissing in the PHP module.
4541792Svbart@nginx.com</para>
4551792Svbart@nginx.com</change>
4561792Svbart@nginx.com
4571792Svbart@nginx.com<change type="bugfix">
4581792Svbart@nginx.com<para>
4591792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
4601792Svbart@nginx.com</para>
4611792Svbart@nginx.com</change>
4621792Svbart@nginx.com
4631792Svbart@nginx.com<change type="bugfix">
4641792Svbart@nginx.com<para>
4651792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
4661792Svbart@nginx.com</para>
4671792Svbart@nginx.com</change>
4681792Svbart@nginx.com
4691792Svbart@nginx.com<change type="bugfix">
4701792Svbart@nginx.com<para>
4711792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
4721792Svbart@nginx.comthe bug had appeared in 1.21.0.
4731760Smax.romanov@nginx.com</para>
4741760Smax.romanov@nginx.com</change>
4751760Smax.romanov@nginx.com
4761780Smax.romanov@nginx.com<change type="bugfix">
4771780Smax.romanov@nginx.com<para>
4781790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
4791790Sartem.konev@nginx.comWebSocket.
4801780Smax.romanov@nginx.com</para>
4811780Smax.romanov@nginx.com</change>
4821780Smax.romanov@nginx.com
4831789Smax.romanov@nginx.com<change type="bugfix">
4841789Smax.romanov@nginx.com<para>
4851789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
4861789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
4871789Smax.romanov@nginx.com</para>
4881789Smax.romanov@nginx.com</change>
4891789Smax.romanov@nginx.com
4901727Svbart@nginx.com</changes>
4911727Svbart@nginx.com
4921727Svbart@nginx.com
4931722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
4941722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
4951722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4961722Svbart@nginx.com
4971722Svbart@nginx.com<change>
4981722Svbart@nginx.com<para>
4991722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
5001722Svbart@nginx.com</para>
5011722Svbart@nginx.com</change>
5021722Svbart@nginx.com
5031722Svbart@nginx.com</changes>
5041722Svbart@nginx.com
5051722Svbart@nginx.com
5061722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
5071722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5081722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5091722Svbart@nginx.com
5101722Svbart@nginx.com<change>
5111722Svbart@nginx.com<para>
5121722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
5131722Svbart@nginx.com</para>
5141722Svbart@nginx.com</change>
5151722Svbart@nginx.com
5161722Svbart@nginx.com</changes>
5171722Svbart@nginx.com
5181722Svbart@nginx.com
5191722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
5201722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5211722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5221722Svbart@nginx.com
5231722Svbart@nginx.com<change>
5241722Svbart@nginx.com<para>
5251722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
5261722Svbart@nginx.com</para>
5271722Svbart@nginx.com</change>
5281722Svbart@nginx.com
5291722Svbart@nginx.com</changes>
5301722Svbart@nginx.com
5311722Svbart@nginx.com
5321722Svbart@nginx.com<changes apply="unit-php
5331722Svbart@nginx.com                unit-python unit-python2.7
5341722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5351722Svbart@nginx.com                unit-python3.8
5361722Svbart@nginx.com                unit-go
5371722Svbart@nginx.com                unit-perl
5381722Svbart@nginx.com                unit-ruby
5391722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
5401722Svbart@nginx.com         ver="1.21.0" rev="1"
5411722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5421722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5431722Svbart@nginx.com
5441722Svbart@nginx.com<change>
5451722Svbart@nginx.com<para>
5461722Svbart@nginx.comNGINX Unit updated to 1.21.0.
5471722Svbart@nginx.com</para>
5481722Svbart@nginx.com</change>
5491722Svbart@nginx.com
5501722Svbart@nginx.com</changes>
5511722Svbart@nginx.com
5521722Svbart@nginx.com
5531722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
5541722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5551722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5561722Svbart@nginx.com
5571722Svbart@nginx.com<change type="change">
5581722Svbart@nginx.com<para>
5591722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
5601722Svbart@nginx.com</para>
5611722Svbart@nginx.com</change>
5621722Svbart@nginx.com
5631722Svbart@nginx.com<change type="change">
5641722Svbart@nginx.com<para>
5651722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
5661722Svbart@nginx.comnames.
5671722Svbart@nginx.com</para>
5681722Svbart@nginx.com</change>
5691722Svbart@nginx.com
5701722Svbart@nginx.com<change type="change">
5711722Svbart@nginx.com<para>
5721722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
5731722Svbart@nginx.comdefault.
5741722Svbart@nginx.com</para>
5751722Svbart@nginx.com</change>
5761722Svbart@nginx.com
5771722Svbart@nginx.com<change type="feature">
5781722Svbart@nginx.com<para>
5791722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
5801722Svbart@nginx.com</para>
5811722Svbart@nginx.com</change>
5821722Svbart@nginx.com
5831722Svbart@nginx.com<change type="feature">
5841722Svbart@nginx.com<para>
5851722Svbart@nginx.comregular expressions in route matching patterns.
5861722Svbart@nginx.com</para>
5871722Svbart@nginx.com</change>
5881722Svbart@nginx.com
5891722Svbart@nginx.com<change type="feature">
5901722Svbart@nginx.com<para>
5911722Svbart@nginx.comcompatibility with Python 3.9.
5921722Svbart@nginx.com</para>
5931722Svbart@nginx.com</change>
5941722Svbart@nginx.com
5951722Svbart@nginx.com<change type="feature">
5961722Svbart@nginx.com<para>
5971722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
5981722Svbart@nginx.com</para>
5991722Svbart@nginx.com</change>
6001722Svbart@nginx.com
6011722Svbart@nginx.com<change type="feature">
6021722Svbart@nginx.com<para>
6031722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
6041722Svbart@nginx.com</para>
6051722Svbart@nginx.com</change>
6061722Svbart@nginx.com
6071722Svbart@nginx.com<change type="feature">
6081722Svbart@nginx.com<para>
6091722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
6101722Svbart@nginx.comcontinues code execution without holding onto the client connection.
6111722Svbart@nginx.com</para>
6121722Svbart@nginx.com</change>
6131722Svbart@nginx.com
6141722Svbart@nginx.com<change type="feature">
6151722Svbart@nginx.com<para>
6161722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
6171722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
6181722Svbart@nginx.com</para>
6191722Svbart@nginx.com</change>
6201722Svbart@nginx.com
6211722Svbart@nginx.com<change type="feature">
6221722Svbart@nginx.com<para>
6231722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
6241722Svbart@nginx.commounting of eponymous filesystems.
6251722Svbart@nginx.com</para>
6261722Svbart@nginx.com</change>
6271722Svbart@nginx.com
6281722Svbart@nginx.com<change type="bugfix">
6291722Svbart@nginx.com<para>
6301722Svbart@nginx.comthe router process could crash when running Go applications under high load;
6311722Svbart@nginx.comthe bug had appeared in 1.19.0.
6321722Svbart@nginx.com</para>
6331722Svbart@nginx.com</change>
6341722Svbart@nginx.com
6351722Svbart@nginx.com<change type="bugfix">
6361722Svbart@nginx.com<para>
6371722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
6381722Svbart@nginx.com</para>
6391722Svbart@nginx.com</change>
6401722Svbart@nginx.com
6411722Svbart@nginx.com<change type="bugfix">
6421722Svbart@nginx.com<para>
6431722Svbart@nginx.comvarious compatibility issues in Java applications.
6441722Svbart@nginx.com</para>
6451722Svbart@nginx.com</change>
6461722Svbart@nginx.com
6471722Svbart@nginx.com<change type="bugfix">
6481722Svbart@nginx.com<para>
6491722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
6501722Svbart@nginx.comuse "rootfs" isolation.
6511722Svbart@nginx.com</para>
6521722Svbart@nginx.com</change>
6531722Svbart@nginx.com
6541722Svbart@nginx.com</changes>
6551722Svbart@nginx.com
6561722Svbart@nginx.com
6571330Svbart@nginx.com<changes apply="unit-php
6581330Svbart@nginx.com                unit-python unit-python2.7
6591330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6601330Svbart@nginx.com                unit-python3.8
6611330Svbart@nginx.com                unit-go
6621330Svbart@nginx.com                unit-perl
6631330Svbart@nginx.com                unit-ruby
6641330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
6651640Svbart@nginx.com         ver="1.20.0" rev="1"
6661640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
6671640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6681640Svbart@nginx.com
6691640Svbart@nginx.com<change>
6701640Svbart@nginx.com<para>
6711640Svbart@nginx.comNGINX Unit updated to 1.20.0.
6721640Svbart@nginx.com</para>
6731640Svbart@nginx.com</change>
6741640Svbart@nginx.com
6751640Svbart@nginx.com</changes>
6761640Svbart@nginx.com
6771640Svbart@nginx.com
6781640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
6791640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
6801640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6811640Svbart@nginx.com
6821640Svbart@nginx.com<change type="change">
6831640Svbart@nginx.com<para>
6841640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
6851640Svbart@nginx.comextensions from the host system.
6861640Svbart@nginx.com</para>
6871640Svbart@nginx.com</change>
6881640Svbart@nginx.com
6891640Svbart@nginx.com<change type="change">
6901640Svbart@nginx.com<para>
6911640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
6921640Svbart@nginx.com</para>
6931640Svbart@nginx.com</change>
6941640Svbart@nginx.com
6951643Svbart@nginx.com<change type="change">
6961643Svbart@nginx.com<para>
6971643Svbart@nginx.comfunctional tests migrated to the pytest framework.
6981643Svbart@nginx.com</para>
6991643Svbart@nginx.com</change>
7001643Svbart@nginx.com
7011640Svbart@nginx.com<change type="feature">
7021640Svbart@nginx.com<para>
7031640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
7041640Svbart@nginx.cominterface.
7051640Svbart@nginx.com</para>
7061640Svbart@nginx.com</change>
7071640Svbart@nginx.com
7081640Svbart@nginx.com<change type="feature">
7091640Svbart@nginx.com<para>
7101640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
7111640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
7121640Svbart@nginx.comspecification.
7131640Svbart@nginx.com</para>
7141640Svbart@nginx.com</change>
7151640Svbart@nginx.com
7161640Svbart@nginx.com<change type="feature">
7171640Svbart@nginx.com<para>
7181640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
7191640Svbart@nginx.comenvironments.
7201640Svbart@nginx.com</para>
7211640Svbart@nginx.com</change>
7221640Svbart@nginx.com
7231640Svbart@nginx.com<change type="feature">
7241640Svbart@nginx.com<para>
7251640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
7261640Svbart@nginx.com</para>
7271640Svbart@nginx.com</change>
7281640Svbart@nginx.com
7291640Svbart@nginx.com<change type="feature">
7301640Svbart@nginx.com<para>
7311640Svbart@nginx.comthe "callable" option sets Python application callable names.
7321640Svbart@nginx.com</para>
7331640Svbart@nginx.com</change>
7341640Svbart@nginx.com
7351640Svbart@nginx.com<change type="feature">
7361640Svbart@nginx.com<para>
7371640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
7381640Svbart@nginx.com</para>
7391640Svbart@nginx.com</change>
7401640Svbart@nginx.com
7411640Svbart@nginx.com<change type="feature">
7421640Svbart@nginx.com<para>
7431640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
7441640Svbart@nginx.comautomatic mounting of language module dependencies.
7451640Svbart@nginx.com</para>
7461640Svbart@nginx.com</change>
7471640Svbart@nginx.com
7481640Svbart@nginx.com<change type="bugfix">
7491640Svbart@nginx.com<para>
7501640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
7511640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
7521640Svbart@nginx.com</para>
7531640Svbart@nginx.com</change>
7541640Svbart@nginx.com
7551640Svbart@nginx.com<change type="bugfix">
7561640Svbart@nginx.com<para>
7571640Svbart@nginx.comthe router process could crash during reconfiguration.
7581640Svbart@nginx.com</para>
7591640Svbart@nginx.com</change>
7601640Svbart@nginx.com
7611640Svbart@nginx.com<change type="bugfix">
7621640Svbart@nginx.com<para>
7631640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
7641640Svbart@nginx.com</para>
7651640Svbart@nginx.com</change>
7661640Svbart@nginx.com
7671640Svbart@nginx.com<change type="bugfix">
7681640Svbart@nginx.com<para>
7691640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
7701640Svbart@nginx.comthe bug had appeared in 1.19.0.
7711640Svbart@nginx.com</para>
7721640Svbart@nginx.com</change>
7731640Svbart@nginx.com
7741640Svbart@nginx.com<change type="bugfix">
7751640Svbart@nginx.com<para>
7761640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
7771640Svbart@nginx.comthe bug had appeared in 1.16.0.
7781640Svbart@nginx.com</para>
7791640Svbart@nginx.com</change>
7801640Svbart@nginx.com
7811640Svbart@nginx.com</changes>
7821640Svbart@nginx.com
7831640Svbart@nginx.com
7841640Svbart@nginx.com<changes apply="unit-php
7851640Svbart@nginx.com                unit-python unit-python2.7
7861640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7871640Svbart@nginx.com                unit-python3.8
7881640Svbart@nginx.com                unit-go
7891640Svbart@nginx.com                unit-perl
7901640Svbart@nginx.com                unit-ruby
7911640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
7921570Svbart@nginx.com         ver="1.19.0" rev="1"
7931570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
7941570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7951570Svbart@nginx.com
7961570Svbart@nginx.com<change>
7971570Svbart@nginx.com<para>
7981570Svbart@nginx.comNGINX Unit updated to 1.19.0.
7991570Svbart@nginx.com</para>
8001570Svbart@nginx.com</change>
8011570Svbart@nginx.com
8021570Svbart@nginx.com</changes>
8031570Svbart@nginx.com
8041570Svbart@nginx.com
8051570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1"
8061570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
8071570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8081570Svbart@nginx.com
8091570Svbart@nginx.com<change type="feature">
8101570Svbart@nginx.com<para>
8111570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
8121570Svbart@nginx.comincrease performance, and improve scalability.
8131570Svbart@nginx.com</para>
8141570Svbart@nginx.com</change>
8151570Svbart@nginx.com
8161570Svbart@nginx.com<change type="feature">
8171570Svbart@nginx.com<para>
8181570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns.
8191570Svbart@nginx.com</para>
8201570Svbart@nginx.com</change>
8211570Svbart@nginx.com
8221570Svbart@nginx.com<change type="feature">
8231570Svbart@nginx.com<para>
8241570Svbart@nginx.comchunked transfer encoding in proxy responses.
8251570Svbart@nginx.com</para>
8261570Svbart@nginx.com</change>
8271570Svbart@nginx.com
8281570Svbart@nginx.com<change type="feature">
8291570Svbart@nginx.com<para>
8301570Svbart@nginx.combasic variables support in the "pass" option.
8311570Svbart@nginx.com</para>
8321570Svbart@nginx.com</change>
8331570Svbart@nginx.com
8341570Svbart@nginx.com<change type="feature">
8351570Svbart@nginx.com<para>
8361570Svbart@nginx.comcompatibility with PHP 8 Beta 1.
8371570Svbart@nginx.comThanks to Remi Collet.
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 while passing requests to an application under
8441570Svbart@nginx.comhigh load.
8451570Svbart@nginx.com</para>
8461570Svbart@nginx.com</change>
8471570Svbart@nginx.com
8481570Svbart@nginx.com<change type="bugfix">
8491570Svbart@nginx.com<para>
8501570Svbart@nginx.coma number of language modules failed to build on some systems;
8511570Svbart@nginx.comthe bug had appeared in 1.18.0.
8521570Svbart@nginx.com</para>
8531570Svbart@nginx.com</change>
8541570Svbart@nginx.com
8551570Svbart@nginx.com<change type="bugfix">
8561570Svbart@nginx.com<para>
8571570Svbart@nginx.comtime in error log messages from PHP applications could lag.
8581570Svbart@nginx.com</para>
8591570Svbart@nginx.com</change>
8601570Svbart@nginx.com
8611570Svbart@nginx.com<change type="bugfix">
8621570Svbart@nginx.com<para>
8631570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start;
8641570Svbart@nginx.comthe bug had appeared in 1.18.0.
8651570Svbart@nginx.com</para>
8661570Svbart@nginx.com</change>
8671570Svbart@nginx.com
8681570Svbart@nginx.com<change type="bugfix">
8691570Svbart@nginx.com<para>
8701570Svbart@nginx.commemory leak during reconfiguration.
8711570Svbart@nginx.com</para>
8721570Svbart@nginx.com</change>
8731570Svbart@nginx.com
8741570Svbart@nginx.com<change type="bugfix">
8751570Svbart@nginx.com<para>
8761570Svbart@nginx.comthe daemon didn't start without language modules;
8771570Svbart@nginx.comthe bug had appeared in 1.18.0.
8781570Svbart@nginx.com</para>
8791570Svbart@nginx.com</change>
8801570Svbart@nginx.com
8811570Svbart@nginx.com<change type="bugfix">
8821570Svbart@nginx.com<para>
8831570Svbart@nginx.comthe router process could crash at exit.
8841570Svbart@nginx.com</para>
8851570Svbart@nginx.com</change>
8861570Svbart@nginx.com
8871570Svbart@nginx.com<change type="bugfix">
8881570Svbart@nginx.com<para>
8891570Svbart@nginx.comNode.js applications could crash at exit.
8901570Svbart@nginx.com</para>
8911570Svbart@nginx.com</change>
8921570Svbart@nginx.com
8931570Svbart@nginx.com<change type="bugfix">
8941570Svbart@nginx.com<para>
8951570Svbart@nginx.comthe Ruby module could be linked against a wrong library version.
8961570Svbart@nginx.com</para>
8971570Svbart@nginx.com</change>
8981570Svbart@nginx.com
8991570Svbart@nginx.com</changes>
9001570Svbart@nginx.com
9011570Svbart@nginx.com
9021570Svbart@nginx.com<changes apply="unit-php
9031570Svbart@nginx.com                unit-python unit-python2.7
9041570Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9051570Svbart@nginx.com                unit-python3.8
9061570Svbart@nginx.com                unit-go
9071570Svbart@nginx.com                unit-perl
9081570Svbart@nginx.com                unit-ruby
9091570Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9101491Svbart@nginx.com         ver="1.18.0" rev="1"
9111491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
9121491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9131491Svbart@nginx.com
9141491Svbart@nginx.com<change>
9151491Svbart@nginx.com<para>
9161491Svbart@nginx.comNGINX Unit updated to 1.18.0.
9171491Svbart@nginx.com</para>
9181491Svbart@nginx.com</change>
9191491Svbart@nginx.com
9201491Svbart@nginx.com</changes>
9211491Svbart@nginx.com
9221491Svbart@nginx.com
9231491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1"
9241491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
9251491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9261491Svbart@nginx.com
9271491Svbart@nginx.com<change type="feature">
9281491Svbart@nginx.com<para>
9291491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application.
9301491Svbart@nginx.com</para>
9311491Svbart@nginx.com</change>
9321491Svbart@nginx.com
9331491Svbart@nginx.com<change type="feature">
9341491Svbart@nginx.com<para>
9351491Svbart@nginx.commultiple "targets" in PHP applications.
9361491Svbart@nginx.com</para>
9371491Svbart@nginx.com</change>
9381491Svbart@nginx.com
9391491Svbart@nginx.com<change type="feature">
9401491Svbart@nginx.com<para>
9411491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options
9421491Svbart@nginx.comand in the "pass" option.
9431491Svbart@nginx.com</para>
9441491Svbart@nginx.com</change>
9451491Svbart@nginx.com
9461491Svbart@nginx.com</changes>
9471491Svbart@nginx.com
9481491Svbart@nginx.com
9491491Svbart@nginx.com<changes apply="unit-php
9501491Svbart@nginx.com                unit-python unit-python2.7
9511491Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9521491Svbart@nginx.com                unit-python3.8
9531491Svbart@nginx.com                unit-go
9541491Svbart@nginx.com                unit-perl
9551491Svbart@nginx.com                unit-ruby
9561491Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9571460Svbart@nginx.com         ver="1.17.0" rev="1"
9581460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
9591460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9601460Svbart@nginx.com
9611460Svbart@nginx.com<change>
9621460Svbart@nginx.com<para>
9631460Svbart@nginx.comNGINX Unit updated to 1.17.0.
9641460Svbart@nginx.com</para>
9651460Svbart@nginx.com</change>
9661460Svbart@nginx.com
9671460Svbart@nginx.com</changes>
9681460Svbart@nginx.com
9691460Svbart@nginx.com
9701460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1"
9711460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
9721460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9731460Svbart@nginx.com
9741460Svbart@nginx.com<change type="feature">
9751460Svbart@nginx.com<para>
9761460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external
9771460Svbart@nginx.comredirection.
9781460Svbart@nginx.com</para>
9791460Svbart@nginx.com</change>
9801460Svbart@nginx.com
9811460Svbart@nginx.com<change type="feature">
9821460Svbart@nginx.com<para>
9831460Svbart@nginx.comfractional weights support for upstream servers.
9841460Svbart@nginx.com</para>
9851460Svbart@nginx.com</change>
9861460Svbart@nginx.com
9871460Svbart@nginx.com<change type="bugfix">
9881460Svbart@nginx.com<para>
9891460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under
9901460Svbart@nginx.comhigh load.
9911460Svbart@nginx.com</para>
9921460Svbart@nginx.com</change>
9931460Svbart@nginx.com
9941460Svbart@nginx.com<change type="bugfix">
9951460Svbart@nginx.com<para>
9961460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0.
9971460Svbart@nginx.com</para>
9981460Svbart@nginx.com</change>
9991460Svbart@nginx.com
10001460Svbart@nginx.com<change type="bugfix">
10011460Svbart@nginx.com<para>
10021460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching
10031460Svbart@nginx.comopen connections limit.
10041460Svbart@nginx.com</para>
10051460Svbart@nginx.com</change>
10061460Svbart@nginx.com
10071460Svbart@nginx.com<change type="bugfix">
10081460Svbart@nginx.com<para>
10091460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log
10101460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0.
10111460Svbart@nginx.com</para>
10121460Svbart@nginx.com</change>
10131460Svbart@nginx.com
10141460Svbart@nginx.com<change type="bugfix">
10151460Svbart@nginx.com<para>
10161460Svbart@nginx.comexisting application processes didn't reopen the log file.
10171460Svbart@nginx.com</para>
10181460Svbart@nginx.com</change>
10191460Svbart@nginx.com
10201460Svbart@nginx.com<change type="bugfix">
10211460Svbart@nginx.com<para>
10221460Svbart@nginx.comincompatibility with some Node.js applications.
10231460Svbart@nginx.com</para>
10241460Svbart@nginx.com</change>
10251460Svbart@nginx.com
10261460Svbart@nginx.com<change type="bugfix">
10271460Svbart@nginx.com<para>
10281460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0.
10291460Svbart@nginx.com</para>
10301460Svbart@nginx.com</change>
10311460Svbart@nginx.com
10321460Svbart@nginx.com</changes>
10331460Svbart@nginx.com
10341460Svbart@nginx.com
10351460Svbart@nginx.com<changes apply="unit-php
10361460Svbart@nginx.com                unit-python unit-python2.7
10371460Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10381460Svbart@nginx.com                unit-python3.8
10391460Svbart@nginx.com                unit-go
10401460Svbart@nginx.com                unit-perl
10411460Svbart@nginx.com                unit-ruby
10421460Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10431404Svbart@nginx.com         ver="1.16.0" rev="1"
10441404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
10451404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10461404Svbart@nginx.com
10471404Svbart@nginx.com<change>
10481404Svbart@nginx.com<para>
10491404Svbart@nginx.comNGINX Unit updated to 1.16.0.
10501404Svbart@nginx.com</para>
10511404Svbart@nginx.com</change>
10521404Svbart@nginx.com
10531404Svbart@nginx.com</changes>
10541404Svbart@nginx.com
10551404Svbart@nginx.com
10561404Svbart@nginx.com<changes apply="unit" ver="1.16.0" rev="1"
10571404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
10581404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10591404Svbart@nginx.com
10601404Svbart@nginx.com<change type="feature">
10611404Svbart@nginx.com<para>
10621404Svbart@nginx.combasic load-balancing support with round-robin.
10631404Svbart@nginx.com</para>
10641404Svbart@nginx.com</change>
10651404Svbart@nginx.com
10661404Svbart@nginx.com<change type="feature">
10671404Svbart@nginx.com<para>
10681404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be
10691404Svbart@nginx.comserved from the "share" directory.
10701404Svbart@nginx.com</para>
10711404Svbart@nginx.com</change>
10721404Svbart@nginx.com
10731404Svbart@nginx.com<change type="feature">
10741404Svbart@nginx.com<para>
10751404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk.
10761404Svbart@nginx.com</para>
10771404Svbart@nginx.com</change>
10781404Svbart@nginx.com
10791404Svbart@nginx.com<change type="feature">
10801404Svbart@nginx.com<para>
10811404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON.
10821404Svbart@nginx.com</para>
10831404Svbart@nginx.com</change>
10841404Svbart@nginx.com
10851404Svbart@nginx.com<change type="bugfix">
10861404Svbart@nginx.com<para>
10871404Svbart@nginx.comnegative address matching in router might work improperly in combination with
10881404Svbart@nginx.comnon-negative patterns.
10891404Svbart@nginx.com</para>
10901404Svbart@nginx.com</change>
10911404Svbart@nginx.com
10921404Svbart@nginx.com<change type="bugfix">
10931404Svbart@nginx.com<para>
10941404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0.
10951404Svbart@nginx.com</para>
10961404Svbart@nginx.com</change>
10971404Svbart@nginx.com
10981404Svbart@nginx.com<change type="bugfix">
10991404Svbart@nginx.com<para>
11001404Svbart@nginx.comPHP 7.4 was broken if it was built with thread safety enabled.
11011404Svbart@nginx.com</para>
11021404Svbart@nginx.com</change>
11031404Svbart@nginx.com
11041404Svbart@nginx.com<change type="bugfix">
11051404Svbart@nginx.com<para>
11061404Svbart@nginx.comcompatibility issues with some Python applications.
11071404Svbart@nginx.com</para>
11081404Svbart@nginx.com</change>
11091404Svbart@nginx.com
11101404Svbart@nginx.com</changes>
11111404Svbart@nginx.com
11121404Svbart@nginx.com
11131404Svbart@nginx.com<changes apply="unit-php
11141404Svbart@nginx.com                unit-python unit-python2.7
11151404Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11161404Svbart@nginx.com                unit-python3.8
11171404Svbart@nginx.com                unit-go
11181404Svbart@nginx.com                unit-perl
11191404Svbart@nginx.com                unit-ruby
11201404Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11211357Svbart@nginx.com         ver="1.15.0" rev="1"
11221357Svbart@nginx.com         date="2020-02-06" time="18:00:00 +0300"
11231357Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11241357Svbart@nginx.com
11251357Svbart@nginx.com<change>
11261357Svbart@nginx.com<para>
11271357Svbart@nginx.comNGINX Unit updated to 1.15.0.
11281357Svbart@nginx.com</para>
11291357Svbart@nginx.com</change>
11301357Svbart@nginx.com
11311357Svbart@nginx.com</changes>
11321357Svbart@nginx.com
11331357Svbart@nginx.com
11341357Svbart@nginx.com<changes apply="unit" ver="1.15.0" rev="1"
11351357Svbart@nginx.com         date="2020-02-06" time="18:00:00 +0300"
11361357Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11371357Svbart@nginx.com
11381357Svbart@nginx.com<change type="change">
11391357Svbart@nginx.com<para>
11401357Svbart@nginx.comextensions of dynamically requested PHP scripts were restricted to ".php".
11411357Svbart@nginx.com</para>
11421357Svbart@nginx.com</change>
11431357Svbart@nginx.com
11441357Svbart@nginx.com<change type="feature">
11451357Svbart@nginx.com<para>
11461357Svbart@nginx.comcompatibility with Ruby 2.7.
11471357Svbart@nginx.com</para>
11481357Svbart@nginx.com</change>
11491357Svbart@nginx.com
11501357Svbart@nginx.com<change type="bugfix">
11511357Svbart@nginx.com<para>
11521357Svbart@nginx.comsegmentation fault might have occurred in the router process with multiple
11531357Svbart@nginx.comapplication processes under load; the bug had appeared in 1.14.0.
11541357Svbart@nginx.com</para>
11551357Svbart@nginx.com</change>
11561357Svbart@nginx.com
11571357Svbart@nginx.com<change type="bugfix">
11581357Svbart@nginx.com<para>
11591357Svbart@nginx.comreceiving request body over TLS connection might have stalled.
11601357Svbart@nginx.com</para>
11611357Svbart@nginx.com</change>
11621357Svbart@nginx.com
11631357Svbart@nginx.com</changes>
11641357Svbart@nginx.com
11651357Svbart@nginx.com
11661357Svbart@nginx.com<changes apply="unit-php
11671357Svbart@nginx.com                unit-python unit-python2.7
11681357Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11691357Svbart@nginx.com                unit-python3.8
11701357Svbart@nginx.com                unit-go
11711357Svbart@nginx.com                unit-perl
11721357Svbart@nginx.com                unit-ruby
11731357Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11741330Svbart@nginx.com         ver="1.14.0" rev="1"
11751330Svbart@nginx.com         date="2019-12-26" time="18:00:00 +0300"
11761330Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11771330Svbart@nginx.com
11781330Svbart@nginx.com<change>
11791330Svbart@nginx.com<para>
11801330Svbart@nginx.comNGINX Unit updated to 1.14.0.
11811330Svbart@nginx.com</para>
11821330Svbart@nginx.com</change>
11831330Svbart@nginx.com
11841330Svbart@nginx.com</changes>
11851330Svbart@nginx.com
11861330Svbart@nginx.com
11871330Svbart@nginx.com<changes apply="unit" ver="1.14.0" rev="1"
11881330Svbart@nginx.com         date="2019-12-26" time="18:00:00 +0300"
11891330Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11901330Svbart@nginx.com
11911330Svbart@nginx.com<change type="change">
11921330Svbart@nginx.com<para>
11931330Svbart@nginx.comthe Go package import name changed to "unit.nginx.org/go".
11941330Svbart@nginx.com</para>
11951330Svbart@nginx.com</change>
11961330Svbart@nginx.com
11971330Svbart@nginx.com<change type="change">
11981330Svbart@nginx.com<para>
11991330Svbart@nginx.comGo package now links to libunit instead of including library sources.
12001330Svbart@nginx.com</para>
12011330Svbart@nginx.com</change>
12021330Svbart@nginx.com
1203