xref: /unit/docs/changes.xml (revision 1991)
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
81973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1"
91973Sdefan@nginx.com         date="" time=""
101973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
111973Sdefan@nginx.com
121973Sdefan@nginx.com<change>
131973Sdefan@nginx.com<para>
141973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit.
151973Sdefan@nginx.com</para>
161973Sdefan@nginx.com</change>
171973Sdefan@nginx.com
181973Sdefan@nginx.com</changes>
191973Sdefan@nginx.com
201973Sdefan@nginx.com
211973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1"
221973Sdefan@nginx.com         date="" time=""
231973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
241973Sdefan@nginx.com
251973Sdefan@nginx.com<change>
261973Sdefan@nginx.com<para>
271973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit.
281973Sdefan@nginx.com</para>
291973Sdefan@nginx.com</change>
301973Sdefan@nginx.com
311973Sdefan@nginx.com</changes>
321973Sdefan@nginx.com
331973Sdefan@nginx.com
341896Svbart@nginx.com<changes apply="unit-php
351896Svbart@nginx.com                unit-python unit-python2.7
361896Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
371896Svbart@nginx.com                unit-python3.8 unit-python3.9
381896Svbart@nginx.com                unit-go
391896Svbart@nginx.com                unit-perl
401896Svbart@nginx.com                unit-ruby
411896Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
421896Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
431951Svbart@nginx.com         ver="1.26.0" rev="1"
441951Svbart@nginx.com         date="" time=""
451951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
461951Svbart@nginx.com
471951Svbart@nginx.com<change>
481951Svbart@nginx.com<para>
491951Svbart@nginx.comNGINX Unit updated to 1.26.0.
501951Svbart@nginx.com</para>
511951Svbart@nginx.com</change>
521951Svbart@nginx.com
531980Smax.romanov@nginx.com<change type="bugfix">
541980Smax.romanov@nginx.com<para>
551980Smax.romanov@nginx.comthe router and app processes could crash when reaching requests limit
561980Smax.romanov@nginx.comin asynchronous or multithreaded apps.
571980Smax.romanov@nginx.com</para>
581980Smax.romanov@nginx.com</change>
591980Smax.romanov@nginx.com
601951Svbart@nginx.com</changes>
611951Svbart@nginx.com
621951Svbart@nginx.com
631951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
641951Svbart@nginx.com         date="" time=""
651951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
661951Svbart@nginx.com
671960Sz.hong@f5.com<change type="change">
681960Sz.hong@f5.com<para>
691960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
701960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
711960Sz.hong@f5.com</para>
721960Sz.hong@f5.com</change>
731960Sz.hong@f5.com
741960Sz.hong@f5.com<change type="feature">
751960Sz.hong@f5.com<para>
761960Sz.hong@f5.comvariables support in the "share" option.
771960Sz.hong@f5.com</para>
781960Sz.hong@f5.com</change>
791960Sz.hong@f5.com
801959Sz.hong@f5.com<change type="feature">
811959Sz.hong@f5.com<para>
821961Sz.hong@f5.commultiple paths in the "share" option.
831961Sz.hong@f5.com</para>
841961Sz.hong@f5.com</change>
851961Sz.hong@f5.com
861961Sz.hong@f5.com<change type="feature">
871961Sz.hong@f5.com<para>
881959Sz.hong@f5.comvariables support in the "chroot" option.
891959Sz.hong@f5.com</para>
901959Sz.hong@f5.com</change>
911959Sz.hong@f5.com
921969Sz.hong@f5.com<change type="feature">
931969Sz.hong@f5.com<para>
941969Sz.hong@f5.comautomatic adjustment of existing configurations to the new "share" behavior
951969Sz.hong@f5.comwhen updating from previous versions.
961969Sz.hong@f5.com</para>
971969Sz.hong@f5.com</change>
981969Sz.hong@f5.com
99*1991Sz.hong@f5.com<change type="feature">
100*1991Sz.hong@f5.com<para>
101*1991Sz.hong@f5.comrequest routing by the query string.
102*1991Sz.hong@f5.com</para>
103*1991Sz.hong@f5.com</change>
104*1991Sz.hong@f5.com
1051955Smax.romanov@nginx.com<change type="bugfix">
1061955Smax.romanov@nginx.com<para>
1071955Smax.romanov@nginx.comfixed building with glibc 2.34, notably Fedora 35.
1081955Smax.romanov@nginx.com</para>
1091955Smax.romanov@nginx.com</change>
1101955Smax.romanov@nginx.com
1111956Smax.romanov@nginx.com<change type="bugfix">
1121956Smax.romanov@nginx.com<para>
1131956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
1141956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
1151956Smax.romanov@nginx.com</para>
1161956Smax.romanov@nginx.com</change>
1171956Smax.romanov@nginx.com
1181951Svbart@nginx.com</changes>
1191951Svbart@nginx.com
1201951Svbart@nginx.com
1211951Svbart@nginx.com<changes apply="unit-php
1221951Svbart@nginx.com                unit-python unit-python2.7
1231951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1241951Svbart@nginx.com                unit-python3.8 unit-python3.9
1251951Svbart@nginx.com                unit-go
1261951Svbart@nginx.com                unit-perl
1271951Svbart@nginx.com                unit-ruby
1281951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1291951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
1301896Svbart@nginx.com         ver="1.25.0" rev="1"
1311945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
1321896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1331896Svbart@nginx.com
1341896Svbart@nginx.com<change>
1351896Svbart@nginx.com<para>
1361896Svbart@nginx.comNGINX Unit updated to 1.25.0.
1371896Svbart@nginx.com</para>
1381896Svbart@nginx.com</change>
1391896Svbart@nginx.com
1401896Svbart@nginx.com</changes>
1411896Svbart@nginx.com
1421896Svbart@nginx.com
1431896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
1441945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
1451896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1461896Svbart@nginx.com
1471910So.canty@f5.com<change type="feature">
1481910So.canty@f5.com<para>
1491944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
1501942Sa.suvorov@f5.com</para>
1511942Sa.suvorov@f5.com</change>
1521942Sa.suvorov@f5.com
1531942Sa.suvorov@f5.com<change type="feature">
1541942Sa.suvorov@f5.com<para>
1551920Sa.suvorov@f5.comTLS sessions cache.
1561920Sa.suvorov@f5.com</para>
1571920Sa.suvorov@f5.com</change>
1581920Sa.suvorov@f5.com
1591920Sa.suvorov@f5.com<change type="feature">
1601920Sa.suvorov@f5.com<para>
1611944Svbart@nginx.comTLS session tickets.
1621910So.canty@f5.com</para>
1631910So.canty@f5.com</change>
1641910So.canty@f5.com
1651926Smax.romanov@nginx.com<change type="feature">
1661926Smax.romanov@nginx.com<para>
1671926Smax.romanov@nginx.comapplication restart control.
1681926Smax.romanov@nginx.com</para>
1691926Smax.romanov@nginx.com</change>
1701926Smax.romanov@nginx.com
1711936So.canty@f5.com<change type="feature">
1721936So.canty@f5.com<para>
1731944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
1741936So.canty@f5.com</para>
1751936So.canty@f5.com</change>
1761936So.canty@f5.com
1771907Smax.romanov@nginx.com<change type="bugfix">
1781907Smax.romanov@nginx.com<para>
1791944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
1801944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
1811921Sa.suvorov@f5.com</para>
1821921Sa.suvorov@f5.com</change>
1831921Sa.suvorov@f5.com
1841921Sa.suvorov@f5.com<change type="bugfix">
1851921Sa.suvorov@f5.com<para>
1861944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
1871944Svbart@nginx.combundles in a listener if the client did not use SNI.
1881907Smax.romanov@nginx.com</para>
1891907Smax.romanov@nginx.com</change>
1901907Smax.romanov@nginx.com
1911907Smax.romanov@nginx.com<change type="bugfix">
1921907Smax.romanov@nginx.com<para>
1931950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
1941915Smax.romanov@nginx.comreconfiguration.
1951915Smax.romanov@nginx.com</para>
1961915Smax.romanov@nginx.com</change>
1971915Smax.romanov@nginx.com
1981915Smax.romanov@nginx.com<change type="bugfix">
1991915Smax.romanov@nginx.com<para>
2001944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
2011944Svbart@nginx.comframework.
2021944Svbart@nginx.com</para>
2031944Svbart@nginx.com</change>
2041944Svbart@nginx.com
2051944Svbart@nginx.com<change type="bugfix">
2061944Svbart@nginx.com<para>
2071944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
2081944Svbart@nginx.comstopped or crashed.
2091907Smax.romanov@nginx.com</para>
2101907Smax.romanov@nginx.com</change>
2111907Smax.romanov@nginx.com
2121909So.canty@f5.com<change type="bugfix">
2131909So.canty@f5.com<para>
2141909So.canty@f5.comthe controller or router process could crash if the configuration contained
2151909So.canty@f5.coma full-form IPv6 in a listener address.
2161909So.canty@f5.com</para>
2171909So.canty@f5.com</change>
2181909So.canty@f5.com
2191916Smax.romanov@nginx.com<change type="bugfix">
2201916Smax.romanov@nginx.com<para>
2211929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
2221929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
2231929Sz.hong@f5.com</para>
2241929Sz.hong@f5.com</change>
2251929Sz.hong@f5.com
2261930So.canty@f5.com<change type="bugfix">
2271930So.canty@f5.com<para>
2281944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
2291944Svbart@nginx.comor destination address patterns.
2301930So.canty@f5.com</para>
2311930So.canty@f5.com</change>
2321930So.canty@f5.com
2331896Svbart@nginx.com</changes>
2341896Svbart@nginx.com
2351896Svbart@nginx.com
2361887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
2371891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2381887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2391887Sdefan@nginx.com
2401887Sdefan@nginx.com<change>
2411887Sdefan@nginx.com<para>
2421887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
2431887Sdefan@nginx.com</para>
2441887Sdefan@nginx.com</change>
2451887Sdefan@nginx.com
2461887Sdefan@nginx.com</changes>
2471887Sdefan@nginx.com
2481887Sdefan@nginx.com
2491887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
2501891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2511887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2521887Sdefan@nginx.com
2531887Sdefan@nginx.com<change>
2541887Sdefan@nginx.com<para>
2551887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
2561887Sdefan@nginx.com</para>
2571887Sdefan@nginx.com</change>
2581887Sdefan@nginx.com
2591887Sdefan@nginx.com</changes>
2601887Sdefan@nginx.com
2611887Sdefan@nginx.com
2621834Svbart@nginx.com<changes apply="unit-php
2631834Svbart@nginx.com                unit-python unit-python2.7
2641834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2651834Svbart@nginx.com                unit-python3.8 unit-python3.9
2661834Svbart@nginx.com                unit-go
2671834Svbart@nginx.com                unit-perl
2681834Svbart@nginx.com                unit-ruby
2691834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2701834Svbart@nginx.com                unit-jsc14 unit-jsc15"
2711839Svbart@nginx.com         ver="1.24.0" rev="1"
2721891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2731839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2741839Svbart@nginx.com
2751839Svbart@nginx.com<change>
2761839Svbart@nginx.com<para>
2771839Svbart@nginx.comNGINX Unit updated to 1.24.0.
2781839Svbart@nginx.com</para>
2791839Svbart@nginx.com</change>
2801839Svbart@nginx.com
2811839Svbart@nginx.com</changes>
2821839Svbart@nginx.com
2831839Svbart@nginx.com
2841839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
2851891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2861839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2871839Svbart@nginx.com
2881882So.canty@f5.com<change type="change">
2891882So.canty@f5.com<para>
2901882So.canty@f5.comPHP added to the default MIME type list.
2911882So.canty@f5.com</para>
2921882So.canty@f5.com</change>
2931882So.canty@f5.com
2941855Sz.hong@f5.com<change type="feature">
2951855Sz.hong@f5.com<para>
2961885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
2971885Sa.suvorov@f5.com</para>
2981885Sa.suvorov@f5.com</change>
2991885Sa.suvorov@f5.com
3001885Sa.suvorov@f5.com<change type="feature">
3011885Sa.suvorov@f5.com<para>
3021890Svbart@nginx.comthe ability to limit static file serving by MIME types.
3031890Svbart@nginx.com</para>
3041890Svbart@nginx.com</change>
3051890Svbart@nginx.com
3061890Svbart@nginx.com<change type="feature">
3071890Svbart@nginx.com<para>
3081890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
3091890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
3101872So.canty@f5.com</para>
3111872So.canty@f5.com</change>
3121872So.canty@f5.com
3131872So.canty@f5.com<change type="feature">
3141872So.canty@f5.com<para>
3151889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
3161889Sartem.konev@nginx.comNode.js.
3171865So.canty@f5.com</para>
3181865So.canty@f5.com</change>
3191865So.canty@f5.com
3201865So.canty@f5.com<change type="feature">
3211865So.canty@f5.com<para>
3221890Svbart@nginx.commultiple "targets" in Python applications.
3231855Sz.hong@f5.com</para>
3241855Sz.hong@f5.com</change>
3251855Sz.hong@f5.com
3261870So.canty@f5.com<change type="feature">
3271870So.canty@f5.com<para>
3281870So.canty@f5.comcompatibility with Ruby 3.0.
3291870So.canty@f5.com</para>
3301870So.canty@f5.com</change>
3311870So.canty@f5.com
3321861Svbart@nginx.com<change type="bugfix">
3331861Svbart@nginx.com<para>
3341889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
3351884Sa.suvorov@f5.com</para>
3361884Sa.suvorov@f5.com</change>
3371884Sa.suvorov@f5.com
3381884Sa.suvorov@f5.com<change type="bugfix">
3391884Sa.suvorov@f5.com<para>
3401861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
3411861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
3421861Svbart@nginx.com</para>
3431861Svbart@nginx.com</change>
3441861Svbart@nginx.com
3451839Svbart@nginx.com</changes>
3461839Svbart@nginx.com
3471839Svbart@nginx.com
3481839Svbart@nginx.com<changes apply="unit-php
3491839Svbart@nginx.com                unit-python unit-python2.7
3501839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3511839Svbart@nginx.com                unit-python3.8 unit-python3.9
3521839Svbart@nginx.com                unit-go
3531839Svbart@nginx.com                unit-perl
3541839Svbart@nginx.com                unit-ruby
3551839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3561839Svbart@nginx.com                unit-jsc14 unit-jsc15"
3571834Svbart@nginx.com         ver="1.23.0" rev="1"
3581834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
3591834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3601834Svbart@nginx.com
3611834Svbart@nginx.com<change>
3621834Svbart@nginx.com<para>
3631834Svbart@nginx.comNGINX Unit updated to 1.23.0.
3641834Svbart@nginx.com</para>
3651834Svbart@nginx.com</change>
3661834Svbart@nginx.com
3671834Svbart@nginx.com</changes>
3681834Svbart@nginx.com
3691834Svbart@nginx.com
3701806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
3711834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
3721806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3731806Svbart@nginx.com
3741825Sthresh@nginx.com<change type="feature">
3751825Sthresh@nginx.com<para>
3761833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
3771828Sa.suvorov@f5.comIndication (SNI) TLS extension.
3781828Sa.suvorov@f5.com</para>
3791828Sa.suvorov@f5.com</change>
3801828Sa.suvorov@f5.com
3811828Sa.suvorov@f5.com<change type="feature">
3821828Sa.suvorov@f5.com<para>
3831833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
3841833Sartem.konev@nginx.cominstallation.
3851825Sthresh@nginx.com</para>
3861825Sthresh@nginx.com</change>
3871825Sthresh@nginx.com
3881811Smax.romanov@nginx.com<change type="bugfix">
3891811Smax.romanov@nginx.com<para>
3901812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
3911812Svbart@nginx.comappeared in 1.17.0.
3921812Svbart@nginx.com</para>
3931812Svbart@nginx.com</change>
3941812Svbart@nginx.com
3951812Svbart@nginx.com<change type="bugfix">
3961812Svbart@nginx.com<para>
3971833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
3981812Svbart@nginx.comappeared in 1.6.
3991812Svbart@nginx.com</para>
4001812Svbart@nginx.com</change>
4011812Svbart@nginx.com
4021812Svbart@nginx.com<change type="bugfix">
4031812Svbart@nginx.com<para>
4041833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
4051832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
4061832Smax.romanov@nginx.com</para>
4071832Smax.romanov@nginx.com</change>
4081832Smax.romanov@nginx.com
4091832Smax.romanov@nginx.com<change type="bugfix">
4101832Smax.romanov@nginx.com<para>
4111833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
4121811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
4131811Smax.romanov@nginx.com</para>
4141811Smax.romanov@nginx.com</change>
4151806Svbart@nginx.com
4161813Svbart@nginx.com<change type="bugfix">
4171813Svbart@nginx.com<para>
4181813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
4191813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
4201813Svbart@nginx.com</para>
4211813Svbart@nginx.com</change>
4221813Svbart@nginx.com
4231814Svbart@nginx.com<change type="bugfix">
4241814Svbart@nginx.com<para>
4251820Svbart@nginx.comthe controller process could crash while requesting information about a
4261820Svbart@nginx.comcertificate with a non-DNS SAN entry.
4271820Svbart@nginx.com</para>
4281820Svbart@nginx.com</change>
4291820Svbart@nginx.com
4301820Svbart@nginx.com<change type="bugfix">
4311820Svbart@nginx.com<para>
4321822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
4331833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
4341822Svbart@nginx.com</para>
4351822Svbart@nginx.com</change>
4361822Svbart@nginx.com
4371822Svbart@nginx.com<change type="bugfix">
4381822Svbart@nginx.com<para>
4391833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
4401833Sartem.konev@nginx.comclass.
4411814Svbart@nginx.com</para>
4421814Svbart@nginx.com</change>
4431814Svbart@nginx.com
4441815Svbart@nginx.com<change type="bugfix">
4451815Svbart@nginx.com<para>
4461815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
4471815Svbart@nginx.comappeared in 1.22.0.
4481815Svbart@nginx.com</para>
4491815Svbart@nginx.com</change>
4501815Svbart@nginx.com
4511806Svbart@nginx.com</changes>
4521806Svbart@nginx.com
4531806Svbart@nginx.com
4541798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
4551798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
4561798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4571798Sdefan@nginx.com
4581798Sdefan@nginx.com<change>
4591798Sdefan@nginx.com<para>
4601798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
4611798Sdefan@nginx.com</para>
4621798Sdefan@nginx.com</change>
4631798Sdefan@nginx.com
4641798Sdefan@nginx.com</changes>
4651798Sdefan@nginx.com
4661798Sdefan@nginx.com
4671763Sdefan@nginx.com<changes apply="unit-php
4681763Sdefan@nginx.com                unit-python unit-python2.7
4691763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4701763Sdefan@nginx.com                unit-python3.8
4711763Sdefan@nginx.com                unit-go
4721763Sdefan@nginx.com                unit-perl
4731763Sdefan@nginx.com                unit-ruby
4741763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4751763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
4761763Sdefan@nginx.com         ver="1.22.0" rev="1"
4771793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
4781763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4791763Sdefan@nginx.com
4801763Sdefan@nginx.com<change>
4811763Sdefan@nginx.com<para>
4821763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
4831763Sdefan@nginx.com</para>
4841763Sdefan@nginx.com</change>
4851763Sdefan@nginx.com
4861763Sdefan@nginx.com</changes>
4871763Sdefan@nginx.com
4881763Sdefan@nginx.com
4891727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
4901793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
4911727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4921727Svbart@nginx.com
4931759Svbart@nginx.com<change type="feature">
4941759Svbart@nginx.com<para>
4951792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
4961792Svbart@nginx.comcompliant with Stream API.
4971759Svbart@nginx.com</para>
4981759Svbart@nginx.com</change>
4991759Svbart@nginx.com
5001766Smax.romanov@nginx.com<change type="feature">
5011766Smax.romanov@nginx.com<para>
5021792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
5031792Svbart@nginx.comapps.
5041732Svbart@nginx.com</para>
5051732Svbart@nginx.com</change>
5061732Svbart@nginx.com
5071733Svbart@nginx.com<change type="bugfix">
5081733Svbart@nginx.com<para>
5091792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
5101792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
5111754Smax.romanov@nginx.com</para>
5121754Smax.romanov@nginx.com</change>
5131754Smax.romanov@nginx.com
5141755Smax.romanov@nginx.com<change type="bugfix">
5151755Smax.romanov@nginx.com<para>
5161790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
5171755Smax.romanov@nginx.comappeared in 1.19.0.
5181755Smax.romanov@nginx.com</para>
5191755Smax.romanov@nginx.com</change>
5201755Smax.romanov@nginx.com
5211756Smax.romanov@nginx.com<change type="bugfix">
5221756Smax.romanov@nginx.com<para>
5231790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
5241790Sartem.konev@nginx.comappeared in 1.19.0.
5251756Smax.romanov@nginx.com</para>
5261756Smax.romanov@nginx.com</change>
5271756Smax.romanov@nginx.com
5281760Smax.romanov@nginx.com<change type="bugfix">
5291760Smax.romanov@nginx.com<para>
5301792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
5311792Svbart@nginx.com</para>
5321792Svbart@nginx.com</change>
5331792Svbart@nginx.com
5341792Svbart@nginx.com<change type="bugfix">
5351792Svbart@nginx.com<para>
5361792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
5371792Svbart@nginx.commissing in the PHP module.
5381792Svbart@nginx.com</para>
5391792Svbart@nginx.com</change>
5401792Svbart@nginx.com
5411792Svbart@nginx.com<change type="bugfix">
5421792Svbart@nginx.com<para>
5431792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
5441792Svbart@nginx.com</para>
5451792Svbart@nginx.com</change>
5461792Svbart@nginx.com
5471792Svbart@nginx.com<change type="bugfix">
5481792Svbart@nginx.com<para>
5491792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
5501792Svbart@nginx.com</para>
5511792Svbart@nginx.com</change>
5521792Svbart@nginx.com
5531792Svbart@nginx.com<change type="bugfix">
5541792Svbart@nginx.com<para>
5551792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
5561792Svbart@nginx.comthe bug had appeared in 1.21.0.
5571760Smax.romanov@nginx.com</para>
5581760Smax.romanov@nginx.com</change>
5591760Smax.romanov@nginx.com
5601780Smax.romanov@nginx.com<change type="bugfix">
5611780Smax.romanov@nginx.com<para>
5621790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
5631790Sartem.konev@nginx.comWebSocket.
5641780Smax.romanov@nginx.com</para>
5651780Smax.romanov@nginx.com</change>
5661780Smax.romanov@nginx.com
5671789Smax.romanov@nginx.com<change type="bugfix">
5681789Smax.romanov@nginx.com<para>
5691789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
5701789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
5711789Smax.romanov@nginx.com</para>
5721789Smax.romanov@nginx.com</change>
5731789Smax.romanov@nginx.com
5741727Svbart@nginx.com</changes>
5751727Svbart@nginx.com
5761727Svbart@nginx.com
5771722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
5781722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5791722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5801722Svbart@nginx.com
5811722Svbart@nginx.com<change>
5821722Svbart@nginx.com<para>
5831722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
5841722Svbart@nginx.com</para>
5851722Svbart@nginx.com</change>
5861722Svbart@nginx.com
5871722Svbart@nginx.com</changes>
5881722Svbart@nginx.com
5891722Svbart@nginx.com
5901722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
5911722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5921722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5931722Svbart@nginx.com
5941722Svbart@nginx.com<change>
5951722Svbart@nginx.com<para>
5961722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
5971722Svbart@nginx.com</para>
5981722Svbart@nginx.com</change>
5991722Svbart@nginx.com
6001722Svbart@nginx.com</changes>
6011722Svbart@nginx.com
6021722Svbart@nginx.com
6031722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
6041722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6051722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6061722Svbart@nginx.com
6071722Svbart@nginx.com<change>
6081722Svbart@nginx.com<para>
6091722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
6101722Svbart@nginx.com</para>
6111722Svbart@nginx.com</change>
6121722Svbart@nginx.com
6131722Svbart@nginx.com</changes>
6141722Svbart@nginx.com
6151722Svbart@nginx.com
6161722Svbart@nginx.com<changes apply="unit-php
6171722Svbart@nginx.com                unit-python unit-python2.7
6181722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6191722Svbart@nginx.com                unit-python3.8
6201722Svbart@nginx.com                unit-go
6211722Svbart@nginx.com                unit-perl
6221722Svbart@nginx.com                unit-ruby
6231722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
6241722Svbart@nginx.com         ver="1.21.0" rev="1"
6251722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6261722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6271722Svbart@nginx.com
6281722Svbart@nginx.com<change>
6291722Svbart@nginx.com<para>
6301722Svbart@nginx.comNGINX Unit updated to 1.21.0.
6311722Svbart@nginx.com</para>
6321722Svbart@nginx.com</change>
6331722Svbart@nginx.com
6341722Svbart@nginx.com</changes>
6351722Svbart@nginx.com
6361722Svbart@nginx.com
6371722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
6381722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6391722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6401722Svbart@nginx.com
6411722Svbart@nginx.com<change type="change">
6421722Svbart@nginx.com<para>
6431722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
6441722Svbart@nginx.com</para>
6451722Svbart@nginx.com</change>
6461722Svbart@nginx.com
6471722Svbart@nginx.com<change type="change">
6481722Svbart@nginx.com<para>
6491722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
6501722Svbart@nginx.comnames.
6511722Svbart@nginx.com</para>
6521722Svbart@nginx.com</change>
6531722Svbart@nginx.com
6541722Svbart@nginx.com<change type="change">
6551722Svbart@nginx.com<para>
6561722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
6571722Svbart@nginx.comdefault.
6581722Svbart@nginx.com</para>
6591722Svbart@nginx.com</change>
6601722Svbart@nginx.com
6611722Svbart@nginx.com<change type="feature">
6621722Svbart@nginx.com<para>
6631722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
6641722Svbart@nginx.com</para>
6651722Svbart@nginx.com</change>
6661722Svbart@nginx.com
6671722Svbart@nginx.com<change type="feature">
6681722Svbart@nginx.com<para>
6691722Svbart@nginx.comregular expressions in route matching patterns.
6701722Svbart@nginx.com</para>
6711722Svbart@nginx.com</change>
6721722Svbart@nginx.com
6731722Svbart@nginx.com<change type="feature">
6741722Svbart@nginx.com<para>
6751722Svbart@nginx.comcompatibility with Python 3.9.
6761722Svbart@nginx.com</para>
6771722Svbart@nginx.com</change>
6781722Svbart@nginx.com
6791722Svbart@nginx.com<change type="feature">
6801722Svbart@nginx.com<para>
6811722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
6821722Svbart@nginx.com</para>
6831722Svbart@nginx.com</change>
6841722Svbart@nginx.com
6851722Svbart@nginx.com<change type="feature">
6861722Svbart@nginx.com<para>
6871722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
6881722Svbart@nginx.com</para>
6891722Svbart@nginx.com</change>
6901722Svbart@nginx.com
6911722Svbart@nginx.com<change type="feature">
6921722Svbart@nginx.com<para>
6931722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
6941722Svbart@nginx.comcontinues code execution without holding onto the client connection.
6951722Svbart@nginx.com</para>
6961722Svbart@nginx.com</change>
6971722Svbart@nginx.com
6981722Svbart@nginx.com<change type="feature">
6991722Svbart@nginx.com<para>
7001722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
7011722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
7021722Svbart@nginx.com</para>
7031722Svbart@nginx.com</change>
7041722Svbart@nginx.com
7051722Svbart@nginx.com<change type="feature">
7061722Svbart@nginx.com<para>
7071722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
7081722Svbart@nginx.commounting of eponymous filesystems.
7091722Svbart@nginx.com</para>
7101722Svbart@nginx.com</change>
7111722Svbart@nginx.com
7121722Svbart@nginx.com<change type="bugfix">
7131722Svbart@nginx.com<para>
7141722Svbart@nginx.comthe router process could crash when running Go applications under high load;
7151722Svbart@nginx.comthe bug had appeared in 1.19.0.
7161722Svbart@nginx.com</para>
7171722Svbart@nginx.com</change>
7181722Svbart@nginx.com
7191722Svbart@nginx.com<change type="bugfix">
7201722Svbart@nginx.com<para>
7211722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
7221722Svbart@nginx.com</para>
7231722Svbart@nginx.com</change>
7241722Svbart@nginx.com
7251722Svbart@nginx.com<change type="bugfix">
7261722Svbart@nginx.com<para>
7271722Svbart@nginx.comvarious compatibility issues in Java applications.
7281722Svbart@nginx.com</para>
7291722Svbart@nginx.com</change>
7301722Svbart@nginx.com
7311722Svbart@nginx.com<change type="bugfix">
7321722Svbart@nginx.com<para>
7331722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
7341722Svbart@nginx.comuse "rootfs" isolation.
7351722Svbart@nginx.com</para>
7361722Svbart@nginx.com</change>
7371722Svbart@nginx.com
7381722Svbart@nginx.com</changes>
7391722Svbart@nginx.com
7401722Svbart@nginx.com
7411330Svbart@nginx.com<changes apply="unit-php
7421330Svbart@nginx.com                unit-python unit-python2.7
7431330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7441330Svbart@nginx.com                unit-python3.8
7451330Svbart@nginx.com                unit-go
7461330Svbart@nginx.com                unit-perl
7471330Svbart@nginx.com                unit-ruby
7481330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
7491640Svbart@nginx.com         ver="1.20.0" rev="1"
7501640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
7511640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7521640Svbart@nginx.com
7531640Svbart@nginx.com<change>
7541640Svbart@nginx.com<para>
7551640Svbart@nginx.comNGINX Unit updated to 1.20.0.
7561640Svbart@nginx.com</para>
7571640Svbart@nginx.com</change>
7581640Svbart@nginx.com
7591640Svbart@nginx.com</changes>
7601640Svbart@nginx.com
7611640Svbart@nginx.com
7621640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
7631640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
7641640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7651640Svbart@nginx.com
7661640Svbart@nginx.com<change type="change">
7671640Svbart@nginx.com<para>
7681640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
7691640Svbart@nginx.comextensions from the host system.
7701640Svbart@nginx.com</para>
7711640Svbart@nginx.com</change>
7721640Svbart@nginx.com
7731640Svbart@nginx.com<change type="change">
7741640Svbart@nginx.com<para>
7751640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
7761640Svbart@nginx.com</para>
7771640Svbart@nginx.com</change>
7781640Svbart@nginx.com
7791643Svbart@nginx.com<change type="change">
7801643Svbart@nginx.com<para>
7811643Svbart@nginx.comfunctional tests migrated to the pytest framework.
7821643Svbart@nginx.com</para>
7831643Svbart@nginx.com</change>
7841643Svbart@nginx.com
7851640Svbart@nginx.com<change type="feature">
7861640Svbart@nginx.com<para>
7871640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
7881640Svbart@nginx.cominterface.
7891640Svbart@nginx.com</para>
7901640Svbart@nginx.com</change>
7911640Svbart@nginx.com
7921640Svbart@nginx.com<change type="feature">
7931640Svbart@nginx.com<para>
7941640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
7951640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
7961640Svbart@nginx.comspecification.
7971640Svbart@nginx.com</para>
7981640Svbart@nginx.com</change>
7991640Svbart@nginx.com
8001640Svbart@nginx.com<change type="feature">
8011640Svbart@nginx.com<para>
8021640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
8031640Svbart@nginx.comenvironments.
8041640Svbart@nginx.com</para>
8051640Svbart@nginx.com</change>
8061640Svbart@nginx.com
8071640Svbart@nginx.com<change type="feature">
8081640Svbart@nginx.com<para>
8091640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
8101640Svbart@nginx.com</para>
8111640Svbart@nginx.com</change>
8121640Svbart@nginx.com
8131640Svbart@nginx.com<change type="feature">
8141640Svbart@nginx.com<para>
8151640Svbart@nginx.comthe "callable" option sets Python application callable names.
8161640Svbart@nginx.com</para>
8171640Svbart@nginx.com</change>
8181640Svbart@nginx.com
8191640Svbart@nginx.com<change type="feature">
8201640Svbart@nginx.com<para>
8211640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
8221640Svbart@nginx.com</para>
8231640Svbart@nginx.com</change>
8241640Svbart@nginx.com
8251640Svbart@nginx.com<change type="feature">
8261640Svbart@nginx.com<para>
8271640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
8281640Svbart@nginx.comautomatic mounting of language module dependencies.
8291640Svbart@nginx.com</para>
8301640Svbart@nginx.com</change>
8311640Svbart@nginx.com
8321640Svbart@nginx.com<change type="bugfix">
8331640Svbart@nginx.com<para>
8341640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
8351640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
8361640Svbart@nginx.com</para>
8371640Svbart@nginx.com</change>
8381640Svbart@nginx.com
8391640Svbart@nginx.com<change type="bugfix">
8401640Svbart@nginx.com<para>
8411640Svbart@nginx.comthe router process could crash during reconfiguration.
8421640Svbart@nginx.com</para>
8431640Svbart@nginx.com</change>
8441640Svbart@nginx.com
8451640Svbart@nginx.com<change type="bugfix">
8461640Svbart@nginx.com<para>
8471640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
8481640Svbart@nginx.com</para>
8491640Svbart@nginx.com</change>
8501640Svbart@nginx.com
8511640Svbart@nginx.com<change type="bugfix">
8521640Svbart@nginx.com<para>
8531640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
8541640Svbart@nginx.comthe bug had appeared in 1.19.0.
8551640Svbart@nginx.com</para>
8561640Svbart@nginx.com</change>
8571640Svbart@nginx.com
8581640Svbart@nginx.com<change type="bugfix">
8591640Svbart@nginx.com<para>
8601640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
8611640Svbart@nginx.comthe bug had appeared in 1.16.0.
8621640Svbart@nginx.com</para>
8631640Svbart@nginx.com</change>
8641640Svbart@nginx.com
8651640Svbart@nginx.com</changes>
8661640Svbart@nginx.com
8671640Svbart@nginx.com
8681640Svbart@nginx.com<changes apply="unit-php
8691640Svbart@nginx.com                unit-python unit-python2.7
8701640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8711640Svbart@nginx.com                unit-python3.8
8721640Svbart@nginx.com                unit-go
8731640Svbart@nginx.com                unit-perl
8741640Svbart@nginx.com                unit-ruby
8751640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8761570Svbart@nginx.com         ver="1.19.0" rev="1"
8771570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
8781570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8791570Svbart@nginx.com
8801570Svbart@nginx.com<change>
8811570Svbart@nginx.com<para>
8821570Svbart@nginx.comNGINX Unit updated to 1.19.0.
8831570Svbart@nginx.com</para>
8841570Svbart@nginx.com</change>
8851570Svbart@nginx.com
8861570Svbart@nginx.com</changes>
8871570Svbart@nginx.com
8881570Svbart@nginx.com
8891570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1"
8901570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
8911570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8921570Svbart@nginx.com
8931570Svbart@nginx.com<change type="feature">
8941570Svbart@nginx.com<para>
8951570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
8961570Svbart@nginx.comincrease performance, and improve scalability.
8971570Svbart@nginx.com</para>
8981570Svbart@nginx.com</change>
8991570Svbart@nginx.com
9001570Svbart@nginx.com<change type="feature">
9011570Svbart@nginx.com<para>
9021570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns.
9031570Svbart@nginx.com</para>
9041570Svbart@nginx.com</change>
9051570Svbart@nginx.com
9061570Svbart@nginx.com<change type="feature">
9071570Svbart@nginx.com<para>
9081570Svbart@nginx.comchunked transfer encoding in proxy responses.
9091570Svbart@nginx.com</para>
9101570Svbart@nginx.com</change>
9111570Svbart@nginx.com
9121570Svbart@nginx.com<change type="feature">
9131570Svbart@nginx.com<para>
9141570Svbart@nginx.combasic variables support in the "pass" option.
9151570Svbart@nginx.com</para>
9161570Svbart@nginx.com</change>
9171570Svbart@nginx.com
9181570Svbart@nginx.com<change type="feature">
9191570Svbart@nginx.com<para>
9201570Svbart@nginx.comcompatibility with PHP 8 Beta 1.
9211570Svbart@nginx.comThanks to Remi Collet.
9221570Svbart@nginx.com</para>
9231570Svbart@nginx.com</change>
9241570Svbart@nginx.com
9251570Svbart@nginx.com<change type="bugfix">
9261570Svbart@nginx.com<para>
9271570Svbart@nginx.comthe router process could crash while passing requests to an application under
9281570Svbart@nginx.comhigh load.
9291570Svbart@nginx.com</para>
9301570Svbart@nginx.com</change>
9311570Svbart@nginx.com
9321570Svbart@nginx.com<change type="bugfix">
9331570Svbart@nginx.com<para>
9341570Svbart@nginx.coma number of language modules failed to build on some systems;
9351570Svbart@nginx.comthe bug had appeared in 1.18.0.
9361570Svbart@nginx.com</para>
9371570Svbart@nginx.com</change>
9381570Svbart@nginx.com
9391570Svbart@nginx.com<change type="bugfix">
9401570Svbart@nginx.com<para>
9411570Svbart@nginx.comtime in error log messages from PHP applications could lag.
9421570Svbart@nginx.com</para>
9431570Svbart@nginx.com</change>
9441570Svbart@nginx.com
9451570Svbart@nginx.com<change type="bugfix">
9461570Svbart@nginx.com<para>
9471570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start;
9481570Svbart@nginx.comthe bug had appeared in 1.18.0.
9491570Svbart@nginx.com</para>
9501570Svbart@nginx.com</change>
9511570Svbart@nginx.com
9521570Svbart@nginx.com<change type="bugfix">
9531570Svbart@nginx.com<para>
9541570Svbart@nginx.commemory leak during reconfiguration.
9551570Svbart@nginx.com</para>
9561570Svbart@nginx.com</change>
9571570Svbart@nginx.com
9581570Svbart@nginx.com<change type="bugfix">
9591570Svbart@nginx.com<para>
9601570Svbart@nginx.comthe daemon didn't start without language modules;
9611570Svbart@nginx.comthe bug had appeared in 1.18.0.
9621570Svbart@nginx.com</para>
9631570Svbart@nginx.com</change>
9641570Svbart@nginx.com
9651570Svbart@nginx.com<change type="bugfix">
9661570Svbart@nginx.com<para>
9671570Svbart@nginx.comthe router process could crash at exit.
9681570Svbart@nginx.com</para>
9691570Svbart@nginx.com</change>
9701570Svbart@nginx.com
9711570Svbart@nginx.com<change type="bugfix">
9721570Svbart@nginx.com<para>
9731570Svbart@nginx.comNode.js applications could crash at exit.
9741570Svbart@nginx.com</para>
9751570Svbart@nginx.com</change>
9761570Svbart@nginx.com
9771570Svbart@nginx.com<change type="bugfix">
9781570Svbart@nginx.com<para>
9791570Svbart@nginx.comthe Ruby module could be linked against a wrong library version.
9801570Svbart@nginx.com</para>
9811570Svbart@nginx.com</change>
9821570Svbart@nginx.com
9831570Svbart@nginx.com</changes>
9841570Svbart@nginx.com
9851570Svbart@nginx.com
9861570Svbart@nginx.com<changes apply="unit-php
9871570Svbart@nginx.com                unit-python unit-python2.7
9881570Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9891570Svbart@nginx.com                unit-python3.8
9901570Svbart@nginx.com                unit-go
9911570Svbart@nginx.com                unit-perl
9921570Svbart@nginx.com                unit-ruby
9931570Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9941491Svbart@nginx.com         ver="1.18.0" rev="1"
9951491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
9961491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9971491Svbart@nginx.com
9981491Svbart@nginx.com<change>
9991491Svbart@nginx.com<para>
10001491Svbart@nginx.comNGINX Unit updated to 1.18.0.
10011491Svbart@nginx.com</para>
10021491Svbart@nginx.com</change>
10031491Svbart@nginx.com
10041491Svbart@nginx.com</changes>
10051491Svbart@nginx.com
10061491Svbart@nginx.com
10071491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1"
10081491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
10091491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10101491Svbart@nginx.com
10111491Svbart@nginx.com<change type="feature">
10121491Svbart@nginx.com<para>
10131491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application.
10141491Svbart@nginx.com</para>
10151491Svbart@nginx.com</change>
10161491Svbart@nginx.com
10171491Svbart@nginx.com<change type="feature">
10181491Svbart@nginx.com<para>
10191491Svbart@nginx.commultiple "targets" in PHP applications.
10201491Svbart@nginx.com</para>
10211491Svbart@nginx.com</change>
10221491Svbart@nginx.com
10231491Svbart@nginx.com<change type="feature">
10241491Svbart@nginx.com<para>
10251491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options
10261491Svbart@nginx.comand in the "pass" option.
10271491Svbart@nginx.com</para>
10281491Svbart@nginx.com</change>
10291491Svbart@nginx.com
10301491Svbart@nginx.com</changes>
10311491Svbart@nginx.com
10321491Svbart@nginx.com
10331491Svbart@nginx.com<changes apply="unit-php
10341491Svbart@nginx.com                unit-python unit-python2.7
10351491Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10361491Svbart@nginx.com                unit-python3.8
10371491Svbart@nginx.com                unit-go
10381491Svbart@nginx.com                unit-perl
10391491Svbart@nginx.com                unit-ruby
10401491Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10411460Svbart@nginx.com         ver="1.17.0" rev="1"
10421460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
10431460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10441460Svbart@nginx.com
10451460Svbart@nginx.com<change>
10461460Svbart@nginx.com<para>
10471460Svbart@nginx.comNGINX Unit updated to 1.17.0.
10481460Svbart@nginx.com</para>
10491460Svbart@nginx.com</change>
10501460Svbart@nginx.com
10511460Svbart@nginx.com</changes>
10521460Svbart@nginx.com
10531460Svbart@nginx.com
10541460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1"
10551460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
10561460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10571460Svbart@nginx.com
10581460Svbart@nginx.com<change type="feature">
10591460Svbart@nginx.com<para>
10601460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external
10611460Svbart@nginx.comredirection.
10621460Svbart@nginx.com</para>
10631460Svbart@nginx.com</change>
10641460Svbart@nginx.com
10651460Svbart@nginx.com<change type="feature">
10661460Svbart@nginx.com<para>
10671460Svbart@nginx.comfractional weights support for upstream servers.
10681460Svbart@nginx.com</para>
10691460Svbart@nginx.com</change>
10701460Svbart@nginx.com
10711460Svbart@nginx.com<change type="bugfix">
10721460Svbart@nginx.com<para>
10731460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under
10741460Svbart@nginx.comhigh load.
10751460Svbart@nginx.com</para>
10761460Svbart@nginx.com</change>
10771460Svbart@nginx.com
10781460Svbart@nginx.com<change type="bugfix">
10791460Svbart@nginx.com<para>
10801460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0.
10811460Svbart@nginx.com</para>
10821460Svbart@nginx.com</change>
10831460Svbart@nginx.com
10841460Svbart@nginx.com<change type="bugfix">
10851460Svbart@nginx.com<para>
10861460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching
10871460Svbart@nginx.comopen connections limit.
10881460Svbart@nginx.com</para>
10891460Svbart@nginx.com</change>
10901460Svbart@nginx.com
10911460Svbart@nginx.com<change type="bugfix">
10921460Svbart@nginx.com<para>
10931460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log
10941460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0.
10951460Svbart@nginx.com</para>
10961460Svbart@nginx.com</change>
10971460Svbart@nginx.com
10981460Svbart@nginx.com<change type="bugfix">
10991460Svbart@nginx.com<para>
11001460Svbart@nginx.comexisting application processes didn't reopen the log file.
11011460Svbart@nginx.com</para>
11021460Svbart@nginx.com</change>
11031460Svbart@nginx.com
11041460Svbart@nginx.com<change type="bugfix">
11051460Svbart@nginx.com<para>
11061460Svbart@nginx.comincompatibility with some Node.js applications.
11071460Svbart@nginx.com</para>
11081460Svbart@nginx.com</change>
11091460Svbart@nginx.com
11101460Svbart@nginx.com<change type="bugfix">
11111460Svbart@nginx.com<para>
11121460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0.
11131460Svbart@nginx.com</para>
11141460Svbart@nginx.com</change>
11151460Svbart@nginx.com
11161460Svbart@nginx.com</changes>
11171460Svbart@nginx.com
11181460Svbart@nginx.com
11191460Svbart@nginx.com<changes apply="unit-php
11201460Svbart@nginx.com                unit-python unit-python2.7
11211460Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11221460Svbart@nginx.com                unit-python3.8
11231460Svbart@nginx.com                unit-go
11241460Svbart@nginx.com                unit-perl
11251460Svbart@nginx.com                unit-ruby
11261460Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11271404Svbart@nginx.com         ver="1.16.0" rev="1"
11281404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
11291404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11301404Svbart@nginx.com
11311404Svbart@nginx.com<change>
11321404Svbart@nginx.com<para>
11331404Svbart@nginx.comNGINX Unit updated to 1.16.0.
11341404Svbart@nginx.com</para>
11351404Svbart@nginx.com</change>
11361404Svbart@nginx.com
11371404Svbart@nginx.com</changes>
11381404Svbart@nginx.com
11391404Svbart@nginx.com
11401404Svbart@nginx.com<changes apply="unit" ver="1.16.0" rev="1"
11411404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
11421404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11431404Svbart@nginx.com
11441404Svbart@nginx.com<change type="feature">
11451404Svbart@nginx.com<para>
11461404Svbart@nginx.combasic load-balancing support with round-robin.
11471404Svbart@nginx.com</para>
11481404Svbart@nginx.com</change>
11491404Svbart@nginx.com
11501404Svbart@nginx.com<change type="feature">
11511404Svbart@nginx.com<para>
11521404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be
11531404Svbart@nginx.comserved from the "share" directory.
11541404Svbart@nginx.com</para>
11551404Svbart@nginx.com</change>
11561404Svbart@nginx.com
11571404Svbart@nginx.com<change type="feature">
11581404Svbart@nginx.com<para>
11591404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk.
11601404Svbart@nginx.com</para>
11611404Svbart@nginx.com</change>
11621404Svbart@nginx.com
11631404Svbart@nginx.com<change type="feature">
11641404Svbart@nginx.com<para>
11651404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON.
11661404Svbart@nginx.com</para>
11671404Svbart@nginx.com</change>
11681404Svbart@nginx.com
11691404Svbart@nginx.com<change type="bugfix">
11701404Svbart@nginx.com<para>
11711404Svbart@nginx.comnegative address matching in router might work improperly in combination with
11721404Svbart@nginx.comnon-negative patterns.
11731404Svbart@nginx.com</para>
11741404Svbart@nginx.com</change>
11751404Svbart@nginx.com
11761404Svbart@nginx.com<change type="bugfix">
11771404Svbart@nginx.com<para>
11781404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0.
11791404Svbart@nginx.com</para>
11801404