xref: /unit/docs/changes.xml (revision 1973)
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
8*1973Sdefan@nginx.com<changes apply="unit-jsc18" ver="1.26.0" rev="1"
9*1973Sdefan@nginx.com         date="" time=""
10*1973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11*1973Sdefan@nginx.com
12*1973Sdefan@nginx.com<change>
13*1973Sdefan@nginx.com<para>
14*1973Sdefan@nginx.comInitial release of Java 18 module for NGINX Unit.
15*1973Sdefan@nginx.com</para>
16*1973Sdefan@nginx.com</change>
17*1973Sdefan@nginx.com
18*1973Sdefan@nginx.com</changes>
19*1973Sdefan@nginx.com
20*1973Sdefan@nginx.com
21*1973Sdefan@nginx.com<changes apply="unit-python3.10" ver="1.26.0" rev="1"
22*1973Sdefan@nginx.com         date="" time=""
23*1973Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
24*1973Sdefan@nginx.com
25*1973Sdefan@nginx.com<change>
26*1973Sdefan@nginx.com<para>
27*1973Sdefan@nginx.comInitial release of Python 3.10 module for NGINX Unit.
28*1973Sdefan@nginx.com</para>
29*1973Sdefan@nginx.com</change>
30*1973Sdefan@nginx.com
31*1973Sdefan@nginx.com</changes>
32*1973Sdefan@nginx.com
33*1973Sdefan@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>
691960Sz.hong@f5.comvariables support in the "share" option.
701960Sz.hong@f5.com</para>
711960Sz.hong@f5.com</change>
721960Sz.hong@f5.com
731959Sz.hong@f5.com<change type="feature">
741959Sz.hong@f5.com<para>
751961Sz.hong@f5.commultiple paths in the "share" option.
761961Sz.hong@f5.com</para>
771961Sz.hong@f5.com</change>
781961Sz.hong@f5.com
791961Sz.hong@f5.com<change type="feature">
801961Sz.hong@f5.com<para>
811959Sz.hong@f5.comvariables support in the "chroot" option.
821959Sz.hong@f5.com</para>
831959Sz.hong@f5.com</change>
841959Sz.hong@f5.com
851969Sz.hong@f5.com<change type="feature">
861969Sz.hong@f5.com<para>
871969Sz.hong@f5.comautomatic adjustment of existing configurations to the new "share" behavior
881969Sz.hong@f5.comwhen updating from previous versions.
891969Sz.hong@f5.com</para>
901969Sz.hong@f5.com</change>
911969Sz.hong@f5.com
921955Smax.romanov@nginx.com<change type="bugfix">
931955Smax.romanov@nginx.com<para>
941955Smax.romanov@nginx.comfixed building with glibc 2.34, notably Fedora 35.
951955Smax.romanov@nginx.com</para>
961955Smax.romanov@nginx.com</change>
971955Smax.romanov@nginx.com
981956Smax.romanov@nginx.com<change type="bugfix">
991956Smax.romanov@nginx.com<para>
1001956Smax.romanov@nginx.comestablished WebSocket connections could stop reading frames from the client
1011956Smax.romanov@nginx.comafter the corresponding listener had been reconfigured.
1021956Smax.romanov@nginx.com</para>
1031956Smax.romanov@nginx.com</change>
1041956Smax.romanov@nginx.com
1051951Svbart@nginx.com</changes>
1061951Svbart@nginx.com
1071951Svbart@nginx.com
1081951Svbart@nginx.com<changes apply="unit-php
1091951Svbart@nginx.com                unit-python unit-python2.7
1101951Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1111951Svbart@nginx.com                unit-python3.8 unit-python3.9
1121951Svbart@nginx.com                unit-go
1131951Svbart@nginx.com                unit-perl
1141951Svbart@nginx.com                unit-ruby
1151951Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1161951Svbart@nginx.com                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
1171896Svbart@nginx.com         ver="1.25.0" rev="1"
1181945Svbart@nginx.com         date="2021-08-19" time="18:00:00 +0300"
1191896Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1201896Svbart@nginx.com
1211896Svbart@nginx.com<change>
1221896Svbart@nginx.com<para>
1231896Svbart@nginx.comNGINX Unit updated to 1.25.0.
1241896Svbart@nginx.com</para>
1251896Svbart@nginx.com</change>
1261896Svbart@nginx.com
1271896Svbart@nginx.com</changes>
1281896Svbart@nginx.com
1291896Svbart@nginx.com
1301896Svbart@nginx.com<changes apply="unit" 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
1341910So.canty@f5.com<change type="feature">
1351910So.canty@f5.com<para>
1361944Svbart@nginx.comclient IP address replacement from a specified HTTP header field.
1371942Sa.suvorov@f5.com</para>
1381942Sa.suvorov@f5.com</change>
1391942Sa.suvorov@f5.com
1401942Sa.suvorov@f5.com<change type="feature">
1411942Sa.suvorov@f5.com<para>
1421920Sa.suvorov@f5.comTLS sessions cache.
1431920Sa.suvorov@f5.com</para>
1441920Sa.suvorov@f5.com</change>
1451920Sa.suvorov@f5.com
1461920Sa.suvorov@f5.com<change type="feature">
1471920Sa.suvorov@f5.com<para>
1481944Svbart@nginx.comTLS session tickets.
1491910So.canty@f5.com</para>
1501910So.canty@f5.com</change>
1511910So.canty@f5.com
1521926Smax.romanov@nginx.com<change type="feature">
1531926Smax.romanov@nginx.com<para>
1541926Smax.romanov@nginx.comapplication restart control.
1551926Smax.romanov@nginx.com</para>
1561926Smax.romanov@nginx.com</change>
1571926Smax.romanov@nginx.com
1581936So.canty@f5.com<change type="feature">
1591936So.canty@f5.com<para>
1601944Svbart@nginx.comprocess and thread lifecycle hooks in Ruby.
1611936So.canty@f5.com</para>
1621936So.canty@f5.com</change>
1631936So.canty@f5.com
1641907Smax.romanov@nginx.com<change type="bugfix">
1651907Smax.romanov@nginx.com<para>
1661944Svbart@nginx.comthe router process could crash on TLS connection open when multiple listeners
1671944Svbart@nginx.comwith TLS certificates were configured; the bug had appeared in 1.23.0.
1681921Sa.suvorov@f5.com</para>
1691921Sa.suvorov@f5.com</change>
1701921Sa.suvorov@f5.com
1711921Sa.suvorov@f5.com<change type="bugfix">
1721921Sa.suvorov@f5.com<para>
1731944Svbart@nginx.comTLS connections were rejected for configurations with multiple certificate
1741944Svbart@nginx.combundles in a listener if the client did not use SNI.
1751907Smax.romanov@nginx.com</para>
1761907Smax.romanov@nginx.com</change>
1771907Smax.romanov@nginx.com
1781907Smax.romanov@nginx.com<change type="bugfix">
1791907Smax.romanov@nginx.com<para>
1801950Sartem.konev@nginx.comthe router process could crash with frequent multithreaded application
1811915Smax.romanov@nginx.comreconfiguration.
1821915Smax.romanov@nginx.com</para>
1831915Smax.romanov@nginx.com</change>
1841915Smax.romanov@nginx.com
1851915Smax.romanov@nginx.com<change type="bugfix">
1861915Smax.romanov@nginx.com<para>
1871944Svbart@nginx.comcompatibility issues with some Python ASGI apps, notably based on the Starlette
1881944Svbart@nginx.comframework.
1891944Svbart@nginx.com</para>
1901944Svbart@nginx.com</change>
1911944Svbart@nginx.com
1921944Svbart@nginx.com<change type="bugfix">
1931944Svbart@nginx.com<para>
1941944Svbart@nginx.coma descriptor and memory leak occurred in the router process when an app process
1951944Svbart@nginx.comstopped or crashed.
1961907Smax.romanov@nginx.com</para>
1971907Smax.romanov@nginx.com</change>
1981907Smax.romanov@nginx.com
1991909So.canty@f5.com<change type="bugfix">
2001909So.canty@f5.com<para>
2011909So.canty@f5.comthe controller or router process could crash if the configuration contained
2021909So.canty@f5.coma full-form IPv6 in a listener address.
2031909So.canty@f5.com</para>
2041909So.canty@f5.com</change>
2051909So.canty@f5.com
2061916Smax.romanov@nginx.com<change type="bugfix">
2071916Smax.romanov@nginx.com<para>
2081929Sz.hong@f5.comthe router process crashed when a request was passed to an empty "routes"
2091929Sz.hong@f5.comor "upstreams" using a variable "pass" option.
2101929Sz.hong@f5.com</para>
2111929Sz.hong@f5.com</change>
2121929Sz.hong@f5.com
2131930So.canty@f5.com<change type="bugfix">
2141930So.canty@f5.com<para>
2151944Svbart@nginx.comthe router process crashed while matching a request to an empty array of source
2161944Svbart@nginx.comor destination address patterns.
2171930So.canty@f5.com</para>
2181930So.canty@f5.com</change>
2191930So.canty@f5.com
2201896Svbart@nginx.com</changes>
2211896Svbart@nginx.com
2221896Svbart@nginx.com
2231887Sdefan@nginx.com<changes apply="unit-jsc17" ver="1.24.0" rev="1"
2241891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2251887Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2261887Sdefan@nginx.com
2271887Sdefan@nginx.com<change>
2281887Sdefan@nginx.com<para>
2291887Sdefan@nginx.comInitial release of Java 17 module for NGINX Unit.
2301887Sdefan@nginx.com</para>
2311887Sdefan@nginx.com</change>
2321887Sdefan@nginx.com
2331887Sdefan@nginx.com</changes>
2341887Sdefan@nginx.com
2351887Sdefan@nginx.com
2361887Sdefan@nginx.com<changes apply="unit-jsc16" 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 16 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
2491834Svbart@nginx.com<changes apply="unit-php
2501834Svbart@nginx.com                unit-python unit-python2.7
2511834Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2521834Svbart@nginx.com                unit-python3.8 unit-python3.9
2531834Svbart@nginx.com                unit-go
2541834Svbart@nginx.com                unit-perl
2551834Svbart@nginx.com                unit-ruby
2561834Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
2571834Svbart@nginx.com                unit-jsc14 unit-jsc15"
2581839Svbart@nginx.com         ver="1.24.0" rev="1"
2591891Svbart@nginx.com         date="2021-05-27" time="18:00:00 +0300"
2601839Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2611839Svbart@nginx.com
2621839Svbart@nginx.com<change>
2631839Svbart@nginx.com<para>
2641839Svbart@nginx.comNGINX Unit updated to 1.24.0.
2651839Svbart@nginx.com</para>
2661839Svbart@nginx.com</change>
2671839Svbart@nginx.com
2681839Svbart@nginx.com</changes>
2691839Svbart@nginx.com
2701839Svbart@nginx.com
2711839Svbart@nginx.com<changes apply="unit" 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
2751882So.canty@f5.com<change type="change">
2761882So.canty@f5.com<para>
2771882So.canty@f5.comPHP added to the default MIME type list.
2781882So.canty@f5.com</para>
2791882So.canty@f5.com</change>
2801882So.canty@f5.com
2811855Sz.hong@f5.com<change type="feature">
2821855Sz.hong@f5.com<para>
2831885Sa.suvorov@f5.comarbitrary configuration of TLS connections via OpenSSL commands.
2841885Sa.suvorov@f5.com</para>
2851885Sa.suvorov@f5.com</change>
2861885Sa.suvorov@f5.com
2871885Sa.suvorov@f5.com<change type="feature">
2881885Sa.suvorov@f5.com<para>
2891890Svbart@nginx.comthe ability to limit static file serving by MIME types.
2901890Svbart@nginx.com</para>
2911890Svbart@nginx.com</change>
2921890Svbart@nginx.com
2931890Svbart@nginx.com<change type="feature">
2941890Svbart@nginx.com<para>
2951890Svbart@nginx.comsupport for chrooting, rejecting symlinks, and rejecting mount
2961890Svbart@nginx.compoint traversal on a per-request basis when serving static files.
2971872So.canty@f5.com</para>
2981872So.canty@f5.com</change>
2991872So.canty@f5.com
3001872So.canty@f5.com<change type="feature">
3011872So.canty@f5.com<para>
3021889Sartem.konev@nginx.coma loader for automatically overriding the "http" and "websocket" modules in
3031889Sartem.konev@nginx.comNode.js.
3041865So.canty@f5.com</para>
3051865So.canty@f5.com</change>
3061865So.canty@f5.com
3071865So.canty@f5.com<change type="feature">
3081865So.canty@f5.com<para>
3091890Svbart@nginx.commultiple "targets" in Python applications.
3101855Sz.hong@f5.com</para>
3111855Sz.hong@f5.com</change>
3121855Sz.hong@f5.com
3131870So.canty@f5.com<change type="feature">
3141870So.canty@f5.com<para>
3151870So.canty@f5.comcompatibility with Ruby 3.0.
3161870So.canty@f5.com</para>
3171870So.canty@f5.com</change>
3181870So.canty@f5.com
3191861Svbart@nginx.com<change type="bugfix">
3201861Svbart@nginx.com<para>
3211889Sartem.konev@nginx.comthe router process could crash while closing a TLS connection.
3221884Sa.suvorov@f5.com</para>
3231884Sa.suvorov@f5.com</change>
3241884Sa.suvorov@f5.com
3251884Sa.suvorov@f5.com<change type="bugfix">
3261884Sa.suvorov@f5.com<para>
3271861Svbart@nginx.coma segmentation fault might have occurred in the PHP module if
3281861Svbart@nginx.comfastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
3291861Svbart@nginx.com</para>
3301861Svbart@nginx.com</change>
3311861Svbart@nginx.com
3321839Svbart@nginx.com</changes>
3331839Svbart@nginx.com
3341839Svbart@nginx.com
3351839Svbart@nginx.com<changes apply="unit-php
3361839Svbart@nginx.com                unit-python unit-python2.7
3371839Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3381839Svbart@nginx.com                unit-python3.8 unit-python3.9
3391839Svbart@nginx.com                unit-go
3401839Svbart@nginx.com                unit-perl
3411839Svbart@nginx.com                unit-ruby
3421839Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
3431839Svbart@nginx.com                unit-jsc14 unit-jsc15"
3441834Svbart@nginx.com         ver="1.23.0" rev="1"
3451834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
3461834Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3471834Svbart@nginx.com
3481834Svbart@nginx.com<change>
3491834Svbart@nginx.com<para>
3501834Svbart@nginx.comNGINX Unit updated to 1.23.0.
3511834Svbart@nginx.com</para>
3521834Svbart@nginx.com</change>
3531834Svbart@nginx.com
3541834Svbart@nginx.com</changes>
3551834Svbart@nginx.com
3561834Svbart@nginx.com
3571806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
3581834Svbart@nginx.com         date="2021-03-25" time="18:00:00 +0300"
3591806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3601806Svbart@nginx.com
3611825Sthresh@nginx.com<change type="feature">
3621825Sthresh@nginx.com<para>
3631833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
3641828Sa.suvorov@f5.comIndication (SNI) TLS extension.
3651828Sa.suvorov@f5.com</para>
3661828Sa.suvorov@f5.com</change>
3671828Sa.suvorov@f5.com
3681828Sa.suvorov@f5.com<change type="feature">
3691828Sa.suvorov@f5.com<para>
3701833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
3711833Sartem.konev@nginx.cominstallation.
3721825Sthresh@nginx.com</para>
3731825Sthresh@nginx.com</change>
3741825Sthresh@nginx.com
3751811Smax.romanov@nginx.com<change type="bugfix">
3761811Smax.romanov@nginx.com<para>
3771812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
3781812Svbart@nginx.comappeared in 1.17.0.
3791812Svbart@nginx.com</para>
3801812Svbart@nginx.com</change>
3811812Svbart@nginx.com
3821812Svbart@nginx.com<change type="bugfix">
3831812Svbart@nginx.com<para>
3841833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
3851812Svbart@nginx.comappeared in 1.6.
3861812Svbart@nginx.com</para>
3871812Svbart@nginx.com</change>
3881812Svbart@nginx.com
3891812Svbart@nginx.com<change type="bugfix">
3901812Svbart@nginx.com<para>
3911833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
3921832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
3931832Smax.romanov@nginx.com</para>
3941832Smax.romanov@nginx.com</change>
3951832Smax.romanov@nginx.com
3961832Smax.romanov@nginx.com<change type="bugfix">
3971832Smax.romanov@nginx.com<para>
3981833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
3991811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
4001811Smax.romanov@nginx.com</para>
4011811Smax.romanov@nginx.com</change>
4021806Svbart@nginx.com
4031813Svbart@nginx.com<change type="bugfix">
4041813Svbart@nginx.com<para>
4051813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
4061813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
4071813Svbart@nginx.com</para>
4081813Svbart@nginx.com</change>
4091813Svbart@nginx.com
4101814Svbart@nginx.com<change type="bugfix">
4111814Svbart@nginx.com<para>
4121820Svbart@nginx.comthe controller process could crash while requesting information about a
4131820Svbart@nginx.comcertificate with a non-DNS SAN entry.
4141820Svbart@nginx.com</para>
4151820Svbart@nginx.com</change>
4161820Svbart@nginx.com
4171820Svbart@nginx.com<change type="bugfix">
4181820Svbart@nginx.com<para>
4191822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
4201833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
4211822Svbart@nginx.com</para>
4221822Svbart@nginx.com</change>
4231822Svbart@nginx.com
4241822Svbart@nginx.com<change type="bugfix">
4251822Svbart@nginx.com<para>
4261833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
4271833Sartem.konev@nginx.comclass.
4281814Svbart@nginx.com</para>
4291814Svbart@nginx.com</change>
4301814Svbart@nginx.com
4311815Svbart@nginx.com<change type="bugfix">
4321815Svbart@nginx.com<para>
4331815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
4341815Svbart@nginx.comappeared in 1.22.0.
4351815Svbart@nginx.com</para>
4361815Svbart@nginx.com</change>
4371815Svbart@nginx.com
4381806Svbart@nginx.com</changes>
4391806Svbart@nginx.com
4401806Svbart@nginx.com
4411798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
4421798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
4431798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4441798Sdefan@nginx.com
4451798Sdefan@nginx.com<change>
4461798Sdefan@nginx.com<para>
4471798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
4481798Sdefan@nginx.com</para>
4491798Sdefan@nginx.com</change>
4501798Sdefan@nginx.com
4511798Sdefan@nginx.com</changes>
4521798Sdefan@nginx.com
4531798Sdefan@nginx.com
4541763Sdefan@nginx.com<changes apply="unit-php
4551763Sdefan@nginx.com                unit-python unit-python2.7
4561763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
4571763Sdefan@nginx.com                unit-python3.8
4581763Sdefan@nginx.com                unit-go
4591763Sdefan@nginx.com                unit-perl
4601763Sdefan@nginx.com                unit-ruby
4611763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
4621763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
4631763Sdefan@nginx.com         ver="1.22.0" rev="1"
4641793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
4651763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4661763Sdefan@nginx.com
4671763Sdefan@nginx.com<change>
4681763Sdefan@nginx.com<para>
4691763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
4701763Sdefan@nginx.com</para>
4711763Sdefan@nginx.com</change>
4721763Sdefan@nginx.com
4731763Sdefan@nginx.com</changes>
4741763Sdefan@nginx.com
4751763Sdefan@nginx.com
4761727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
4771793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
4781727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4791727Svbart@nginx.com
4801759Svbart@nginx.com<change type="feature">
4811759Svbart@nginx.com<para>
4821792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
4831792Svbart@nginx.comcompliant with Stream API.
4841759Svbart@nginx.com</para>
4851759Svbart@nginx.com</change>
4861759Svbart@nginx.com
4871766Smax.romanov@nginx.com<change type="feature">
4881766Smax.romanov@nginx.com<para>
4891792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
4901792Svbart@nginx.comapps.
4911732Svbart@nginx.com</para>
4921732Svbart@nginx.com</change>
4931732Svbart@nginx.com
4941733Svbart@nginx.com<change type="bugfix">
4951733Svbart@nginx.com<para>
4961792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
4971792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
4981754Smax.romanov@nginx.com</para>
4991754Smax.romanov@nginx.com</change>
5001754Smax.romanov@nginx.com
5011755Smax.romanov@nginx.com<change type="bugfix">
5021755Smax.romanov@nginx.com<para>
5031790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
5041755Smax.romanov@nginx.comappeared in 1.19.0.
5051755Smax.romanov@nginx.com</para>
5061755Smax.romanov@nginx.com</change>
5071755Smax.romanov@nginx.com
5081756Smax.romanov@nginx.com<change type="bugfix">
5091756Smax.romanov@nginx.com<para>
5101790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
5111790Sartem.konev@nginx.comappeared in 1.19.0.
5121756Smax.romanov@nginx.com</para>
5131756Smax.romanov@nginx.com</change>
5141756Smax.romanov@nginx.com
5151760Smax.romanov@nginx.com<change type="bugfix">
5161760Smax.romanov@nginx.com<para>
5171792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
5181792Svbart@nginx.com</para>
5191792Svbart@nginx.com</change>
5201792Svbart@nginx.com
5211792Svbart@nginx.com<change type="bugfix">
5221792Svbart@nginx.com<para>
5231792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
5241792Svbart@nginx.commissing in the PHP module.
5251792Svbart@nginx.com</para>
5261792Svbart@nginx.com</change>
5271792Svbart@nginx.com
5281792Svbart@nginx.com<change type="bugfix">
5291792Svbart@nginx.com<para>
5301792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
5311792Svbart@nginx.com</para>
5321792Svbart@nginx.com</change>
5331792Svbart@nginx.com
5341792Svbart@nginx.com<change type="bugfix">
5351792Svbart@nginx.com<para>
5361792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
5371792Svbart@nginx.com</para>
5381792Svbart@nginx.com</change>
5391792Svbart@nginx.com
5401792Svbart@nginx.com<change type="bugfix">
5411792Svbart@nginx.com<para>
5421792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
5431792Svbart@nginx.comthe bug had appeared in 1.21.0.
5441760Smax.romanov@nginx.com</para>
5451760Smax.romanov@nginx.com</change>
5461760Smax.romanov@nginx.com
5471780Smax.romanov@nginx.com<change type="bugfix">
5481780Smax.romanov@nginx.com<para>
5491790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
5501790Sartem.konev@nginx.comWebSocket.
5511780Smax.romanov@nginx.com</para>
5521780Smax.romanov@nginx.com</change>
5531780Smax.romanov@nginx.com
5541789Smax.romanov@nginx.com<change type="bugfix">
5551789Smax.romanov@nginx.com<para>
5561789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
5571789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
5581789Smax.romanov@nginx.com</para>
5591789Smax.romanov@nginx.com</change>
5601789Smax.romanov@nginx.com
5611727Svbart@nginx.com</changes>
5621727Svbart@nginx.com
5631727Svbart@nginx.com
5641722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
5651722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
5661722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5671722Svbart@nginx.com
5681722Svbart@nginx.com<change>
5691722Svbart@nginx.com<para>
5701722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
5711722Svbart@nginx.com</para>
5721722Svbart@nginx.com</change>
5731722Svbart@nginx.com
5741722Svbart@nginx.com</changes>
5751722Svbart@nginx.com
5761722Svbart@nginx.com
5771722Svbart@nginx.com<changes apply="unit-jsc14" 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 14 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-jsc13" 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 13 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-php
6041722Svbart@nginx.com                unit-python unit-python2.7
6051722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6061722Svbart@nginx.com                unit-python3.8
6071722Svbart@nginx.com                unit-go
6081722Svbart@nginx.com                unit-perl
6091722Svbart@nginx.com                unit-ruby
6101722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
6111722Svbart@nginx.com         ver="1.21.0" rev="1"
6121722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
6131722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6141722Svbart@nginx.com
6151722Svbart@nginx.com<change>
6161722Svbart@nginx.com<para>
6171722Svbart@nginx.comNGINX Unit updated to 1.21.0.
6181722Svbart@nginx.com</para>
6191722Svbart@nginx.com</change>
6201722Svbart@nginx.com
6211722Svbart@nginx.com</changes>
6221722Svbart@nginx.com
6231722Svbart@nginx.com
6241722Svbart@nginx.com<changes apply="unit" 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 type="change">
6291722Svbart@nginx.com<para>
6301722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
6311722Svbart@nginx.com</para>
6321722Svbart@nginx.com</change>
6331722Svbart@nginx.com
6341722Svbart@nginx.com<change type="change">
6351722Svbart@nginx.com<para>
6361722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
6371722Svbart@nginx.comnames.
6381722Svbart@nginx.com</para>
6391722Svbart@nginx.com</change>
6401722Svbart@nginx.com
6411722Svbart@nginx.com<change type="change">
6421722Svbart@nginx.com<para>
6431722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
6441722Svbart@nginx.comdefault.
6451722Svbart@nginx.com</para>
6461722Svbart@nginx.com</change>
6471722Svbart@nginx.com
6481722Svbart@nginx.com<change type="feature">
6491722Svbart@nginx.com<para>
6501722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
6511722Svbart@nginx.com</para>
6521722Svbart@nginx.com</change>
6531722Svbart@nginx.com
6541722Svbart@nginx.com<change type="feature">
6551722Svbart@nginx.com<para>
6561722Svbart@nginx.comregular expressions in route matching patterns.
6571722Svbart@nginx.com</para>
6581722Svbart@nginx.com</change>
6591722Svbart@nginx.com
6601722Svbart@nginx.com<change type="feature">
6611722Svbart@nginx.com<para>
6621722Svbart@nginx.comcompatibility with Python 3.9.
6631722Svbart@nginx.com</para>
6641722Svbart@nginx.com</change>
6651722Svbart@nginx.com
6661722Svbart@nginx.com<change type="feature">
6671722Svbart@nginx.com<para>
6681722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
6691722Svbart@nginx.com</para>
6701722Svbart@nginx.com</change>
6711722Svbart@nginx.com
6721722Svbart@nginx.com<change type="feature">
6731722Svbart@nginx.com<para>
6741722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
6751722Svbart@nginx.com</para>
6761722Svbart@nginx.com</change>
6771722Svbart@nginx.com
6781722Svbart@nginx.com<change type="feature">
6791722Svbart@nginx.com<para>
6801722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
6811722Svbart@nginx.comcontinues code execution without holding onto the client connection.
6821722Svbart@nginx.com</para>
6831722Svbart@nginx.com</change>
6841722Svbart@nginx.com
6851722Svbart@nginx.com<change type="feature">
6861722Svbart@nginx.com<para>
6871722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
6881722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
6891722Svbart@nginx.com</para>
6901722Svbart@nginx.com</change>
6911722Svbart@nginx.com
6921722Svbart@nginx.com<change type="feature">
6931722Svbart@nginx.com<para>
6941722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
6951722Svbart@nginx.commounting of eponymous filesystems.
6961722Svbart@nginx.com</para>
6971722Svbart@nginx.com</change>
6981722Svbart@nginx.com
6991722Svbart@nginx.com<change type="bugfix">
7001722Svbart@nginx.com<para>
7011722Svbart@nginx.comthe router process could crash when running Go applications under high load;
7021722Svbart@nginx.comthe bug had appeared in 1.19.0.
7031722Svbart@nginx.com</para>
7041722Svbart@nginx.com</change>
7051722Svbart@nginx.com
7061722Svbart@nginx.com<change type="bugfix">
7071722Svbart@nginx.com<para>
7081722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
7091722Svbart@nginx.com</para>
7101722Svbart@nginx.com</change>
7111722Svbart@nginx.com
7121722Svbart@nginx.com<change type="bugfix">
7131722Svbart@nginx.com<para>
7141722Svbart@nginx.comvarious compatibility issues in Java applications.
7151722Svbart@nginx.com</para>
7161722Svbart@nginx.com</change>
7171722Svbart@nginx.com
7181722Svbart@nginx.com<change type="bugfix">
7191722Svbart@nginx.com<para>
7201722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
7211722Svbart@nginx.comuse "rootfs" isolation.
7221722Svbart@nginx.com</para>
7231722Svbart@nginx.com</change>
7241722Svbart@nginx.com
7251722Svbart@nginx.com</changes>
7261722Svbart@nginx.com
7271722Svbart@nginx.com
7281330Svbart@nginx.com<changes apply="unit-php
7291330Svbart@nginx.com                unit-python unit-python2.7
7301330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7311330Svbart@nginx.com                unit-python3.8
7321330Svbart@nginx.com                unit-go
7331330Svbart@nginx.com                unit-perl
7341330Svbart@nginx.com                unit-ruby
7351330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
7361640Svbart@nginx.com         ver="1.20.0" rev="1"
7371640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
7381640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7391640Svbart@nginx.com
7401640Svbart@nginx.com<change>
7411640Svbart@nginx.com<para>
7421640Svbart@nginx.comNGINX Unit updated to 1.20.0.
7431640Svbart@nginx.com</para>
7441640Svbart@nginx.com</change>
7451640Svbart@nginx.com
7461640Svbart@nginx.com</changes>
7471640Svbart@nginx.com
7481640Svbart@nginx.com
7491640Svbart@nginx.com<changes apply="unit" 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 type="change">
7541640Svbart@nginx.com<para>
7551640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
7561640Svbart@nginx.comextensions from the host system.
7571640Svbart@nginx.com</para>
7581640Svbart@nginx.com</change>
7591640Svbart@nginx.com
7601640Svbart@nginx.com<change type="change">
7611640Svbart@nginx.com<para>
7621640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
7631640Svbart@nginx.com</para>
7641640Svbart@nginx.com</change>
7651640Svbart@nginx.com
7661643Svbart@nginx.com<change type="change">
7671643Svbart@nginx.com<para>
7681643Svbart@nginx.comfunctional tests migrated to the pytest framework.
7691643Svbart@nginx.com</para>
7701643Svbart@nginx.com</change>
7711643Svbart@nginx.com
7721640Svbart@nginx.com<change type="feature">
7731640Svbart@nginx.com<para>
7741640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
7751640Svbart@nginx.cominterface.
7761640Svbart@nginx.com</para>
7771640Svbart@nginx.com</change>
7781640Svbart@nginx.com
7791640Svbart@nginx.com<change type="feature">
7801640Svbart@nginx.com<para>
7811640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
7821640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
7831640Svbart@nginx.comspecification.
7841640Svbart@nginx.com</para>
7851640Svbart@nginx.com</change>
7861640Svbart@nginx.com
7871640Svbart@nginx.com<change type="feature">
7881640Svbart@nginx.com<para>
7891640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
7901640Svbart@nginx.comenvironments.
7911640Svbart@nginx.com</para>
7921640Svbart@nginx.com</change>
7931640Svbart@nginx.com
7941640Svbart@nginx.com<change type="feature">
7951640Svbart@nginx.com<para>
7961640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
7971640Svbart@nginx.com</para>
7981640Svbart@nginx.com</change>
7991640Svbart@nginx.com
8001640Svbart@nginx.com<change type="feature">
8011640Svbart@nginx.com<para>
8021640Svbart@nginx.comthe "callable" option sets Python application callable names.
8031640Svbart@nginx.com</para>
8041640Svbart@nginx.com</change>
8051640Svbart@nginx.com
8061640Svbart@nginx.com<change type="feature">
8071640Svbart@nginx.com<para>
8081640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
8091640Svbart@nginx.com</para>
8101640Svbart@nginx.com</change>
8111640Svbart@nginx.com
8121640Svbart@nginx.com<change type="feature">
8131640Svbart@nginx.com<para>
8141640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
8151640Svbart@nginx.comautomatic mounting of language module dependencies.
8161640Svbart@nginx.com</para>
8171640Svbart@nginx.com</change>
8181640Svbart@nginx.com
8191640Svbart@nginx.com<change type="bugfix">
8201640Svbart@nginx.com<para>
8211640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
8221640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
8231640Svbart@nginx.com</para>
8241640Svbart@nginx.com</change>
8251640Svbart@nginx.com
8261640Svbart@nginx.com<change type="bugfix">
8271640Svbart@nginx.com<para>
8281640Svbart@nginx.comthe router process could crash during reconfiguration.
8291640Svbart@nginx.com</para>
8301640Svbart@nginx.com</change>
8311640Svbart@nginx.com
8321640Svbart@nginx.com<change type="bugfix">
8331640Svbart@nginx.com<para>
8341640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
8351640Svbart@nginx.com</para>
8361640Svbart@nginx.com</change>
8371640Svbart@nginx.com
8381640Svbart@nginx.com<change type="bugfix">
8391640Svbart@nginx.com<para>
8401640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
8411640Svbart@nginx.comthe bug had appeared in 1.19.0.
8421640Svbart@nginx.com</para>
8431640Svbart@nginx.com</change>
8441640Svbart@nginx.com
8451640Svbart@nginx.com<change type="bugfix">
8461640Svbart@nginx.com<para>
8471640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
8481640Svbart@nginx.comthe bug had appeared in 1.16.0.
8491640Svbart@nginx.com</para>
8501640Svbart@nginx.com</change>
8511640Svbart@nginx.com
8521640Svbart@nginx.com</changes>
8531640Svbart@nginx.com
8541640Svbart@nginx.com
8551640Svbart@nginx.com<changes apply="unit-php
8561640Svbart@nginx.com                unit-python unit-python2.7
8571640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8581640Svbart@nginx.com                unit-python3.8
8591640Svbart@nginx.com                unit-go
8601640Svbart@nginx.com                unit-perl
8611640Svbart@nginx.com                unit-ruby
8621640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8631570Svbart@nginx.com         ver="1.19.0" rev="1"
8641570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
8651570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8661570Svbart@nginx.com
8671570Svbart@nginx.com<change>
8681570Svbart@nginx.com<para>
8691570Svbart@nginx.comNGINX Unit updated to 1.19.0.
8701570Svbart@nginx.com</para>
8711570Svbart@nginx.com</change>
8721570Svbart@nginx.com
8731570Svbart@nginx.com</changes>
8741570Svbart@nginx.com
8751570Svbart@nginx.com
8761570Svbart@nginx.com<changes apply="unit" 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 type="feature">
8811570Svbart@nginx.com<para>
8821570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
8831570Svbart@nginx.comincrease performance, and improve scalability.
8841570Svbart@nginx.com</para>
8851570Svbart@nginx.com</change>
8861570Svbart@nginx.com
8871570Svbart@nginx.com<change type="feature">
8881570Svbart@nginx.com<para>
8891570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns.
8901570Svbart@nginx.com</para>
8911570Svbart@nginx.com</change>
8921570Svbart@nginx.com
8931570Svbart@nginx.com<change type="feature">
8941570Svbart@nginx.com<para>
8951570Svbart@nginx.comchunked transfer encoding in proxy responses.
8961570Svbart@nginx.com</para>
8971570Svbart@nginx.com</change>
8981570Svbart@nginx.com
8991570Svbart@nginx.com<change type="feature">
9001570Svbart@nginx.com<para>
9011570Svbart@nginx.combasic variables support in the "pass" option.
9021570Svbart@nginx.com</para>
9031570Svbart@nginx.com</change>
9041570Svbart@nginx.com
9051570Svbart@nginx.com<change type="feature">
9061570Svbart@nginx.com<para>
9071570Svbart@nginx.comcompatibility with PHP 8 Beta 1.
9081570Svbart@nginx.comThanks to Remi Collet.
9091570Svbart@nginx.com</para>
9101570Svbart@nginx.com</change>
9111570Svbart@nginx.com
9121570Svbart@nginx.com<change type="bugfix">
9131570Svbart@nginx.com<para>
9141570Svbart@nginx.comthe router process could crash while passing requests to an application under
9151570Svbart@nginx.comhigh load.
9161570Svbart@nginx.com</para>
9171570Svbart@nginx.com</change>
9181570Svbart@nginx.com
9191570Svbart@nginx.com<change type="bugfix">
9201570Svbart@nginx.com<para>
9211570Svbart@nginx.coma number of language modules failed to build on some systems;
9221570Svbart@nginx.comthe bug had appeared in 1.18.0.
9231570Svbart@nginx.com</para>
9241570Svbart@nginx.com</change>
9251570Svbart@nginx.com
9261570Svbart@nginx.com<change type="bugfix">
9271570Svbart@nginx.com<para>
9281570Svbart@nginx.comtime in error log messages from PHP applications could lag.
9291570Svbart@nginx.com</para>
9301570Svbart@nginx.com</change>
9311570Svbart@nginx.com
9321570Svbart@nginx.com<change type="bugfix">
9331570Svbart@nginx.com<para>
9341570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start;
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.commemory leak during reconfiguration.
9421570Svbart@nginx.com</para>
9431570Svbart@nginx.com</change>
9441570Svbart@nginx.com
9451570Svbart@nginx.com<change type="bugfix">
9461570Svbart@nginx.com<para>
9471570Svbart@nginx.comthe daemon didn't start without language modules;
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.comthe router process could crash at exit.
9551570Svbart@nginx.com</para>
9561570Svbart@nginx.com</change>
9571570Svbart@nginx.com
9581570Svbart@nginx.com<change type="bugfix">
9591570Svbart@nginx.com<para>
9601570Svbart@nginx.comNode.js applications could crash at exit.
9611570Svbart@nginx.com</para>
9621570Svbart@nginx.com</change>
9631570Svbart@nginx.com
9641570Svbart@nginx.com<change type="bugfix">
9651570Svbart@nginx.com<para>
9661570Svbart@nginx.comthe Ruby module could be linked against a wrong library version.
9671570Svbart@nginx.com</para>
9681570Svbart@nginx.com</change>
9691570Svbart@nginx.com
9701570Svbart@nginx.com</changes>
9711570Svbart@nginx.com
9721570Svbart@nginx.com
9731570Svbart@nginx.com<changes apply="unit-php
9741570Svbart@nginx.com                unit-python unit-python2.7
9751570Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9761570Svbart@nginx.com                unit-python3.8
9771570Svbart@nginx.com                unit-go
9781570Svbart@nginx.com                unit-perl
9791570Svbart@nginx.com                unit-ruby
9801570Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9811491Svbart@nginx.com         ver="1.18.0" rev="1"
9821491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
9831491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9841491Svbart@nginx.com
9851491Svbart@nginx.com<change>
9861491Svbart@nginx.com<para>
9871491Svbart@nginx.comNGINX Unit updated to 1.18.0.
9881491Svbart@nginx.com</para>
9891491Svbart@nginx.com</change>
9901491Svbart@nginx.com
9911491Svbart@nginx.com</changes>
9921491Svbart@nginx.com
9931491Svbart@nginx.com
9941491Svbart@nginx.com<changes apply="unit" 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 type="feature">
9991491Svbart@nginx.com<para>
10001491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application.
10011491Svbart@nginx.com</para>
10021491Svbart@nginx.com</change>
10031491Svbart@nginx.com
10041491Svbart@nginx.com<change type="feature">
10051491Svbart@nginx.com<para>
10061491Svbart@nginx.commultiple "targets" in PHP applications.
10071491Svbart@nginx.com</para>
10081491Svbart@nginx.com</change>
10091491Svbart@nginx.com
10101491Svbart@nginx.com<change type="feature">
10111491Svbart@nginx.com<para>
10121491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options
10131491Svbart@nginx.comand in the "pass" option.
10141491Svbart@nginx.com</para>
10151491Svbart@nginx.com</change>
10161491Svbart@nginx.com
10171491Svbart@nginx.com</changes>
10181491Svbart@nginx.com
10191491Svbart@nginx.com
10201491Svbart@nginx.com<changes apply="unit-php
10211491Svbart@nginx.com                unit-python unit-python2.7
10221491Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10231491Svbart@nginx.com                unit-python3.8
10241491Svbart@nginx.com                unit-go
10251491Svbart@nginx.com                unit-perl
10261491Svbart@nginx.com                unit-ruby
10271491Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10281460Svbart@nginx.com         ver="1.17.0" rev="1"
10291460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
10301460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10311460Svbart@nginx.com
10321460Svbart@nginx.com<change>
10331460Svbart@nginx.com<para>
10341460Svbart@nginx.comNGINX Unit updated to 1.17.0.
10351460Svbart@nginx.com</para>
10361460Svbart@nginx.com</change>
10371460Svbart@nginx.com
10381460Svbart@nginx.com</changes>
10391460Svbart@nginx.com
10401460Svbart@nginx.com
10411460Svbart@nginx.com<changes apply="unit" 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 type="feature">
10461460Svbart@nginx.com<para>
10471460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external
10481460Svbart@nginx.comredirection.
10491460Svbart@nginx.com</para>
10501460Svbart@nginx.com</change>
10511460Svbart@nginx.com
10521460Svbart@nginx.com<change type="feature">
10531460Svbart@nginx.com<para>
10541460Svbart@nginx.comfractional weights support for upstream servers.
10551460Svbart@nginx.com</para>
10561460Svbart@nginx.com</change>
10571460Svbart@nginx.com
10581460Svbart@nginx.com<change type="bugfix">
10591460Svbart@nginx.com<para>
10601460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under
10611460Svbart@nginx.comhigh load.
10621460Svbart@nginx.com</para>
10631460Svbart@nginx.com</change>
10641460Svbart@nginx.com
10651460Svbart@nginx.com<change type="bugfix">
10661460Svbart@nginx.com<para>
10671460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0.
10681460Svbart@nginx.com</para>
10691460Svbart@nginx.com</change>
10701460Svbart@nginx.com
10711460Svbart@nginx.com<change type="bugfix">
10721460Svbart@nginx.com<para>
10731460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching
10741460Svbart@nginx.comopen connections limit.
10751460Svbart@nginx.com</para>
10761460Svbart@nginx.com</change>
10771460Svbart@nginx.com
10781460Svbart@nginx.com<change type="bugfix">
10791460Svbart@nginx.com<para>
10801460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log
10811460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0.
10821460Svbart@nginx.com</para>
10831460Svbart@nginx.com</change>
10841460Svbart@nginx.com
10851460Svbart@nginx.com<change type="bugfix">
10861460Svbart@nginx.com<para>
10871460Svbart@nginx.comexisting application processes didn't reopen the log file.
10881460Svbart@nginx.com</para>
10891460Svbart@nginx.com</change>
10901460Svbart@nginx.com
10911460Svbart@nginx.com<change type="bugfix">
10921460Svbart@nginx.com<para>
10931460Svbart@nginx.comincompatibility with some Node.js applications.
10941460Svbart@nginx.com</para>
10951460Svbart@nginx.com</change>
10961460Svbart@nginx.com
10971460Svbart@nginx.com<change type="bugfix">
10981460Svbart@nginx.com<para>
10991460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0.
11001460Svbart@nginx.com</para>
11011460Svbart@nginx.com</change>
11021460Svbart@nginx.com
11031460Svbart@nginx.com</changes>
11041460Svbart@nginx.com
11051460Svbart@nginx.com
11061460Svbart@nginx.com<changes apply="unit-php
11071460Svbart@nginx.com                unit-python unit-python2.7
11081460Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11091460Svbart@nginx.com                unit-python3.8
11101460Svbart@nginx.com                unit-go
11111460Svbart@nginx.com                unit-perl
11121460Svbart@nginx.com                unit-ruby
11131460Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11141404Svbart@nginx.com         ver="1.16.0" rev="1"
11151404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
11161404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11171404Svbart@nginx.com
11181404Svbart@nginx.com<change>
11191404Svbart@nginx.com<para>
11201404Svbart@nginx.comNGINX Unit updated to 1.16.0.
11211404Svbart@nginx.com</para>
11221404Svbart@nginx.com</change>
11231404Svbart@nginx.com
11241404Svbart@nginx.com</changes>
11251404Svbart@nginx.com
11261404Svbart@nginx.com
11271404Svbart@nginx.com<changes apply="unit" 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 type="feature">
11321404Svbart@nginx.com<para>
11331404Svbart@nginx.combasic load-balancing support with round-robin.
11341404Svbart@nginx.com</para>
11351404Svbart@nginx.com</change>
11361404Svbart@nginx.com
11371404Svbart@nginx.com<change type="feature">
11381404Svbart@nginx.com<para>
11391404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be
11401404Svbart@nginx.comserved from the "share" directory.
11411404Svbart@nginx.com</para>
11421404Svbart@nginx.com</change>
11431404Svbart@nginx.com
11441404Svbart@nginx.com<change type="feature">
11451404Svbart@nginx.com<para>
11461404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk.
11471404Svbart@nginx.com</para>
11481404Svbart@nginx.com</change>
11491404Svbart@nginx.com
11501404Svbart@nginx.com<change type="feature">
11511404Svbart@nginx.com<para>
11521404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON.
11531404Svbart@nginx.com</para>
11541404Svbart@nginx.com</change>
11551404Svbart@nginx.com
11561404Svbart@nginx.com<change type="bugfix">
11571404Svbart@nginx.com<para>
11581404Svbart@nginx.comnegative address matching in router might work improperly in combination with
11591404Svbart@nginx.comnon-negative patterns.
11601404Svbart@nginx.com</para>
11611404Svbart@nginx.com</change>
11621404Svbart@nginx.com
11631404Svbart@nginx.com<change type="bugfix">
11641404Svbart@nginx.com<para>
11651404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0.
11661404Svbart@nginx.com</para>
11671404Svbart@nginx.com</change>
11681404Svbart@nginx.com
11691404Svbart@nginx.com<change type="bugfix">
11701404Svbart@nginx.com<para>
11711404Svbart@nginx.comPHP 7.4 was broken if it was built with thread safety enabled.
11721404Svbart@nginx.com</para>
11731404Svbart@nginx.com</change>
11741404Svbart@nginx.com
11751404Svbart@nginx.com<change type="bugfix">
11761404Svbart@nginx.com<para>
11771404Svbart@nginx.comcompatibility issues with some Python applications.
11781404Svbart@nginx.com</para>
11791404Svbart@nginx.com</change>
11801404Svbart@nginx.com
11811404Svbart@nginx.com</changes>
11821404Svbart@nginx.com
11831404Svbart@nginx.com
11841404Svbart@nginx.com<changes apply="unit-php
1185