xref: /unit/docs/changes.xml (revision 2006)
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
531951Svbart@nginx.com</changes>
541951Svbart@nginx.com
551951Svbart@nginx.com
561951Svbart@nginx.com<changes apply="unit" ver="1.26.0" rev="1"
571951Svbart@nginx.com         date="" time=""
581951Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
591951Svbart@nginx.com
601960Sz.hong@f5.com<change type="change">
611960Sz.hong@f5.com<para>
621960Sz.hong@f5.comthe "share" option now specifies the entire path to the files it serves,
631960Sz.hong@f5.comrather than a document root directory to be prepended to the request URI.
641960Sz.hong@f5.com</para>
651960Sz.hong@f5.com</change>
661960Sz.hong@f5.com
671960Sz.hong@f5.com<change type="feature">
681960Sz.hong@f5.com<para>
69*2006Svbart@nginx.comautomatic adjustment of existing configurations to the new "share" behavior
70*2006Svbart@nginx.comwhen updating from previous versions.
71*2006Svbart@nginx.com</para>
72*2006Svbart@nginx.com</change>
73*2006Svbart@nginx.com
74*2006Svbart@nginx.com<change type="feature">
75*2006Svbart@nginx.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>
94*2006Svbart@nginx.comPHP opcache is shared between application processes.
951969Sz.hong@f5.com</para>
961969Sz.hong@f5.com</change>
971969Sz.hong@f5.com
981991Sz.hong@f5.com<change type="feature">
991991Sz.hong@f5.com<para>
1001991Sz.hong@f5.comrequest routing by the query string.
1011991Sz.hong@f5.com</para>
1021991Sz.hong@f5.com</change>
1031991Sz.hong@f5.com
1041955Smax.romanov@nginx.com<change type="bugfix">
1051955Smax.romanov@nginx.com<para>
106*2006Svbart@nginx.comthe router and app processes could crash when the requests limit was reached
107*2006Svbart@nginx.comby asynchronous or multithreaded apps.
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
1181992Smax.romanov@nginx.com<change type="bugfix">
1191992Smax.romanov@nginx.com<para>
120*2006Svbart@nginx.comfixed building with glibc 2.34, notably Fedora 35.
1211992Smax.romanov@nginx.com</para>
1221992Smax.romanov@nginx.com</change>
1231992Smax.romanov@nginx.com
1241951Svbart@nginx.com</changes>
1251951Svbart@nginx.com
1261951Svbart@nginx.com
1271951Svbart@nginx.com<changes apply="unit-php
1281951Svbart@nginx.com                unit-python unit-python2.7
1291951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1301951Svbart@nginx.com                unit-python3.8 unit-python3.9
1311951Svbart@nginx.com                unit-go
1321951Svbart@nginx.com                unit-perl
1331951Svbart@nginx.com                unit-ruby
1341951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1351951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
1361896Svbart@nginx.com         ver="1.25.0" rev="1"
1371945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
1381896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1391896Svbart@nginx.com
1401896Svbart@nginx.com<change>
1411896Svbart@nginx.com<para>
1421896Svbart@nginx.comNGINX Unit updated to 1.25.0.
1431896Svbart@nginx.com</para>
1441896Svbart@nginx.com</change>
1451896Svbart@nginx.com
1461896Svbart@nginx.com</changes>
1471896Svbart@nginx.com
1481896Svbart@nginx.com
1491896Svbart@nginx.com<changes apply="unit" ver="1.25.0" rev="1"
1501945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
1511896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1521896Svbart@nginx.com
1531910So.canty@f5.com<change type="feature">
1541910So.canty@f5.com<para>
1551944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
1561942Sa.suvorov@f5.com</para>
1571942Sa.suvorov@f5.com</change>
1581942Sa.suvorov@f5.com
1591942Sa.suvorov@f5.com<change type="feature">
1601942Sa.suvorov@f5.com<para>
1611920Sa.suvorov@f5.comTLS sessions cache.
1621920Sa.suvorov@f5.com</para>
1631920Sa.suvorov@f5.com</change>
1641920Sa.suvorov@f5.com
1651920Sa.suvorov@f5.com<change type="feature">
1661920Sa.suvorov@f5.com<para>
1671944Svbart@nginx.comTLS session tickets.
1681910So.canty@f5.com</para>
1691910So.canty@f5.com</change>
1701910So.canty@f5.com
1711926Smax.romanov@nginx.com<change type="feature">
1721926Smax.romanov@nginx.com<para>
1731926Smax.romanov@nginx.comapplication restart control.
1741926Smax.romanov@nginx.com</para>
1751926Smax.romanov@nginx.com</change>
1761926Smax.romanov@nginx.com
1771936So.canty@f5.com<change type="feature">
1781936So.canty@f5.com<para>
1791944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
1801936So.canty@f5.com</para>
1811936So.canty@f5.com</change>
1821936So.canty@f5.com
1831907Smax.romanov@nginx.com<change type="bugfix">
1841907Smax.romanov@nginx.com<para>
1851944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
1861944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
1871921Sa.suvorov@f5.com</para>
1881921Sa.suvorov@f5.com</change>
1891921Sa.suvorov@f5.com
1901921Sa.suvorov@f5.com<change type="bugfix">
1911921Sa.suvorov@f5.com<para>
1921944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
1931944Svbart@nginx.combundles in a listener if the client did not use SNI.
1941907Smax.romanov@nginx.com</para>
1951907Smax.romanov@nginx.com</change>
1961907Smax.romanov@nginx.com
1971907Smax.romanov@nginx.com<change type="bugfix">
1981907Smax.romanov@nginx.com<para>
1991950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
2001915Smax.romanov@nginx.comreconfiguration.
2011915Smax.romanov@nginx.com</para>
2021915Smax.romanov@nginx.com</change>
2031915Smax.romanov@nginx.com
2041915Smax.romanov@nginx.com<change type="bugfix">
2051915Smax.romanov@nginx.com<para>
2061944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
2071944Svbart@nginx.comframework.
2081944Svbart@nginx.com</para>
2091944Svbart@nginx.com</change>
2101944Svbart@nginx.com
2111944Svbart@nginx.com<change type="bugfix">
2121944Svbart@nginx.com<para>
2131944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
2141944Svbart@nginx.comstopped or crashed.
2151907Smax.romanov@nginx.com</para>
2161907Smax.romanov@nginx.com</change>
2171907Smax.romanov@nginx.com
2181909So.canty@f5.com<change type="bugfix">
2191909So.canty@f5.com<para>
2201909So.canty@f5.comthe controller or router process could crash if the configuration contained
2211909So.canty@f5.coma full-form IPv6 in a listener address.
2221909So.canty@f5.com</para>
2231909So.canty@f5.com</change>
2241909So.canty@f5.com
2251916Smax.romanov@nginx.com<change type="bugfix">
2261916Smax.romanov@nginx.com<para>
2271929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
2281929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
2291929Sz.hong@f5.com</para>
2301929Sz.hong@f5.com</change>
2311929Sz.hong@f5.com
2321930So.canty@f5.com<change type="bugfix">
2331930So.canty@f5.com<para>
2341944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
2351944Svbart@nginx.comor destination address patterns.
2361930So.canty@f5.com</para>
2371930So.canty@f5.com</change>
2381930So.canty@f5.com
2391896Svbart@nginx.com</changes>
2401896Svbart@nginx.com
2411896Svbart@nginx.com
2421887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
2431891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2441887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2451887Sdefan@nginx.com
2461887Sdefan@nginx.com<change>
2471887Sdefan@nginx.com<para>
2481887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
2491887Sdefan@nginx.com</para>
2501887Sdefan@nginx.com</change>
2511887Sdefan@nginx.com
2521887Sdefan@nginx.com</changes>
2531887Sdefan@nginx.com
2541887Sdefan@nginx.com
2551887Sdefan@nginx.com<changes apply="unit-jsc16" ver="1.24.0" rev="1"
2561891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2571887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2581887Sdefan@nginx.com
2591887Sdefan@nginx.com<change>
2601887Sdefan@nginx.com<para>
2611887Sdefan@nginx.comInitial release of Java 16 module for NGINX Unit.
2621887Sdefan@nginx.com</para>
2631887Sdefan@nginx.com</change>
2641887Sdefan@nginx.com
2651887Sdefan@nginx.com</changes>
2661887Sdefan@nginx.com
2671887Sdefan@nginx.com
2681834Svbart@nginx.com<changes apply="unit-php
2691834Svbart@nginx.com                unit-python unit-python2.7
2701834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2711834Svbart@nginx.com                unit-python3.8 unit-python3.9
2721834Svbart@nginx.com                unit-go
2731834Svbart@nginx.com                unit-perl
2741834Svbart@nginx.com                unit-ruby
2751834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2761834Svbart@nginx.com                unit-jsc14 unit-jsc15"
2771839Svbart@nginx.com         ver="1.24.0" rev="1"
2781891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2791839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2801839Svbart@nginx.com
2811839Svbart@nginx.com<change>
2821839Svbart@nginx.com<para>
2831839Svbart@nginx.comNGINX Unit updated to 1.24.0.
2841839Svbart@nginx.com</para>
2851839Svbart@nginx.com</change>
2861839Svbart@nginx.com
2871839Svbart@nginx.com</changes>
2881839Svbart@nginx.com
2891839Svbart@nginx.com
2901839Svbart@nginx.com<changes apply="unit" ver="1.24.0" rev="1"
2911891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2921839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2931839Svbart@nginx.com
2941882So.canty@f5.com<change type="change">
2951882So.canty@f5.com<para>
2961882So.canty@f5.comPHP added to the default MIME type list.
2971882So.canty@f5.com</para>
2981882So.canty@f5.com</change>
2991882So.canty@f5.com
3001855Sz.hong@f5.com<change type="feature">
3011855Sz.hong@f5.com<para>
3021885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
3031885Sa.suvorov@f5.com</para>
3041885Sa.suvorov@f5.com</change>
3051885Sa.suvorov@f5.com
3061885Sa.suvorov@f5.com<change type="feature">
3071885Sa.suvorov@f5.com<para>
3081890Svbart@nginx.comthe ability to limit static file serving by MIME types.
3091890Svbart@nginx.com</para>
3101890Svbart@nginx.com</change>
3111890Svbart@nginx.com
3121890Svbart@nginx.com<change type="feature">
3131890Svbart@nginx.com<para>
3141890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
3151890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
3161872So.canty@f5.com</para>
3171872So.canty@f5.com</change>
3181872So.canty@f5.com
3191872So.canty@f5.com<change type="feature">
3201872So.canty@f5.com<para>
3211889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
3221889Sartem.konev@nginx.comNode.js.
3231865So.canty@f5.com</para>
3241865So.canty@f5.com</change>
3251865So.canty@f5.com
3261865So.canty@f5.com<change type="feature">
3271865So.canty@f5.com<para>
3281890Svbart@nginx.commultiple "targets" in Python applications.
3291855Sz.hong@f5.com</para>
3301855Sz.hong@f5.com</change>
3311855Sz.hong@f5.com
3321870So.canty@f5.com<change type="feature">
3331870So.canty@f5.com<para>
3341870So.canty@f5.comcompatibility with Ruby 3.0.
3351870So.canty@f5.com</para>
3361870So.canty@f5.com</change>
3371870So.canty@f5.com
3381861Svbart@nginx.com<change type="bugfix">
3391861Svbart@nginx.com<para>
3401889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
3411884Sa.suvorov@f5.com</para>
3421884Sa.suvorov@f5.com</change>
3431884Sa.suvorov@f5.com
3441884Sa.suvorov@f5.com<change type="bugfix">
3451884Sa.suvorov@f5.com<para>
3461861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
3471861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
3481861Svbart@nginx.com</para>
3491861Svbart@nginx.com</change>
3501861Svbart@nginx.com
3511839Svbart@nginx.com</changes>
3521839Svbart@nginx.com
3531839Svbart@nginx.com
3541839Svbart@nginx.com<changes apply="unit-php
3551839Svbart@nginx.com                unit-python unit-python2.7
3561839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3571839Svbart@nginx.com                unit-python3.8 unit-python3.9
3581839Svbart@nginx.com                unit-go
3591839Svbart@nginx.com                unit-perl
3601839Svbart@nginx.com                unit-ruby
3611839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3621839Svbart@nginx.com                unit-jsc14 unit-jsc15"
3631834Svbart@nginx.com         ver="1.23.0" rev="1"
3641834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
3651834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3661834Svbart@nginx.com
3671834Svbart@nginx.com<change>
3681834Svbart@nginx.com<para>
3691834Svbart@nginx.comNGINX Unit updated to 1.23.0.
3701834Svbart@nginx.com</para>
3711834Svbart@nginx.com</change>
3721834Svbart@nginx.com
3731834Svbart@nginx.com</changes>
3741834Svbart@nginx.com
3751834Svbart@nginx.com
3761806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
3771834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
3781806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3791806Svbart@nginx.com
3801825Sthresh@nginx.com<change type="feature">
3811825Sthresh@nginx.com<para>
3821833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
3831828Sa.suvorov@f5.comIndication (SNI) TLS extension.
3841828Sa.suvorov@f5.com</para>
3851828Sa.suvorov@f5.com</change>
3861828Sa.suvorov@f5.com
3871828Sa.suvorov@f5.com<change type="feature">
3881828Sa.suvorov@f5.com<para>
3891833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
3901833Sartem.konev@nginx.cominstallation.
3911825Sthresh@nginx.com</para>
3921825Sthresh@nginx.com</change>
3931825Sthresh@nginx.com
3941811Smax.romanov@nginx.com<change type="bugfix">
3951811Smax.romanov@nginx.com<para>
3961812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
3971812Svbart@nginx.comappeared in 1.17.0.
3981812Svbart@nginx.com</para>
3991812Svbart@nginx.com</change>
4001812Svbart@nginx.com
4011812Svbart@nginx.com<change type="bugfix">
4021812Svbart@nginx.com<para>
4031833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
4041812Svbart@nginx.comappeared in 1.6.
4051812Svbart@nginx.com</para>
4061812Svbart@nginx.com</change>
4071812Svbart@nginx.com
4081812Svbart@nginx.com<change type="bugfix">
4091812Svbart@nginx.com<para>
4101833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
4111832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
4121832Smax.romanov@nginx.com</para>
4131832Smax.romanov@nginx.com</change>
4141832Smax.romanov@nginx.com
4151832Smax.romanov@nginx.com<change type="bugfix">
4161832Smax.romanov@nginx.com<para>
4171833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
4181811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
4191811Smax.romanov@nginx.com</para>
4201811Smax.romanov@nginx.com</change>
4211806Svbart@nginx.com
4221813Svbart@nginx.com<change type="bugfix">
4231813Svbart@nginx.com<para>
4241813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
4251813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
4261813Svbart@nginx.com</para>
4271813Svbart@nginx.com</change>
4281813Svbart@nginx.com
4291814Svbart@nginx.com<change type="bugfix">
4301814Svbart@nginx.com<para>
4311820Svbart@nginx.comthe controller process could crash while requesting information about a
4321820Svbart@nginx.comcertificate with a non-DNS SAN entry.
4331820Svbart@nginx.com</para>
4341820Svbart@nginx.com</change>
4351820Svbart@nginx.com
4361820Svbart@nginx.com<change type="bugfix">
4371820Svbart@nginx.com<para>
4381822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
4391833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
4401822Svbart@nginx.com</para>
4411822Svbart@nginx.com</change>
4421822Svbart@nginx.com
4431822Svbart@nginx.com<change type="bugfix">
4441822Svbart@nginx.com<para>
4451833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
4461833Sartem.konev@nginx.comclass.
4471814Svbart@nginx.com</para>
4481814Svbart@nginx.com</change>
4491814Svbart@nginx.com
4501815Svbart@nginx.com<change type="bugfix">
4511815Svbart@nginx.com<para>
4521815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
4531815Svbart@nginx.comappeared in 1.22.0.
4541815Svbart@nginx.com</para>
4551815Svbart@nginx.com</change>
4561815Svbart@nginx.com
4571806Svbart@nginx.com</changes>
4581806Svbart@nginx.com
4591806Svbart@nginx.com
4601798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
4611798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
4621798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4631798Sdefan@nginx.com
4641798Sdefan@nginx.com<change>
4651798Sdefan@nginx.com<para>
4661798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
4671798Sdefan@nginx.com</para>
4681798Sdefan@nginx.com</change>
4691798Sdefan@nginx.com
4701798Sdefan@nginx.com</changes>
4711798Sdefan@nginx.com
4721798Sdefan@nginx.com
4731763Sdefan@nginx.com<changes apply="unit-php
4741763Sdefan@nginx.com                unit-python unit-python2.7
4751763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4761763Sdefan@nginx.com                unit-python3.8
4771763Sdefan@nginx.com                unit-go
4781763Sdefan@nginx.com                unit-perl
4791763Sdefan@nginx.com                unit-ruby
4801763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4811763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
4821763Sdefan@nginx.com         ver="1.22.0" rev="1"
4831793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
4841763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4851763Sdefan@nginx.com
4861763Sdefan@nginx.com<change>
4871763Sdefan@nginx.com<para>
4881763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
4891763Sdefan@nginx.com</para>
4901763Sdefan@nginx.com</change>
4911763Sdefan@nginx.com
4921763Sdefan@nginx.com</changes>
4931763Sdefan@nginx.com
4941763Sdefan@nginx.com
4951727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
4961793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
4971727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4981727Svbart@nginx.com
4991759Svbart@nginx.com<change type="feature">
5001759Svbart@nginx.com<para>
5011792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
5021792Svbart@nginx.comcompliant with Stream API.
5031759Svbart@nginx.com</para>
5041759Svbart@nginx.com</change>
5051759Svbart@nginx.com
5061766Smax.romanov@nginx.com<change type="feature">
5071766Smax.romanov@nginx.com<para>
5081792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
5091792Svbart@nginx.comapps.
5101732Svbart@nginx.com</para>
5111732Svbart@nginx.com</change>
5121732Svbart@nginx.com
5131733Svbart@nginx.com<change type="bugfix">
5141733Svbart@nginx.com<para>
5151792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
5161792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
5171754Smax.romanov@nginx.com</para>
5181754Smax.romanov@nginx.com</change>
5191754Smax.romanov@nginx.com
5201755Smax.romanov@nginx.com<change type="bugfix">
5211755Smax.romanov@nginx.com<para>
5221790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
5231755Smax.romanov@nginx.comappeared in 1.19.0.
5241755Smax.romanov@nginx.com</para>
5251755Smax.romanov@nginx.com</change>
5261755Smax.romanov@nginx.com
5271756Smax.romanov@nginx.com<change type="bugfix">
5281756Smax.romanov@nginx.com<para>
5291790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
5301790Sartem.konev@nginx.comappeared in 1.19.0.
5311756Smax.romanov@nginx.com</para>
5321756Smax.romanov@nginx.com</change>
5331756Smax.romanov@nginx.com
5341760Smax.romanov@nginx.com<change type="bugfix">
5351760Smax.romanov@nginx.com<para>
5361792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
5371792Svbart@nginx.com</para>
5381792Svbart@nginx.com</change>
5391792Svbart@nginx.com
5401792Svbart@nginx.com<change type="bugfix">
5411792Svbart@nginx.com<para>
5421792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
5431792Svbart@nginx.commissing in the PHP module.
5441792Svbart@nginx.com</para>
5451792Svbart@nginx.com</change>
5461792Svbart@nginx.com
5471792Svbart@nginx.com<change type="bugfix">
5481792Svbart@nginx.com<para>
5491792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
5501792Svbart@nginx.com</para>
5511792Svbart@nginx.com</change>
5521792Svbart@nginx.com
5531792Svbart@nginx.com<change type="bugfix">
5541792Svbart@nginx.com<para>
5551792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
5561792Svbart@nginx.com</para>
5571792Svbart@nginx.com</change>
5581792Svbart@nginx.com
5591792Svbart@nginx.com<change type="bugfix">
5601792Svbart@nginx.com<para>
5611792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
5621792Svbart@nginx.comthe bug had appeared in 1.21.0.
5631760Smax.romanov@nginx.com</para>
5641760Smax.romanov@nginx.com</change>
5651760Smax.romanov@nginx.com
5661780Smax.romanov@nginx.com<change type="bugfix">
5671780Smax.romanov@nginx.com<para>
5681790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
5691790Sartem.konev@nginx.comWebSocket.
5701780Smax.romanov@nginx.com</para>
5711780Smax.romanov@nginx.com</change>
5721780Smax.romanov@nginx.com
5731789Smax.romanov@nginx.com<change type="bugfix">
5741789Smax.romanov@nginx.com<para>
5751789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
5761789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
5771789Smax.romanov@nginx.com</para>
5781789Smax.romanov@nginx.com</change>
5791789Smax.romanov@nginx.com
5801727Svbart@nginx.com</changes>
5811727Svbart@nginx.com
5821727Svbart@nginx.com
5831722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
5841722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5851722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5861722Svbart@nginx.com
5871722Svbart@nginx.com<change>
5881722Svbart@nginx.com<para>
5891722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
5901722Svbart@nginx.com</para>
5911722Svbart@nginx.com</change>
5921722Svbart@nginx.com
5931722Svbart@nginx.com</changes>
5941722Svbart@nginx.com
5951722Svbart@nginx.com
5961722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
5971722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5981722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5991722Svbart@nginx.com
6001722Svbart@nginx.com<change>
6011722Svbart@nginx.com<para>
6021722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
6031722Svbart@nginx.com</para>
6041722Svbart@nginx.com</change>
6051722Svbart@nginx.com
6061722Svbart@nginx.com</changes>
6071722Svbart@nginx.com
6081722Svbart@nginx.com
6091722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
6101722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6111722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6121722Svbart@nginx.com
6131722Svbart@nginx.com<change>
6141722Svbart@nginx.com<para>
6151722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
6161722Svbart@nginx.com</para>
6171722Svbart@nginx.com</change>
6181722Svbart@nginx.com
6191722Svbart@nginx.com</changes>
6201722Svbart@nginx.com
6211722Svbart@nginx.com
6221722Svbart@nginx.com<changes apply="unit-php
6231722Svbart@nginx.com                unit-python unit-python2.7
6241722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6251722Svbart@nginx.com                unit-python3.8
6261722Svbart@nginx.com                unit-go
6271722Svbart@nginx.com                unit-perl
6281722Svbart@nginx.com                unit-ruby
6291722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
6301722Svbart@nginx.com         ver="1.21.0" rev="1"
6311722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6321722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6331722Svbart@nginx.com
6341722Svbart@nginx.com<change>
6351722Svbart@nginx.com<para>
6361722Svbart@nginx.comNGINX Unit updated to 1.21.0.
6371722Svbart@nginx.com</para>
6381722Svbart@nginx.com</change>
6391722Svbart@nginx.com
6401722Svbart@nginx.com</changes>
6411722Svbart@nginx.com
6421722Svbart@nginx.com
6431722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
6441722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6451722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6461722Svbart@nginx.com
6471722Svbart@nginx.com<change type="change">
6481722Svbart@nginx.com<para>
6491722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
6501722Svbart@nginx.com</para>
6511722Svbart@nginx.com</change>
6521722Svbart@nginx.com
6531722Svbart@nginx.com<change type="change">
6541722Svbart@nginx.com<para>
6551722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
6561722Svbart@nginx.comnames.
6571722Svbart@nginx.com</para>
6581722Svbart@nginx.com</change>
6591722Svbart@nginx.com
6601722Svbart@nginx.com<change type="change">
6611722Svbart@nginx.com<para>
6621722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
6631722Svbart@nginx.comdefault.
6641722Svbart@nginx.com</para>
6651722Svbart@nginx.com</change>
6661722Svbart@nginx.com
6671722Svbart@nginx.com<change type="feature">
6681722Svbart@nginx.com<para>
6691722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
6701722Svbart@nginx.com</para>
6711722Svbart@nginx.com</change>
6721722Svbart@nginx.com
6731722Svbart@nginx.com<change type="feature">
6741722Svbart@nginx.com<para>
6751722Svbart@nginx.comregular expressions in route matching patterns.
6761722Svbart@nginx.com</para>
6771722Svbart@nginx.com</change>
6781722Svbart@nginx.com
6791722Svbart@nginx.com<change type="feature">
6801722Svbart@nginx.com<para>
6811722Svbart@nginx.comcompatibility with Python 3.9.
6821722Svbart@nginx.com</para>
6831722Svbart@nginx.com</change>
6841722Svbart@nginx.com
6851722Svbart@nginx.com<change type="feature">
6861722Svbart@nginx.com<para>
6871722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
6881722Svbart@nginx.com</para>
6891722Svbart@nginx.com</change>
6901722Svbart@nginx.com
6911722Svbart@nginx.com<change type="feature">
6921722Svbart@nginx.com<para>
6931722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
6941722Svbart@nginx.com</para>
6951722Svbart@nginx.com</change>
6961722Svbart@nginx.com
6971722Svbart@nginx.com<change type="feature">
6981722Svbart@nginx.com<para>
6991722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
7001722Svbart@nginx.comcontinues code execution without holding onto the client connection.
7011722Svbart@nginx.com</para>
7021722Svbart@nginx.com</change>
7031722Svbart@nginx.com
7041722Svbart@nginx.com<change type="feature">
7051722Svbart@nginx.com<para>
7061722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
7071722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
7081722Svbart@nginx.com</para>
7091722Svbart@nginx.com</change>
7101722Svbart@nginx.com
7111722Svbart@nginx.com<change type="feature">
7121722Svbart@nginx.com<para>
7131722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
7141722Svbart@nginx.commounting of eponymous filesystems.
7151722Svbart@nginx.com</para>
7161722Svbart@nginx.com</change>
7171722Svbart@nginx.com
7181722Svbart@nginx.com<change type="bugfix">
7191722Svbart@nginx.com<para>
7201722Svbart@nginx.comthe router process could crash when running Go applications under high load;
7211722Svbart@nginx.comthe bug had appeared in 1.19.0.
7221722Svbart@nginx.com</para>
7231722Svbart@nginx.com</change>
7241722Svbart@nginx.com
7251722Svbart@nginx.com<change type="bugfix">
7261722Svbart@nginx.com<para>
7271722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
7281722Svbart@nginx.com</para>
7291722Svbart@nginx.com</change>
7301722Svbart@nginx.com
7311722Svbart@nginx.com<change type="bugfix">
7321722Svbart@nginx.com<para>
7331722Svbart@nginx.comvarious compatibility issues in Java applications.
7341722Svbart@nginx.com</para>
7351722Svbart@nginx.com</change>
7361722Svbart@nginx.com
7371722Svbart@nginx.com<change type="bugfix">
7381722Svbart@nginx.com<para>
7391722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
7401722Svbart@nginx.comuse "rootfs" isolation.
7411722Svbart@nginx.com</para>
7421722Svbart@nginx.com</change>
7431722Svbart@nginx.com
7441722Svbart@nginx.com</changes>
7451722Svbart@nginx.com
7461722Svbart@nginx.com
7471330Svbart@nginx.com<changes apply="unit-php
7481330Svbart@nginx.com                unit-python unit-python2.7
7491330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7501330Svbart@nginx.com                unit-python3.8
7511330Svbart@nginx.com                unit-go
7521330Svbart@nginx.com                unit-perl
7531330Svbart@nginx.com                unit-ruby
7541330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
7551640Svbart@nginx.com         ver="1.20.0" rev="1"
7561640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
7571640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7581640Svbart@nginx.com
7591640Svbart@nginx.com<change>
7601640Svbart@nginx.com<para>
7611640Svbart@nginx.comNGINX Unit updated to 1.20.0.
7621640Svbart@nginx.com</para>
7631640Svbart@nginx.com</change>
7641640Svbart@nginx.com
7651640Svbart@nginx.com</changes>
7661640Svbart@nginx.com
7671640Svbart@nginx.com
7681640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
7691640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
7701640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7711640Svbart@nginx.com
7721640Svbart@nginx.com<change type="change">
7731640Svbart@nginx.com<para>
7741640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
7751640Svbart@nginx.comextensions from the host system.
7761640Svbart@nginx.com</para>
7771640Svbart@nginx.com</change>
7781640Svbart@nginx.com
7791640Svbart@nginx.com<change type="change">
7801640Svbart@nginx.com<para>
7811640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
7821640Svbart@nginx.com</para>
7831640Svbart@nginx.com</change>
7841640Svbart@nginx.com
7851643Svbart@nginx.com<change type="change">
7861643Svbart@nginx.com<para>
7871643Svbart@nginx.comfunctional tests migrated to the pytest framework.
7881643Svbart@nginx.com</para>
7891643Svbart@nginx.com</change>
7901643Svbart@nginx.com
7911640Svbart@nginx.com<change type="feature">
7921640Svbart@nginx.com<para>
7931640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
7941640Svbart@nginx.cominterface.
7951640Svbart@nginx.com</para>
7961640Svbart@nginx.com</change>
7971640Svbart@nginx.com
7981640Svbart@nginx.com<change type="feature">
7991640Svbart@nginx.com<para>
8001640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
8011640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
8021640Svbart@nginx.comspecification.
8031640Svbart@nginx.com</para>
8041640Svbart@nginx.com</change>
8051640Svbart@nginx.com
8061640Svbart@nginx.com<change type="feature">
8071640Svbart@nginx.com<para>
8081640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
8091640Svbart@nginx.comenvironments.
8101640Svbart@nginx.com</para>
8111640Svbart@nginx.com</change>
8121640Svbart@nginx.com
8131640Svbart@nginx.com<change type="feature">
8141640Svbart@nginx.com<para>
8151640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
8161640Svbart@nginx.com</para>
8171640Svbart@nginx.com</change>
8181640Svbart@nginx.com
8191640Svbart@nginx.com<change type="feature">
8201640Svbart@nginx.com<para>
8211640Svbart@nginx.comthe "callable" option sets Python application callable names.
8221640Svbart@nginx.com</para>
8231640Svbart@nginx.com</change>
8241640Svbart@nginx.com
8251640Svbart@nginx.com<change type="feature">
8261640Svbart@nginx.com<para>
8271640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
8281640Svbart@nginx.com</para>
8291640Svbart@nginx.com</change>
8301640Svbart@nginx.com
8311640Svbart@nginx.com<change type="feature">
8321640Svbart@nginx.com<para>
8331640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
8341640Svbart@nginx.comautomatic mounting of language module dependencies.
8351640Svbart@nginx.com</para>
8361640Svbart@nginx.com</change>
8371640Svbart@nginx.com
8381640Svbart@nginx.com<change type="bugfix">
8391640Svbart@nginx.com<para>
8401640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
8411640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
8421640Svbart@nginx.com</para>
8431640Svbart@nginx.com</change>
8441640Svbart@nginx.com
8451640Svbart@nginx.com<change type="bugfix">
8461640Svbart@nginx.com<para>
8471640Svbart@nginx.comthe router process could crash during reconfiguration.
8481640Svbart@nginx.com</para>
8491640Svbart@nginx.com</change>
8501640Svbart@nginx.com
8511640Svbart@nginx.com<change type="bugfix">
8521640Svbart@nginx.com<para>
8531640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
8541640Svbart@nginx.com</para>
8551640Svbart@nginx.com</change>
8561640Svbart@nginx.com
8571640Svbart@nginx.com<change type="bugfix">
8581640Svbart@nginx.com<para>
8591640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
8601640Svbart@nginx.comthe bug had appeared in 1.19.0.
8611640Svbart@nginx.com</para>
8621640Svbart@nginx.com</change>
8631640Svbart@nginx.com
8641640Svbart@nginx.com<change type="bugfix">
8651640Svbart@nginx.com<para>
8661640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
8671640Svbart@nginx.comthe bug had appeared in 1.16.0.
8681640Svbart@nginx.com</para>
8691640Svbart@nginx.com</change>
8701640Svbart@nginx.com
8711640Svbart@nginx.com</changes>
8721640Svbart@nginx.com
8731640Svbart@nginx.com
8741640Svbart@nginx.com<changes apply="unit-php
8751640Svbart@nginx.com                unit-python unit-python2.7
8761640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8771640Svbart@nginx.com                unit-python3.8
8781640Svbart@nginx.com                unit-go
8791640Svbart@nginx.com                unit-perl
8801640Svbart@nginx.com                unit-ruby
8811640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8821570Svbart@nginx.com         ver="1.19.0" rev="1"
8831570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
8841570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8851570Svbart@nginx.com
8861570Svbart@nginx.com<change>
8871570Svbart@nginx.com<para>
8881570Svbart@nginx.comNGINX Unit updated to 1.19.0.
8891570Svbart@nginx.com</para>
8901570Svbart@nginx.com</change>
8911570Svbart@nginx.com
8921570Svbart@nginx.com</changes>
8931570Svbart@nginx.com
8941570Svbart@nginx.com
8951570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1"
8961570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
8971570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8981570Svbart@nginx.com
8991570Svbart@nginx.com<change type="feature">
9001570Svbart@nginx.com<para>
9011570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
9021570Svbart@nginx.comincrease performance, and improve scalability.
9031570Svbart@nginx.com</para>
9041570Svbart@nginx.com</change>
9051570Svbart@nginx.com
9061570Svbart@nginx.com<change type="feature">
9071570Svbart@nginx.com<para>
9081570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns.
9091570Svbart@nginx.com</para>
9101570Svbart@nginx.com</change>
9111570Svbart@nginx.com
9121570Svbart@nginx.com<change type="feature">
9131570Svbart@nginx.com<para>
9141570Svbart@nginx.comchunked transfer encoding in proxy responses.
9151570Svbart@nginx.com</para>
9161570Svbart@nginx.com</change>
9171570Svbart@nginx.com
9181570Svbart@nginx.com<change type="feature">
9191570Svbart@nginx.com<para>
9201570Svbart@nginx.combasic variables support in the "pass" option.
9211570Svbart@nginx.com</para>
9221570Svbart@nginx.com</change>
9231570Svbart@nginx.com
9241570Svbart@nginx.com<change type="feature">
9251570Svbart@nginx.com<para>
9261570Svbart@nginx.comcompatibility with PHP 8 Beta 1.
9271570Svbart@nginx.comThanks to Remi Collet.
9281570Svbart@nginx.com</para>
9291570Svbart@nginx.com</change>
9301570Svbart@nginx.com
9311570Svbart@nginx.com<change type="bugfix">
9321570Svbart@nginx.com<para>
9331570Svbart@nginx.comthe router process could crash while passing requests to an application under
9341570Svbart@nginx.comhigh load.
9351570Svbart@nginx.com</para>
9361570Svbart@nginx.com</change>
9371570Svbart@nginx.com
9381570Svbart@nginx.com<change type="bugfix">
9391570Svbart@nginx.com<para>
9401570Svbart@nginx.coma number of language modules failed to build on some systems;
9411570Svbart@nginx.comthe bug had appeared in 1.18.0.
9421570Svbart@nginx.com</para>
9431570Svbart@nginx.com</change>
9441570Svbart@nginx.com
9451570Svbart@nginx.com<change type="bugfix">
9461570Svbart@nginx.com<para>
9471570Svbart@nginx.comtime in error log messages from PHP applications could lag.
9481570Svbart@nginx.com</para>
9491570Svbart@nginx.com</change>
9501570Svbart@nginx.com
9511570Svbart@nginx.com<change type="bugfix">
9521570Svbart@nginx.com<para>
9531570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start;
9541570Svbart@nginx.comthe bug had appeared in 1.18.0.
9551570Svbart@nginx.com</para>
9561570Svbart@nginx.com</change>
9571570Svbart@nginx.com
9581570Svbart@nginx.com<change type="bugfix">
9591570Svbart@nginx.com<para>
9601570Svbart@nginx.commemory leak during reconfiguration.
9611570Svbart@nginx.com</para>
9621570Svbart@nginx.com</change>
9631570Svbart@nginx.com
9641570Svbart@nginx.com<change type="bugfix">
9651570Svbart@nginx.com<para>
9661570Svbart@nginx.comthe daemon didn't start without language modules;
9671570Svbart@nginx.comthe bug had appeared in 1.18.0.
9681570Svbart@nginx.com</para>
9691570Svbart@nginx.com</change>
9701570Svbart@nginx.com
9711570Svbart@nginx.com<change type="bugfix">
9721570Svbart@nginx.com<para>
9731570Svbart@nginx.comthe router process 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.comNode.js applications could crash at exit.
9801570Svbart@nginx.com</para>
9811570Svbart@nginx.com</change>
9821570Svbart@nginx.com
9831570Svbart@nginx.com<change type="bugfix">
9841570Svbart@nginx.com<para>
9851570Svbart@nginx.comthe Ruby module could be linked against a wrong library version.
9861570Svbart@nginx.com</para>
9871570Svbart@nginx.com</change>
9881570Svbart@nginx.com
9891570Svbart@nginx.com</changes>
9901570Svbart@nginx.com
9911570Svbart@nginx.com
9921570Svbart@nginx.com<changes apply="unit-php
9931570Svbart@nginx.com                unit-python unit-python2.7
9941570Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9951570Svbart@nginx.com                unit-python3.8
9961570Svbart@nginx.com                unit-go
9971570Svbart@nginx.com                unit-perl
9981570Svbart@nginx.com                unit-ruby
9991570Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10001491Svbart@nginx.com         ver="1.18.0" rev="1"
10011491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
10021491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10031491Svbart@nginx.com
10041491Svbart@nginx.com<change>
10051491Svbart@nginx.com<para>
10061491Svbart@nginx.comNGINX Unit updated to 1.18.0.
10071491Svbart@nginx.com</para>
10081491Svbart@nginx.com</change>
10091491Svbart@nginx.com
10101491Svbart@nginx.com</changes>
10111491Svbart@nginx.com
10121491Svbart@nginx.com
10131491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1"
10141491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
10151491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10161491Svbart@nginx.com
10171491Svbart@nginx.com<change type="feature">
10181491Svbart@nginx.com<para>
10191491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application.
10201491Svbart@nginx.com</para>
10211491Svbart@nginx.com</change>
10221491Svbart@nginx.com
10231491Svbart@nginx.com<change type="feature">
10241491Svbart@nginx.com<para>
10251491Svbart@nginx.commultiple "targets" in PHP applications.
10261491Svbart@nginx.com</para>
10271491Svbart@nginx.com</change>
10281491Svbart@nginx.com
10291491Svbart@nginx.com<change type="feature">
10301491Svbart@nginx.com<para>
10311491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options
10321491Svbart@nginx.comand in the "pass" option.
10331491Svbart@nginx.com</para>
10341491Svbart@nginx.com</change>
10351491Svbart@nginx.com
10361491Svbart@nginx.com</changes>
10371491Svbart@nginx.com
10381491Svbart@nginx.com
10391491Svbart@nginx.com<changes apply="unit-php
10401491Svbart@nginx.com                unit-python unit-python2.7
10411491Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10421491Svbart@nginx.com                unit-python3.8
10431491Svbart@nginx.com                unit-go
10441491Svbart@nginx.com                unit-perl
10451491Svbart@nginx.com                unit-ruby
10461491Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10471460Svbart@nginx.com         ver="1.17.0" rev="1"
10481460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
10491460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10501460Svbart@nginx.com
10511460Svbart@nginx.com<change>
10521460Svbart@nginx.com<para>
10531460Svbart@nginx.comNGINX Unit updated to 1.17.0.
10541460Svbart@nginx.com</para>
10551460Svbart@nginx.com</change>
10561460Svbart@nginx.com
10571460Svbart@nginx.com</changes>
10581460Svbart@nginx.com
10591460Svbart@nginx.com
10601460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1"
10611460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
10621460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10631460Svbart@nginx.com
10641460Svbart@nginx.com<change type="feature">
10651460Svbart@nginx.com<para>
10661460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external
10671460Svbart@nginx.comredirection.
10681460Svbart@nginx.com</para>
10691460Svbart@nginx.com</change>
10701460Svbart@nginx.com
10711460Svbart@nginx.com<change type="feature">
10721460Svbart@nginx.com<para>
10731460Svbart@nginx.comfractional weights support for upstream servers.
10741460Svbart@nginx.com</para>
10751460Svbart@nginx.com</change>
10761460Svbart@nginx.com
10771460Svbart@nginx.com<change type="bugfix">
10781460Svbart@nginx.com<para>
10791460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under
10801460Svbart@nginx.comhigh load.
10811460Svbart@nginx.com</para>
10821460Svbart@nginx.com</change>
10831460Svbart@nginx.com
10841460Svbart@nginx.com<change type="bugfix">
10851460Svbart@nginx.com<para>
10861460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0.
10871460Svbart@nginx.com</para>
10881460Svbart@nginx.com</change>
10891460Svbart@nginx.com
10901460Svbart@nginx.com<change type="bugfix">
10911460Svbart@nginx.com<para>
10921460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching
10931460Svbart@nginx.comopen connections limit.
10941460Svbart@nginx.com</para>
10951460Svbart@nginx.com</change>
10961460Svbart@nginx.com
10971460Svbart@nginx.com<change type="bugfix">
10981460Svbart@nginx.com<para>
10991460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log
11001460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0.
11011460Svbart@nginx.com</para>
11021460Svbart@nginx.com</change>
11031460Svbart@nginx.com
11041460Svbart@nginx.com<change type="bugfix">
11051460Svbart@nginx.com<para>
11061460Svbart@nginx.comexisting application processes didn't reopen the log file.
11071460Svbart@nginx.com</para>
11081460Svbart@nginx.com</change>
11091460Svbart@nginx.com
11101460Svbart@nginx.com<change type="bugfix">
11111460Svbart@nginx.com<para>
11121460Svbart@nginx.comincompatibility with some Node.js applications.
11131460Svbart@nginx.com</para>
11141460Svbart@nginx.com</change>
11151460Svbart@nginx.com
11161460Svbart@nginx.com<change type="bugfix">
11171460Svbart@nginx.com<para>
11181460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0.
11191460Svbart@nginx.com</para>
11201460Svbart@nginx.com</change>
11211460Svbart@nginx.com
11221460Svbart@nginx.com</changes>
11231460Svbart@nginx.com
11241460Svbart@nginx.com
11251460Svbart@nginx.com<changes apply="unit-php
11261460Svbart@nginx.com                unit-python unit-python2.7
11271460Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11281460Svbart@nginx.com                unit-python3.8
11291460Svbart@nginx.com                unit-go
11301460Svbart@nginx.com                unit-perl
11311460Svbart@nginx.com                unit-ruby
11321460Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11331404Svbart@nginx.com         ver="1.16.0" rev="1"
11341404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
11351404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11361404Svbart@nginx.com
11371404Svbart@nginx.com<change>
11381404Svbart@nginx.com<para>
11391404Svbart@nginx.comNGINX Unit updated to 1.16.0.
11401404Svbart@nginx.com</para>
11411404Svbart@nginx.com</change>
11421404Svbart@nginx.com
11431404Svbart@nginx.com</changes>
11441404Svbart@nginx.com
11451404Svbart@nginx.com
11461404Svbart@nginx.com<changes apply="unit" ver="1.16.0" rev="1"
11471404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
11481404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11491404Svbart@nginx.com
11501404Svbart@nginx.com<change type="feature">
11511404Svbart@nginx.com<para>
11521404Svbart@nginx.combasic load-balancing support with round-robin.
11531404Svbart@nginx.com</para>
11541404Svbart@nginx.com</change>
11551404Svbart@nginx.com
11561404Svbart@nginx.com<change type="feature">
11571404Svbart@nginx.com<para>
11581404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be
11591404Svbart@nginx.comserved from the "share" directory.
11601404Svbart@nginx.com</para>
11611404Svbart@nginx.com</change>
11621404Svbart@nginx.com
11631404Svbart@nginx.com<change type="feature">
11641404Svbart@nginx.com<para>
11651404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk.
11661404Svbart@nginx.com</para>
11671404Svbart@nginx.com</change>
11681404Svbart@nginx.com
11691404Svbart@nginx.com<change type="feature">
11701404Svbart@nginx.com<para>
11711404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON.
11721404Svbart@nginx.com</para>
11731404Svbart@nginx.com</change>
11741404Svbart@nginx.com
11751404Svbart@nginx.com<change type="bugfix">
11761404Svbart@nginx.com<para>
11771404Svbart@nginx.comnegative address matching in router might work improperly in combination with
11781404Svbart@nginx.comnon-negative patterns.
11791404Svbart@nginx.com</para>
11801404Svbart@nginx.com</change>
11811404Svbart@nginx.com
1182