xref: /unit/docs/changes.xml (revision 1891)
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
81887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
9*1891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
101887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
111887Sdefan@nginx.com
121887Sdefan@nginx.com<change>
131887Sdefan@nginx.com<para>
141887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
151887Sdefan@nginx.com</para>
161887Sdefan@nginx.com</change>
171887Sdefan@nginx.com
181887Sdefan@nginx.com</changes>
191887Sdefan@nginx.com
201887Sdefan@nginx.com
211887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
22*1891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
231887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
241887Sdefan@nginx.com
251887Sdefan@nginx.com<change>
261887Sdefan@nginx.com<para>
271887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
281887Sdefan@nginx.com</para>
291887Sdefan@nginx.com</change>
301887Sdefan@nginx.com
311887Sdefan@nginx.com</changes>
321887Sdefan@nginx.com
331887Sdefan@nginx.com
341834Svbart@nginx.com<changes apply="unit-php
351834Svbart@nginx.com                unit-python unit-python2.7
361834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
371834Svbart@nginx.com                unit-python3.8 unit-python3.9
381834Svbart@nginx.com                unit-go
391834Svbart@nginx.com                unit-perl
401834Svbart@nginx.com                unit-ruby
411834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
421834Svbart@nginx.com                unit-jsc14 unit-jsc15"
431839Svbart@nginx.com         ver="1.24.0" rev="1"
44*1891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
451839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
461839Svbart@nginx.com
471839Svbart@nginx.com<change>
481839Svbart@nginx.com<para>
491839Svbart@nginx.comNGINX Unit updated to 1.24.0.
501839Svbart@nginx.com</para>
511839Svbart@nginx.com</change>
521839Svbart@nginx.com
531839Svbart@nginx.com</changes>
541839Svbart@nginx.com
551839Svbart@nginx.com
561839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
57*1891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
581839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
591839Svbart@nginx.com
601882So.canty@f5.com<change type="change">
611882So.canty@f5.com<para>
621882So.canty@f5.comPHP added to the default MIME type list.
631882So.canty@f5.com</para>
641882So.canty@f5.com</change>
651882So.canty@f5.com
661855Sz.hong@f5.com<change type="feature">
671855Sz.hong@f5.com<para>
681885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
691885Sa.suvorov@f5.com</para>
701885Sa.suvorov@f5.com</change>
711885Sa.suvorov@f5.com
721885Sa.suvorov@f5.com<change type="feature">
731885Sa.suvorov@f5.com<para>
741890Svbart@nginx.comthe ability to limit static file serving by MIME types.
751890Svbart@nginx.com</para>
761890Svbart@nginx.com</change>
771890Svbart@nginx.com
781890Svbart@nginx.com<change type="feature">
791890Svbart@nginx.com<para>
801890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
811890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
821872So.canty@f5.com</para>
831872So.canty@f5.com</change>
841872So.canty@f5.com
851872So.canty@f5.com<change type="feature">
861872So.canty@f5.com<para>
871889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
881889Sartem.konev@nginx.comNode.js.
891865So.canty@f5.com</para>
901865So.canty@f5.com</change>
911865So.canty@f5.com
921865So.canty@f5.com<change type="feature">
931865So.canty@f5.com<para>
941890Svbart@nginx.commultiple "targets" in Python applications.
951855Sz.hong@f5.com</para>
961855Sz.hong@f5.com</change>
971855Sz.hong@f5.com
981870So.canty@f5.com<change type="feature">
991870So.canty@f5.com<para>
1001870So.canty@f5.comcompatibility with Ruby 3.0.
1011870So.canty@f5.com</para>
1021870So.canty@f5.com</change>
1031870So.canty@f5.com
1041861Svbart@nginx.com<change type="bugfix">
1051861Svbart@nginx.com<para>
1061889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
1071884Sa.suvorov@f5.com</para>
1081884Sa.suvorov@f5.com</change>
1091884Sa.suvorov@f5.com
1101884Sa.suvorov@f5.com<change type="bugfix">
1111884Sa.suvorov@f5.com<para>
1121861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
1131861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
1141861Svbart@nginx.com</para>
1151861Svbart@nginx.com</change>
1161861Svbart@nginx.com
1171839Svbart@nginx.com</changes>
1181839Svbart@nginx.com
1191839Svbart@nginx.com
1201839Svbart@nginx.com<changes apply="unit-php
1211839Svbart@nginx.com                unit-python unit-python2.7
1221839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1231839Svbart@nginx.com                unit-python3.8 unit-python3.9
1241839Svbart@nginx.com                unit-go
1251839Svbart@nginx.com                unit-perl
1261839Svbart@nginx.com                unit-ruby
1271839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1281839Svbart@nginx.com                unit-jsc14 unit-jsc15"
1291834Svbart@nginx.com         ver="1.23.0" rev="1"
1301834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
1311834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1321834Svbart@nginx.com
1331834Svbart@nginx.com<change>
1341834Svbart@nginx.com<para>
1351834Svbart@nginx.comNGINX Unit updated to 1.23.0.
1361834Svbart@nginx.com</para>
1371834Svbart@nginx.com</change>
1381834Svbart@nginx.com
1391834Svbart@nginx.com</changes>
1401834Svbart@nginx.com
1411834Svbart@nginx.com
1421806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
1431834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
1441806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1451806Svbart@nginx.com
1461825Sthresh@nginx.com<change type="feature">
1471825Sthresh@nginx.com<para>
1481833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
1491828Sa.suvorov@f5.comIndication (SNI) TLS extension.
1501828Sa.suvorov@f5.com</para>
1511828Sa.suvorov@f5.com</change>
1521828Sa.suvorov@f5.com
1531828Sa.suvorov@f5.com<change type="feature">
1541828Sa.suvorov@f5.com<para>
1551833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
1561833Sartem.konev@nginx.cominstallation.
1571825Sthresh@nginx.com</para>
1581825Sthresh@nginx.com</change>
1591825Sthresh@nginx.com
1601811Smax.romanov@nginx.com<change type="bugfix">
1611811Smax.romanov@nginx.com<para>
1621812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
1631812Svbart@nginx.comappeared in 1.17.0.
1641812Svbart@nginx.com</para>
1651812Svbart@nginx.com</change>
1661812Svbart@nginx.com
1671812Svbart@nginx.com<change type="bugfix">
1681812Svbart@nginx.com<para>
1691833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
1701812Svbart@nginx.comappeared in 1.6.
1711812Svbart@nginx.com</para>
1721812Svbart@nginx.com</change>
1731812Svbart@nginx.com
1741812Svbart@nginx.com<change type="bugfix">
1751812Svbart@nginx.com<para>
1761833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
1771832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
1781832Smax.romanov@nginx.com</para>
1791832Smax.romanov@nginx.com</change>
1801832Smax.romanov@nginx.com
1811832Smax.romanov@nginx.com<change type="bugfix">
1821832Smax.romanov@nginx.com<para>
1831833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
1841811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
1851811Smax.romanov@nginx.com</para>
1861811Smax.romanov@nginx.com</change>
1871806Svbart@nginx.com
1881813Svbart@nginx.com<change type="bugfix">
1891813Svbart@nginx.com<para>
1901813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
1911813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
1921813Svbart@nginx.com</para>
1931813Svbart@nginx.com</change>
1941813Svbart@nginx.com
1951814Svbart@nginx.com<change type="bugfix">
1961814Svbart@nginx.com<para>
1971820Svbart@nginx.comthe controller process could crash while requesting information about a
1981820Svbart@nginx.comcertificate with a non-DNS SAN entry.
1991820Svbart@nginx.com</para>
2001820Svbart@nginx.com</change>
2011820Svbart@nginx.com
2021820Svbart@nginx.com<change type="bugfix">
2031820Svbart@nginx.com<para>
2041822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
2051833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
2061822Svbart@nginx.com</para>
2071822Svbart@nginx.com</change>
2081822Svbart@nginx.com
2091822Svbart@nginx.com<change type="bugfix">
2101822Svbart@nginx.com<para>
2111833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
2121833Sartem.konev@nginx.comclass.
2131814Svbart@nginx.com</para>
2141814Svbart@nginx.com</change>
2151814Svbart@nginx.com
2161815Svbart@nginx.com<change type="bugfix">
2171815Svbart@nginx.com<para>
2181815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
2191815Svbart@nginx.comappeared in 1.22.0.
2201815Svbart@nginx.com</para>
2211815Svbart@nginx.com</change>
2221815Svbart@nginx.com
2231806Svbart@nginx.com</changes>
2241806Svbart@nginx.com
2251806Svbart@nginx.com
2261798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
2271798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
2281798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2291798Sdefan@nginx.com
2301798Sdefan@nginx.com<change>
2311798Sdefan@nginx.com<para>
2321798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
2331798Sdefan@nginx.com</para>
2341798Sdefan@nginx.com</change>
2351798Sdefan@nginx.com
2361798Sdefan@nginx.com</changes>
2371798Sdefan@nginx.com
2381798Sdefan@nginx.com
2391763Sdefan@nginx.com<changes apply="unit-php
2401763Sdefan@nginx.com                unit-python unit-python2.7
2411763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2421763Sdefan@nginx.com                unit-python3.8
2431763Sdefan@nginx.com                unit-go
2441763Sdefan@nginx.com                unit-perl
2451763Sdefan@nginx.com                unit-ruby
2461763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2471763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
2481763Sdefan@nginx.com         ver="1.22.0" rev="1"
2491793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
2501763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2511763Sdefan@nginx.com
2521763Sdefan@nginx.com<change>
2531763Sdefan@nginx.com<para>
2541763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
2551763Sdefan@nginx.com</para>
2561763Sdefan@nginx.com</change>
2571763Sdefan@nginx.com
2581763Sdefan@nginx.com</changes>
2591763Sdefan@nginx.com
2601763Sdefan@nginx.com
2611727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
2621793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
2631727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2641727Svbart@nginx.com
2651759Svbart@nginx.com<change type="feature">
2661759Svbart@nginx.com<para>
2671792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
2681792Svbart@nginx.comcompliant with Stream API.
2691759Svbart@nginx.com</para>
2701759Svbart@nginx.com</change>
2711759Svbart@nginx.com
2721766Smax.romanov@nginx.com<change type="feature">
2731766Smax.romanov@nginx.com<para>
2741792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
2751792Svbart@nginx.comapps.
2761732Svbart@nginx.com</para>
2771732Svbart@nginx.com</change>
2781732Svbart@nginx.com
2791733Svbart@nginx.com<change type="bugfix">
2801733Svbart@nginx.com<para>
2811792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
2821792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
2831754Smax.romanov@nginx.com</para>
2841754Smax.romanov@nginx.com</change>
2851754Smax.romanov@nginx.com
2861755Smax.romanov@nginx.com<change type="bugfix">
2871755Smax.romanov@nginx.com<para>
2881790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
2891755Smax.romanov@nginx.comappeared in 1.19.0.
2901755Smax.romanov@nginx.com</para>
2911755Smax.romanov@nginx.com</change>
2921755Smax.romanov@nginx.com
2931756Smax.romanov@nginx.com<change type="bugfix">
2941756Smax.romanov@nginx.com<para>
2951790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
2961790Sartem.konev@nginx.comappeared in 1.19.0.
2971756Smax.romanov@nginx.com</para>
2981756Smax.romanov@nginx.com</change>
2991756Smax.romanov@nginx.com
3001760Smax.romanov@nginx.com<change type="bugfix">
3011760Smax.romanov@nginx.com<para>
3021792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
3031792Svbart@nginx.com</para>
3041792Svbart@nginx.com</change>
3051792Svbart@nginx.com
3061792Svbart@nginx.com<change type="bugfix">
3071792Svbart@nginx.com<para>
3081792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
3091792Svbart@nginx.commissing in the PHP module.
3101792Svbart@nginx.com</para>
3111792Svbart@nginx.com</change>
3121792Svbart@nginx.com
3131792Svbart@nginx.com<change type="bugfix">
3141792Svbart@nginx.com<para>
3151792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
3161792Svbart@nginx.com</para>
3171792Svbart@nginx.com</change>
3181792Svbart@nginx.com
3191792Svbart@nginx.com<change type="bugfix">
3201792Svbart@nginx.com<para>
3211792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
3221792Svbart@nginx.com</para>
3231792Svbart@nginx.com</change>
3241792Svbart@nginx.com
3251792Svbart@nginx.com<change type="bugfix">
3261792Svbart@nginx.com<para>
3271792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
3281792Svbart@nginx.comthe bug had appeared in 1.21.0.
3291760Smax.romanov@nginx.com</para>
3301760Smax.romanov@nginx.com</change>
3311760Smax.romanov@nginx.com
3321780Smax.romanov@nginx.com<change type="bugfix">
3331780Smax.romanov@nginx.com<para>
3341790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
3351790Sartem.konev@nginx.comWebSocket.
3361780Smax.romanov@nginx.com</para>
3371780Smax.romanov@nginx.com</change>
3381780Smax.romanov@nginx.com
3391789Smax.romanov@nginx.com<change type="bugfix">
3401789Smax.romanov@nginx.com<para>
3411789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
3421789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
3431789Smax.romanov@nginx.com</para>
3441789Smax.romanov@nginx.com</change>
3451789Smax.romanov@nginx.com
3461727Svbart@nginx.com</changes>
3471727Svbart@nginx.com
3481727Svbart@nginx.com
3491722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
3501722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
3511722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3521722Svbart@nginx.com
3531722Svbart@nginx.com<change>
3541722Svbart@nginx.com<para>
3551722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
3561722Svbart@nginx.com</para>
3571722Svbart@nginx.com</change>
3581722Svbart@nginx.com
3591722Svbart@nginx.com</changes>
3601722Svbart@nginx.com
3611722Svbart@nginx.com
3621722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
3631722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
3641722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3651722Svbart@nginx.com
3661722Svbart@nginx.com<change>
3671722Svbart@nginx.com<para>
3681722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
3691722Svbart@nginx.com</para>
3701722Svbart@nginx.com</change>
3711722Svbart@nginx.com
3721722Svbart@nginx.com</changes>
3731722Svbart@nginx.com
3741722Svbart@nginx.com
3751722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
3761722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
3771722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3781722Svbart@nginx.com
3791722Svbart@nginx.com<change>
3801722Svbart@nginx.com<para>
3811722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
3821722Svbart@nginx.com</para>
3831722Svbart@nginx.com</change>
3841722Svbart@nginx.com
3851722Svbart@nginx.com</changes>
3861722Svbart@nginx.com
3871722Svbart@nginx.com
3881722Svbart@nginx.com<changes apply="unit-php
3891722Svbart@nginx.com                unit-python unit-python2.7
3901722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3911722Svbart@nginx.com                unit-python3.8
3921722Svbart@nginx.com                unit-go
3931722Svbart@nginx.com                unit-perl
3941722Svbart@nginx.com                unit-ruby
3951722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
3961722Svbart@nginx.com         ver="1.21.0" rev="1"
3971722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
3981722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3991722Svbart@nginx.com
4001722Svbart@nginx.com<change>
4011722Svbart@nginx.com<para>
4021722Svbart@nginx.comNGINX Unit updated to 1.21.0.
4031722Svbart@nginx.com</para>
4041722Svbart@nginx.com</change>
4051722Svbart@nginx.com
4061722Svbart@nginx.com</changes>
4071722Svbart@nginx.com
4081722Svbart@nginx.com
4091722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
4101722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
4111722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4121722Svbart@nginx.com
4131722Svbart@nginx.com<change type="change">
4141722Svbart@nginx.com<para>
4151722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
4161722Svbart@nginx.com</para>
4171722Svbart@nginx.com</change>
4181722Svbart@nginx.com
4191722Svbart@nginx.com<change type="change">
4201722Svbart@nginx.com<para>
4211722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
4221722Svbart@nginx.comnames.
4231722Svbart@nginx.com</para>
4241722Svbart@nginx.com</change>
4251722Svbart@nginx.com
4261722Svbart@nginx.com<change type="change">
4271722Svbart@nginx.com<para>
4281722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
4291722Svbart@nginx.comdefault.
4301722Svbart@nginx.com</para>
4311722Svbart@nginx.com</change>
4321722Svbart@nginx.com
4331722Svbart@nginx.com<change type="feature">
4341722Svbart@nginx.com<para>
4351722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
4361722Svbart@nginx.com</para>
4371722Svbart@nginx.com</change>
4381722Svbart@nginx.com
4391722Svbart@nginx.com<change type="feature">
4401722Svbart@nginx.com<para>
4411722Svbart@nginx.comregular expressions in route matching patterns.
4421722Svbart@nginx.com</para>
4431722Svbart@nginx.com</change>
4441722Svbart@nginx.com
4451722Svbart@nginx.com<change type="feature">
4461722Svbart@nginx.com<para>
4471722Svbart@nginx.comcompatibility with Python 3.9.
4481722Svbart@nginx.com</para>
4491722Svbart@nginx.com</change>
4501722Svbart@nginx.com
4511722Svbart@nginx.com<change type="feature">
4521722Svbart@nginx.com<para>
4531722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
4541722Svbart@nginx.com</para>
4551722Svbart@nginx.com</change>
4561722Svbart@nginx.com
4571722Svbart@nginx.com<change type="feature">
4581722Svbart@nginx.com<para>
4591722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
4601722Svbart@nginx.com</para>
4611722Svbart@nginx.com</change>
4621722Svbart@nginx.com
4631722Svbart@nginx.com<change type="feature">
4641722Svbart@nginx.com<para>
4651722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
4661722Svbart@nginx.comcontinues code execution without holding onto the client connection.
4671722Svbart@nginx.com</para>
4681722Svbart@nginx.com</change>
4691722Svbart@nginx.com
4701722Svbart@nginx.com<change type="feature">
4711722Svbart@nginx.com<para>
4721722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
4731722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
4741722Svbart@nginx.com</para>
4751722Svbart@nginx.com</change>
4761722Svbart@nginx.com
4771722Svbart@nginx.com<change type="feature">
4781722Svbart@nginx.com<para>
4791722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
4801722Svbart@nginx.commounting of eponymous filesystems.
4811722Svbart@nginx.com</para>
4821722Svbart@nginx.com</change>
4831722Svbart@nginx.com
4841722Svbart@nginx.com<change type="bugfix">
4851722Svbart@nginx.com<para>
4861722Svbart@nginx.comthe router process could crash when running Go applications under high load;
4871722Svbart@nginx.comthe bug had appeared in 1.19.0.
4881722Svbart@nginx.com</para>
4891722Svbart@nginx.com</change>
4901722Svbart@nginx.com
4911722Svbart@nginx.com<change type="bugfix">
4921722Svbart@nginx.com<para>
4931722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
4941722Svbart@nginx.com</para>
4951722Svbart@nginx.com</change>
4961722Svbart@nginx.com
4971722Svbart@nginx.com<change type="bugfix">
4981722Svbart@nginx.com<para>
4991722Svbart@nginx.comvarious compatibility issues in Java applications.
5001722Svbart@nginx.com</para>
5011722Svbart@nginx.com</change>
5021722Svbart@nginx.com
5031722Svbart@nginx.com<change type="bugfix">
5041722Svbart@nginx.com<para>
5051722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
5061722Svbart@nginx.comuse "rootfs" isolation.
5071722Svbart@nginx.com</para>
5081722Svbart@nginx.com</change>
5091722Svbart@nginx.com
5101722Svbart@nginx.com</changes>
5111722Svbart@nginx.com
5121722Svbart@nginx.com
5131330Svbart@nginx.com<changes apply="unit-php
5141330Svbart@nginx.com                unit-python unit-python2.7
5151330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5161330Svbart@nginx.com                unit-python3.8
5171330Svbart@nginx.com                unit-go
5181330Svbart@nginx.com                unit-perl
5191330Svbart@nginx.com                unit-ruby
5201330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
5211640Svbart@nginx.com         ver="1.20.0" rev="1"
5221640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
5231640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5241640Svbart@nginx.com
5251640Svbart@nginx.com<change>
5261640Svbart@nginx.com<para>
5271640Svbart@nginx.comNGINX Unit updated to 1.20.0.
5281640Svbart@nginx.com</para>
5291640Svbart@nginx.com</change>
5301640Svbart@nginx.com
5311640Svbart@nginx.com</changes>
5321640Svbart@nginx.com
5331640Svbart@nginx.com
5341640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
5351640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
5361640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5371640Svbart@nginx.com
5381640Svbart@nginx.com<change type="change">
5391640Svbart@nginx.com<para>
5401640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
5411640Svbart@nginx.comextensions from the host system.
5421640Svbart@nginx.com</para>
5431640Svbart@nginx.com</change>
5441640Svbart@nginx.com
5451640Svbart@nginx.com<change type="change">
5461640Svbart@nginx.com<para>
5471640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
5481640Svbart@nginx.com</para>
5491640Svbart@nginx.com</change>
5501640Svbart@nginx.com
5511643Svbart@nginx.com<change type="change">
5521643Svbart@nginx.com<para>
5531643Svbart@nginx.comfunctional tests migrated to the pytest framework.
5541643Svbart@nginx.com</para>
5551643Svbart@nginx.com</change>
5561643Svbart@nginx.com
5571640Svbart@nginx.com<change type="feature">
5581640Svbart@nginx.com<para>
5591640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
5601640Svbart@nginx.cominterface.
5611640Svbart@nginx.com</para>
5621640Svbart@nginx.com</change>
5631640Svbart@nginx.com
5641640Svbart@nginx.com<change type="feature">
5651640Svbart@nginx.com<para>
5661640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
5671640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
5681640Svbart@nginx.comspecification.
5691640Svbart@nginx.com</para>
5701640Svbart@nginx.com</change>
5711640Svbart@nginx.com
5721640Svbart@nginx.com<change type="feature">
5731640Svbart@nginx.com<para>
5741640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
5751640Svbart@nginx.comenvironments.
5761640Svbart@nginx.com</para>
5771640Svbart@nginx.com</change>
5781640Svbart@nginx.com
5791640Svbart@nginx.com<change type="feature">
5801640Svbart@nginx.com<para>
5811640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
5821640Svbart@nginx.com</para>
5831640Svbart@nginx.com</change>
5841640Svbart@nginx.com
5851640Svbart@nginx.com<change type="feature">
5861640Svbart@nginx.com<para>
5871640Svbart@nginx.comthe "callable" option sets Python application callable names.
5881640Svbart@nginx.com</para>
5891640Svbart@nginx.com</change>
5901640Svbart@nginx.com
5911640Svbart@nginx.com<change type="feature">
5921640Svbart@nginx.com<para>
5931640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
5941640Svbart@nginx.com</para>
5951640Svbart@nginx.com</change>
5961640Svbart@nginx.com
5971640Svbart@nginx.com<change type="feature">
5981640Svbart@nginx.com<para>
5991640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
6001640Svbart@nginx.comautomatic mounting of language module dependencies.
6011640Svbart@nginx.com</para>
6021640Svbart@nginx.com</change>
6031640Svbart@nginx.com
6041640Svbart@nginx.com<change type="bugfix">
6051640Svbart@nginx.com<para>
6061640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
6071640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
6081640Svbart@nginx.com</para>
6091640Svbart@nginx.com</change>
6101640Svbart@nginx.com
6111640Svbart@nginx.com<change type="bugfix">
6121640Svbart@nginx.com<para>
6131640Svbart@nginx.comthe router process could crash during reconfiguration.
6141640Svbart@nginx.com</para>
6151640Svbart@nginx.com</change>
6161640Svbart@nginx.com
6171640Svbart@nginx.com<change type="bugfix">
6181640Svbart@nginx.com<para>
6191640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
6201640Svbart@nginx.com</para>
6211640Svbart@nginx.com</change>
6221640Svbart@nginx.com
6231640Svbart@nginx.com<change type="bugfix">
6241640Svbart@nginx.com<para>
6251640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
6261640Svbart@nginx.comthe bug had appeared in 1.19.0.
6271640Svbart@nginx.com</para>
6281640Svbart@nginx.com</change>
6291640Svbart@nginx.com
6301640Svbart@nginx.com<change type="bugfix">
6311640Svbart@nginx.com<para>
6321640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
6331640Svbart@nginx.comthe bug had appeared in 1.16.0.
6341640Svbart@nginx.com</para>
6351640Svbart@nginx.com</change>
6361640Svbart@nginx.com
6371640Svbart@nginx.com</changes>
6381640Svbart@nginx.com
6391640Svbart@nginx.com
6401640Svbart@nginx.com<changes apply="unit-php
6411640Svbart@nginx.com                unit-python unit-python2.7
6421640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6431640Svbart@nginx.com                unit-python3.8
6441640Svbart@nginx.com                unit-go
6451640Svbart@nginx.com                unit-perl
6461640Svbart@nginx.com                unit-ruby
6471640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
6481570Svbart@nginx.com         ver="1.19.0" rev="1"
6491570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
6501570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6511570Svbart@nginx.com
6521570Svbart@nginx.com<change>
6531570Svbart@nginx.com<para>
6541570Svbart@nginx.comNGINX Unit updated to 1.19.0.
6551570Svbart@nginx.com</para>
6561570Svbart@nginx.com</change>
6571570Svbart@nginx.com
6581570Svbart@nginx.com</changes>
6591570Svbart@nginx.com
6601570Svbart@nginx.com
6611570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1"
6621570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
6631570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6641570Svbart@nginx.com
6651570Svbart@nginx.com<change type="feature">
6661570Svbart@nginx.com<para>
6671570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
6681570Svbart@nginx.comincrease performance, and improve scalability.
6691570Svbart@nginx.com</para>
6701570Svbart@nginx.com</change>
6711570Svbart@nginx.com
6721570Svbart@nginx.com<change type="feature">
6731570Svbart@nginx.com<para>
6741570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns.
6751570Svbart@nginx.com</para>
6761570Svbart@nginx.com</change>
6771570Svbart@nginx.com
6781570Svbart@nginx.com<change type="feature">
6791570Svbart@nginx.com<para>
6801570Svbart@nginx.comchunked transfer encoding in proxy responses.
6811570Svbart@nginx.com</para>
6821570Svbart@nginx.com</change>
6831570Svbart@nginx.com
6841570Svbart@nginx.com<change type="feature">
6851570Svbart@nginx.com<para>
6861570Svbart@nginx.combasic variables support in the "pass" option.
6871570Svbart@nginx.com</para>
6881570Svbart@nginx.com</change>
6891570Svbart@nginx.com
6901570Svbart@nginx.com<change type="feature">
6911570Svbart@nginx.com<para>
6921570Svbart@nginx.comcompatibility with PHP 8 Beta 1.
6931570Svbart@nginx.comThanks to Remi Collet.
6941570Svbart@nginx.com</para>
6951570Svbart@nginx.com</change>
6961570Svbart@nginx.com
6971570Svbart@nginx.com<change type="bugfix">
6981570Svbart@nginx.com<para>
6991570Svbart@nginx.comthe router process could crash while passing requests to an application under
7001570Svbart@nginx.comhigh load.
7011570Svbart@nginx.com</para>
7021570Svbart@nginx.com</change>
7031570Svbart@nginx.com
7041570Svbart@nginx.com<change type="bugfix">
7051570Svbart@nginx.com<para>
7061570Svbart@nginx.coma number of language modules failed to build on some systems;
7071570Svbart@nginx.comthe bug had appeared in 1.18.0.
7081570Svbart@nginx.com</para>
7091570Svbart@nginx.com</change>
7101570Svbart@nginx.com
7111570Svbart@nginx.com<change type="bugfix">
7121570Svbart@nginx.com<para>
7131570Svbart@nginx.comtime in error log messages from PHP applications could lag.
7141570Svbart@nginx.com</para>
7151570Svbart@nginx.com</change>
7161570Svbart@nginx.com
7171570Svbart@nginx.com<change type="bugfix">
7181570Svbart@nginx.com<para>
7191570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start;
7201570Svbart@nginx.comthe bug had appeared in 1.18.0.
7211570Svbart@nginx.com</para>
7221570Svbart@nginx.com</change>
7231570Svbart@nginx.com
7241570Svbart@nginx.com<change type="bugfix">
7251570Svbart@nginx.com<para>
7261570Svbart@nginx.commemory leak during reconfiguration.
7271570Svbart@nginx.com</para>
7281570Svbart@nginx.com</change>
7291570Svbart@nginx.com
7301570Svbart@nginx.com<change type="bugfix">
7311570Svbart@nginx.com<para>
7321570Svbart@nginx.comthe daemon didn't start without language modules;
7331570Svbart@nginx.comthe bug had appeared in 1.18.0.
7341570Svbart@nginx.com</para>
7351570Svbart@nginx.com</change>
7361570Svbart@nginx.com
7371570Svbart@nginx.com<change type="bugfix">
7381570Svbart@nginx.com<para>
7391570Svbart@nginx.comthe router process could crash at exit.
7401570Svbart@nginx.com</para>
7411570Svbart@nginx.com</change>
7421570Svbart@nginx.com
7431570Svbart@nginx.com<change type="bugfix">
7441570Svbart@nginx.com<para>
7451570Svbart@nginx.comNode.js applications could crash at exit.
7461570Svbart@nginx.com</para>
7471570Svbart@nginx.com</change>
7481570Svbart@nginx.com
7491570Svbart@nginx.com<change type="bugfix">
7501570Svbart@nginx.com<para>
7511570Svbart@nginx.comthe Ruby module could be linked against a wrong library version.
7521570Svbart@nginx.com</para>
7531570Svbart@nginx.com</change>
7541570Svbart@nginx.com
7551570Svbart@nginx.com</changes>
7561570Svbart@nginx.com
7571570Svbart@nginx.com
7581570Svbart@nginx.com<changes apply="unit-php
7591570Svbart@nginx.com                unit-python unit-python2.7
7601570Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7611570Svbart@nginx.com                unit-python3.8
7621570Svbart@nginx.com                unit-go
7631570Svbart@nginx.com                unit-perl
7641570Svbart@nginx.com                unit-ruby
7651570Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
7661491Svbart@nginx.com         ver="1.18.0" rev="1"
7671491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
7681491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7691491Svbart@nginx.com
7701491Svbart@nginx.com<change>
7711491Svbart@nginx.com<para>
7721491Svbart@nginx.comNGINX Unit updated to 1.18.0.
7731491Svbart@nginx.com</para>
7741491Svbart@nginx.com</change>
7751491Svbart@nginx.com
7761491Svbart@nginx.com</changes>
7771491Svbart@nginx.com
7781491Svbart@nginx.com
7791491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1"
7801491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
7811491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7821491Svbart@nginx.com
7831491Svbart@nginx.com<change type="feature">
7841491Svbart@nginx.com<para>
7851491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application.
7861491Svbart@nginx.com</para>
7871491Svbart@nginx.com</change>
7881491Svbart@nginx.com
7891491Svbart@nginx.com<change type="feature">
7901491Svbart@nginx.com<para>
7911491Svbart@nginx.commultiple "targets" in PHP applications.
7921491Svbart@nginx.com</para>
7931491Svbart@nginx.com</change>
7941491Svbart@nginx.com
7951491Svbart@nginx.com<change type="feature">
7961491Svbart@nginx.com<para>
7971491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options
7981491Svbart@nginx.comand in the "pass" option.
7991491Svbart@nginx.com</para>
8001491Svbart@nginx.com</change>
8011491Svbart@nginx.com
8021491Svbart@nginx.com</changes>
8031491Svbart@nginx.com
8041491Svbart@nginx.com
8051491Svbart@nginx.com<changes apply="unit-php
8061491Svbart@nginx.com                unit-python unit-python2.7
8071491Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8081491Svbart@nginx.com                unit-python3.8
8091491Svbart@nginx.com                unit-go
8101491Svbart@nginx.com                unit-perl
8111491Svbart@nginx.com                unit-ruby
8121491Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8131460Svbart@nginx.com         ver="1.17.0" rev="1"
8141460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
8151460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8161460Svbart@nginx.com
8171460Svbart@nginx.com<change>
8181460Svbart@nginx.com<para>
8191460Svbart@nginx.comNGINX Unit updated to 1.17.0.
8201460Svbart@nginx.com</para>
8211460Svbart@nginx.com</change>
8221460Svbart@nginx.com
8231460Svbart@nginx.com</changes>
8241460Svbart@nginx.com
8251460Svbart@nginx.com
8261460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1"
8271460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
8281460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8291460Svbart@nginx.com
8301460Svbart@nginx.com<change type="feature">
8311460Svbart@nginx.com<para>
8321460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external
8331460Svbart@nginx.comredirection.
8341460Svbart@nginx.com</para>
8351460Svbart@nginx.com</change>
8361460Svbart@nginx.com
8371460Svbart@nginx.com<change type="feature">
8381460Svbart@nginx.com<para>
8391460Svbart@nginx.comfractional weights support for upstream servers.
8401460Svbart@nginx.com</para>
8411460Svbart@nginx.com</change>
8421460Svbart@nginx.com
8431460Svbart@nginx.com<change type="bugfix">
8441460Svbart@nginx.com<para>
8451460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under
8461460Svbart@nginx.comhigh load.
8471460Svbart@nginx.com</para>
8481460Svbart@nginx.com</change>
8491460Svbart@nginx.com
8501460Svbart@nginx.com<change type="bugfix">
8511460Svbart@nginx.com<para>
8521460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0.
8531460Svbart@nginx.com</para>
8541460Svbart@nginx.com</change>
8551460Svbart@nginx.com
8561460Svbart@nginx.com<change type="bugfix">
8571460Svbart@nginx.com<para>
8581460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching
8591460Svbart@nginx.comopen connections limit.
8601460Svbart@nginx.com</para>
8611460Svbart@nginx.com</change>
8621460Svbart@nginx.com
8631460Svbart@nginx.com<change type="bugfix">
8641460Svbart@nginx.com<para>
8651460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log
8661460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0.
8671460Svbart@nginx.com</para>
8681460Svbart@nginx.com</change>
8691460Svbart@nginx.com
8701460Svbart@nginx.com<change type="bugfix">
8711460Svbart@nginx.com<para>
8721460Svbart@nginx.comexisting application processes didn't reopen the log file.
8731460Svbart@nginx.com</para>
8741460Svbart@nginx.com</change>
8751460Svbart@nginx.com
8761460Svbart@nginx.com<change type="bugfix">
8771460Svbart@nginx.com<para>
8781460Svbart@nginx.comincompatibility with some Node.js applications.
8791460Svbart@nginx.com</para>
8801460Svbart@nginx.com</change>
8811460Svbart@nginx.com
8821460Svbart@nginx.com<change type="bugfix">
8831460Svbart@nginx.com<para>
8841460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0.
8851460Svbart@nginx.com</para>
8861460Svbart@nginx.com</change>
8871460Svbart@nginx.com
8881460Svbart@nginx.com</changes>
8891460Svbart@nginx.com
8901460Svbart@nginx.com
8911460Svbart@nginx.com<changes apply="unit-php
8921460Svbart@nginx.com                unit-python unit-python2.7
8931460Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8941460Svbart@nginx.com                unit-python3.8
8951460Svbart@nginx.com                unit-go
8961460Svbart@nginx.com                unit-perl
8971460Svbart@nginx.com                unit-ruby
8981460Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8991404Svbart@nginx.com         ver="1.16.0" rev="1"
9001404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
9011404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9021404Svbart@nginx.com
9031404Svbart@nginx.com<change>
9041404Svbart@nginx.com<para>
9051404Svbart@nginx.comNGINX Unit updated to 1.16.0.
9061404Svbart@nginx.com</para>
9071404Svbart@nginx.com</change>
9081404Svbart@nginx.com
9091404Svbart@nginx.com</changes>
9101404Svbart@nginx.com
9111404Svbart@nginx.com
9121404Svbart@nginx.com<changes apply="unit" ver="1.16.0" rev="1"
9131404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
9141404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9151404Svbart@nginx.com
9161404Svbart@nginx.com<change type="feature">
9171404Svbart@nginx.com<para>
9181404Svbart@nginx.combasic load-balancing support with round-robin.
9191404Svbart@nginx.com</para>
9201404Svbart@nginx.com</change>
9211404Svbart@nginx.com
9221404Svbart@nginx.com<change type="feature">
9231404Svbart@nginx.com<para>
9241404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be
9251404Svbart@nginx.comserved from the "share" directory.
9261404Svbart@nginx.com</para>
9271404Svbart@nginx.com</change>
9281404Svbart@nginx.com
9291404Svbart@nginx.com<change type="feature">
9301404Svbart@nginx.com<para>
9311404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk.
9321404Svbart@nginx.com</para>
9331404Svbart@nginx.com</change>
9341404Svbart@nginx.com
9351404Svbart@nginx.com<change type="feature">
9361404Svbart@nginx.com<para>
9371404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON.
9381404Svbart@nginx.com</para>
9391404Svbart@nginx.com</change>
9401404Svbart@nginx.com
9411404Svbart@nginx.com<change type="bugfix">
9421404Svbart@nginx.com<para>
9431404Svbart@nginx.comnegative address matching in router might work improperly in combination with
9441404Svbart@nginx.comnon-negative patterns.
9451404Svbart@nginx.com</para>
9461404Svbart@nginx.com</change>
9471404Svbart@nginx.com
9481404Svbart@nginx.com<change type="bugfix">
9491404Svbart@nginx.com<para>
9501404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0.
9511404Svbart@nginx.com</para>
9521404Svbart@nginx.com</change>
9531404Svbart@nginx.com
9541404Svbart@nginx.com<change type="bugfix">
9551404Svbart@nginx.com<para>
9561404Svbart@nginx.comPHP 7.4 was broken if it was built with thread safety enabled.
9571404Svbart@nginx.com</para>
9581404Svbart@nginx.com</change>
9591404Svbart@nginx.com
9601404Svbart@nginx.com<change type="bugfix">
9611404Svbart@nginx.com<para>
9621404Svbart@nginx.comcompatibility issues with some Python applications.
9631404Svbart@nginx.com</para>
9641404Svbart@nginx.com</change>
9651404Svbart@nginx.com
9661404Svbart@nginx.com</changes>
9671404Svbart@nginx.com
9681404Svbart@nginx.com
9691404Svbart@nginx.com<changes apply="unit-php
9701404Svbart@nginx.com                unit-python unit-python2.7
9711404Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9721404Svbart@nginx.com                unit-python3.8
9731404Svbart@nginx.com                unit-go
9741404Svbart@nginx.com                unit-perl
9751404Svbart@nginx.com                unit-ruby
9761404Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9771357Svbart@nginx.com         ver="1.15.0" rev="1"
9781357Svbart@nginx.com         date="2020-02-06" time="18:00:00 +0300"
9791357Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9801357Svbart@nginx.com
9811357Svbart@nginx.com<change>
9821357Svbart@nginx.com<para>
9831357Svbart@nginx.comNGINX Unit updated to 1.15.0.
9841357Svbart@nginx.com</para>
9851357Svbart@nginx.com</change>
9861357Svbart@nginx.com
9871357Svbart@nginx.com</changes>
9881357Svbart@nginx.com
9891357Svbart@nginx.com
9901357Svbart@nginx.com<changes apply="unit" ver="1.15.0" rev="1"
9911357Svbart@nginx.com         date="2020-02-06" time="18:00:00 +0300"
9921357Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9931357Svbart@nginx.com
9941357Svbart@nginx.com<change type="change">
9951357Svbart@nginx.com<para>
9961357Svbart@nginx.comextensions of dynamically requested PHP scripts were restricted to ".php".
9971357Svbart@nginx.com</para>
9981357Svbart@nginx.com</change>
9991357Svbart@nginx.com
10001357Svbart@nginx.com<change type="feature">
10011357Svbart@nginx.com<para>
10021357Svbart@nginx.comcompatibility with Ruby 2.7.
10031357Svbart@nginx.com</para>
10041357Svbart@nginx.com</change>
10051357Svbart@nginx.com
10061357Svbart@nginx.com<change type="bugfix">
10071357Svbart@nginx.com<para>
10081357Svbart@nginx.comsegmentation fault might have occurred in the router process with multiple
10091357Svbart@nginx.comapplication processes under load; the bug had appeared in 1.14.0.
10101357Svbart@nginx.com</para>
10111357Svbart@nginx.com</change>
10121357Svbart@nginx.com
10131357Svbart@nginx.com<change type="bugfix">
10141357Svbart@nginx.com<para>
10151357Svbart@nginx.comreceiving request body over TLS connection might have stalled.
10161357Svbart@nginx.com</para>
10171357Svbart@nginx.com</change>
10181357Svbart@nginx.com
10191357Svbart@nginx.com</changes>
10201357Svbart@nginx.com
10211357Svbart@nginx.com
10221357Svbart@nginx.com<changes apply="unit-php
10231357Svbart@nginx.com                unit-python unit-python2.7
10241357Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10251357Svbart@nginx.com                unit-python3.8
10261357Svbart@nginx.com                unit-go
10271357Svbart@nginx.com                unit-perl
10281357Svbart@nginx.com                unit-ruby
10291357Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10301330Svbart@nginx.com         ver="1.14.0" rev="1"
10311330Svbart@nginx.com         date="2019-12-26" time="18:00:00 +0300"
10321330Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10331330Svbart@nginx.com
10341330Svbart@nginx.com<change>
10351330Svbart@nginx.com<para>
10361330Svbart@nginx.comNGINX Unit updated to 1.14.0.
10371330Svbart@nginx.com</para>
10381330Svbart@nginx.com</change>
10391330Svbart@nginx.com
10401330Svbart@nginx.com</changes>
10411330Svbart@nginx.com
10421330Svbart@nginx.com
10431330Svbart@nginx.com<changes apply="unit" ver="1.14.0" rev="1"
10441330Svbart@nginx.com         date="2019-12-26" time="18:00:00 +0300"
10451330Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10461330Svbart@nginx.com
10471330Svbart@nginx.com<change type="change">
10481330Svbart@nginx.com<para>
10491330Svbart@nginx.comthe Go package import name changed to "unit.nginx.org/go".
10501330Svbart@nginx.com</para>
10511330Svbart@nginx.com</change>
10521330Svbart@nginx.com
10531330Svbart@nginx.com<change type="change">
10541330Svbart@nginx.com<para>
10551330Svbart@nginx.comGo package now links to libunit instead of including library sources.
10561330Svbart@nginx.com</para>
10571330Svbart@nginx.com</change>
10581330Svbart@nginx.com
10591330Svbart@nginx.com<change type="feature">
10601330Svbart@nginx.com<para>
10611330Svbart@nginx.comability to change user and group for isolated applications when Unit daemon
10621330Svbart@nginx.comruns as an unprivileged user.
10631330Svbart@nginx.com</para>
10641330Svbart@nginx.com</change>
10651330Svbart@nginx.com
10661330Svbart@nginx.com<change type="feature">
10671330Svbart@nginx.com<para>
10681330Svbart@nginx.comrequest routing by source and destination addresses and ports.
10691330Svbart@nginx.com</para>
10701330Svbart@nginx.com</change>
10711330Svbart@nginx.com
10721330Svbart@nginx.com<change type="bugfix">
10731330Svbart@nginx.com<para>
10741330Svbart@nginx.commemory bloat on large responses.
10751330Svbart@nginx.com</para>
10761330Svbart@nginx.com</change>
10771330Svbart@nginx.com
10781330Svbart@nginx.com</changes>
10791330Svbart@nginx.com
10801330Svbart@nginx.com
10811290Sdefan@nginx.com<changes apply="unit-go1.13" ver="1.13.0" rev="1"
10821290Sdefan@nginx.com         date="2019-11-20" time="09:00:00 +0300"
10831290Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10841290Sdefan@nginx.com
10851290Sdefan@nginx.com<change>
10861290Sdefan@nginx.com<para>
10871290Sdefan@nginx.comInitial release of Go 1.13 module for NGINX Unit.
10881290Sdefan@nginx.com</para>
10891290Sdefan@nginx.com</change>
10901290Sdefan@nginx.com
10911290Sdefan@nginx.com</changes>
10921290Sdefan@nginx.com
10931290Sdefan@nginx.com
10941290Sdefan@nginx.com<changes apply="unit-go1.12" ver="1.13.0" rev="1"
10951290Sdefan@nginx.com         date="2019-11-20" time="09:00:00 +0300"
10961290Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10971290Sdefan@nginx.com
10981290Sdefan@nginx.com<change>
10991290Sdefan@nginx.com<para>
11001290Sdefan@nginx.comInitial release of Go 1.12 module for NGINX Unit.
11011290Sdefan@nginx.com</para>
11021290Sdefan@nginx.com</change>
11031290Sdefan@nginx.com
11041290Sdefan@nginx.com</changes>
11051290Sdefan@nginx.com
11061290Sdefan@nginx.com
11071289Sdefan@nginx.com<changes apply="unit-python3.8" ver="1.13.0" rev="1"
11081289Sdefan@nginx.com         date="2019-11-18" time="14:20:00 +0300"
11091289Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11101289Sdefan@nginx.com
11111289Sdefan@nginx.com<change>
11121289Sdefan@nginx.com<para>
11131289Sdefan@nginx.comInitial release of Python 3.8 module for NGINX Unit.
11141289Sdefan@nginx.com</para>
11151289Sdefan@nginx.com</change>
11161289Sdefan@nginx.com
11171289Sdefan@nginx.com</changes>
11181289Sdefan@nginx.com
11191289Sdefan@nginx.com
11201185Svbart@nginx.com<changes apply="unit-php
11211185Svbart@nginx.com                unit-python unit-python2.7
11221185Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11231185Svbart@nginx.com                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
11241185Svbart@nginx.com                unit-perl
11251185Svbart@nginx.com                unit-ruby
11261185Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11271284Svbart@nginx.com         ver="1.13.0" rev="1"
11281284Svbart@nginx.com         date="2019-11-14" time="18:00:00 +0300"
11291284Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11301284Svbart@nginx.com
11311284Svbart@nginx.com<change>
11321284Svbart@nginx.com<para>
11331284Svbart@nginx.comNGINX Unit updated to 1.13.0.
11341284Svbart@nginx.com</para>
11351284Svbart@nginx.com</change>
11361284Svbart@nginx.com
11371284Svbart@nginx.com</changes>
11381284Svbart@nginx.com
11391284Svbart@nginx.com
11401284Svbart@nginx.com<changes apply="unit" ver="1.13.0" rev="1"
11411284Svbart@nginx.com         date="2019-11-14" time="18:00:00 +0300"
11421284Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11431284Svbart@nginx.com
11441284Svbart@nginx.com<change type="feature">
11451284Svbart@nginx.com<para>
11461284Svbart@nginx.combasic support for HTTP reverse proxying.
11471284Svbart@nginx.com</para>
11481284Svbart@nginx.com</change>
11491284Svbart@nginx.com
11501284Svbart@nginx.com<change type="feature">
11511284Svbart@nginx.com<para>
11521284Svbart@nginx.comcompatibility with Python 3.8.
11531284Svbart@nginx.com</para>
11541284Svbart@nginx.com</change>
11551284Svbart@nginx.com
11561284Svbart@nginx.com<change type="bugfix">
11571284Svbart@nginx.com<para>
11581284Svbart@nginx.commemory leak in Python application processes when the close handler was used.
11591284Svbart@nginx.com</para>
11601284Svbart@nginx.com</change>
11611284Svbart@nginx.com
11621284Svbart@nginx.com<change type="bugfix">
11631284Svbart@nginx.com<para>
11641284Svbart@nginx.comthreads in Python applications might not work correctly.
11651284Svbart@nginx.com</para>
11661284Svbart@nginx.com</change>
11671284Svbart@nginx.com
11681284Svbart@nginx.com<change type="bugfix">
11691284Svbart@nginx.com<para>
11701284Svbart@nginx.comRuby on Rails applications might not work on Ruby 2.6.
11711284Svbart@nginx.com</para>
11721284Svbart@nginx.com</change>
11731284Svbart@nginx.com
11741284Svbart@nginx.com<change type="bugfix">
11751284Svbart@nginx.com<para>
11761284Svbart@nginx.combacktraces for uncaught exceptions in Python 3 might be logged with significant
11771284Svbart@nginx.comdelays.
11781284Svbart@nginx.com</para>
11791284Svbart@nginx.com</change>
11801284Svbart@nginx.com
11811284Svbart@nginx.com<change type="bugfix">
11821284Svbart@nginx.com<para>
11831284Svbart@nginx.comexplicit setting a namespaces isolation option to false might have enabled it.
11841284Svbart@nginx.com</para>
11851284Svbart@nginx.com</change>
11861284Svbart@nginx.com
11871284Svbart@nginx.com</changes>
11881284Svbart@nginx.com
11891284Svbart@nginx.com
11901284Svbart@nginx.com<changes apply="unit-php
11911284Svbart@nginx.com                unit-python unit-python2.7
11921284Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11931284Svbart@nginx.com                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
11941284Svbart@nginx.com                unit-perl
11951284Svbart@nginx.com                unit-ruby
11961284Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11971222Svbart@nginx.com         ver="1.12.0" rev="1"
11981222Svbart@nginx.com         date="2019-10-03" time="18:00:00 +0300"
11991222Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
12001222Svbart@nginx.com
12011222Svbart@nginx.com<change>
12021222Svbart@nginx.com<para>
12031222Svbart@nginx.comNGINX Unit updated to 1.12.0.
12041222Svbart@nginx.com</para>
12051222Svbart@nginx.com</change>
12061222Svbart@nginx.com
12071222Svbart@nginx.com</changes>
12081222Svbart@nginx.com
12091222Svbart@nginx.com
12101222Svbart@nginx.com<changes apply="unit" ver="1.12.0" rev="1"
12111222Svbart@nginx.com         date="2019-10-03" time="18:00:00 +0300"
12121222Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
12131222Svbart@nginx.com
12141222Svbart@nginx.com<change type="feature">
12151222Svbart@nginx.com<para>
12161222Svbart@nginx.comcompatibility with PHP 7.4.
12171222Svbart@nginx.com</para>
12181222Svbart@nginx.com</change>
12191222Svbart@nginx.com
12201222Svbart@nginx.com<change type="bugfix">
12211222Svbart@nginx.com<para>
12221222Svbart@nginx.comdescriptors leak on process creation; the bug had appeared in 1.11.0.
12231222Svbart@nginx.com</para>
12241222Svbart@nginx.com</change>
12251222Svbart@nginx.com
12261222Svbart@nginx.com<change type="bugfix">
12271222Svbart@nginx.com<para>
12281222Svbart@nginx.comTLS connection might be closed prematurely while sending response.
12291222Svbart@nginx.com</para>
12301222Svbart@nginx.com</change>
12311222Svbart@nginx.com
12321222Svbart@nginx.com<change type="bugfix">
12331222Svbart@nginx.com<para>
12341222Svbart@nginx.comsegmentation fault might have occurred if an irregular file was requested.
12351222Svbart@nginx.com</para>
12361222Svbart@nginx.com</change>
12371222Svbart@nginx.com
12381222Svbart@nginx.com</changes>
12391222Svbart@nginx.com
12401222Svbart@nginx.com
12411222Svbart@nginx.com
12421222Svbart@nginx.com<changes apply="unit-php
12431222Svbart@nginx.com                unit-python unit-python2.7
12441222Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
12451222Svbart@nginx.com                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
12461222Svbart@nginx.com                unit-perl
12471222Svbart@nginx.com                unit-ruby
12481222Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
12491185Svbart@nginx.com         ver="1.11.0" rev="1"
12501185Svbart@nginx.com         date="2019-09-19" time="18:00:00 +0300"
12511185Svbart@nginx.com         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
12521185Svbart@nginx.com
12531185Svbart@nginx.com<change>
12541185Svbart@nginx.com<para>
12551185Svbart@nginx.comNGINX Unit updated to 1.11.0.
12561185Svbart@nginx.com</para>
12571185Svbart@nginx.com</change>
12581185Svbart@nginx.com
12591185Svbart@nginx.com</changes>
12601185Svbart@nginx.com
12611185Svbart@nginx.com
12621185Svbart@nginx.com<changes apply="unit" ver="1.11.0" rev="1"
12631185Svbart@nginx.com         date="2019-09-19" time="18:00:00 +0300"
12641185Svbart@nginx.com         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
12651185Svbart@nginx.com
12661185Svbart@nginx.com<change type="feature">
12671185Svbart@nginx.com<para>
12681185Svbart@nginx.combasic support for serving static files.
12691185Svbart@nginx.com</para>
12701185Svbart@nginx.com</change>
12711185Svbart@nginx.com
12721185Svbart@nginx.com<change type="feature">
12731185Svbart@nginx.com<para>
12741185Svbart@nginx.comisolation of application processes with Linux namespaces.
12751185Svbart@nginx.com</para>
12761185Svbart@nginx.com</change>
12771185Svbart@nginx.com
12781185Svbart@nginx.com<change type="feature">
12791185Svbart@nginx.com<para>
12801185Svbart@nginx.combuilt-in WebSocket server implementation for Java Servlet Containers.
12811185Svbart@nginx.com</para>
12821185Svbart@nginx.com</change>
12831185Svbart@nginx.com
12841185Svbart@nginx.com<change type="feature">
12851185Svbart@nginx.com<para>
12861185Svbart@nginx.comdirect addressing of API configuration options containing slashes "/"
12871185Svbart@nginx.comusing URI encoding (%2F).
12881185Svbart@nginx.com</para>
12891185Svbart@nginx.com</change>
12901185Svbart@nginx.com
12911185Svbart@nginx.com<change type="bugfix">
12921185Svbart@nginx.com<para>
12931185Svbart@nginx.comsegmentation fault might have occurred in Go applications under high load.
12941185Svbart@nginx.com</para>
12951185Svbart@nginx.com</change>
12961185Svbart@nginx.com
12971185Svbart@nginx.com<change type="bugfix">
12981185Svbart@nginx.com<para>
12991185Svbart@nginx.comWebSocket support was broken if Unit was built with some linkers other than
13001185Svbart@nginx.comGNU ld (e.g. gold or LLD).
13011185Svbart@nginx.com</para>
13021185Svbart@nginx.com</change>
13031185Svbart@nginx.com
13041185Svbart@nginx.com</changes>
13051185Svbart@nginx.com
13061185Svbart@nginx.com
13071142Sdefan@nginx.com<changes apply="unit
13081142Sdefan@nginx.com                unit-php
13091142Sdefan@nginx.com                unit-python unit-python2.7
13101142Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
13111142Sdefan@nginx.com                unit-go unit-go1.7 unit-go1.8 unit-go1.