xref: /unit/docs/changes.xml (revision 1833)
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
81806Svbart@nginx.com<changes apply="unit" ver="1.23.0" rev="1"
91806Svbart@nginx.com         date="" time=""
101806Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
111806Svbart@nginx.com
121825Sthresh@nginx.com<change type="feature">
131825Sthresh@nginx.com<para>
14*1833Sartem.konev@nginx.comsupport for multiple certificate bundles on a listener via the Server Name
151828Sa.suvorov@f5.comIndication (SNI) TLS extension.
161828Sa.suvorov@f5.com</para>
171828Sa.suvorov@f5.com</change>
181828Sa.suvorov@f5.com
191828Sa.suvorov@f5.com<change type="feature">
201828Sa.suvorov@f5.com<para>
21*1833Sartem.konev@nginx.com"--mandir" ./configure option to specify the directory for man page
22*1833Sartem.konev@nginx.cominstallation.
231825Sthresh@nginx.com</para>
241825Sthresh@nginx.com</change>
251825Sthresh@nginx.com
261811Smax.romanov@nginx.com<change type="bugfix">
271811Smax.romanov@nginx.com<para>
281812Svbart@nginx.comthe router process could crash on premature TLS connection close; the bug had
291812Svbart@nginx.comappeared in 1.17.0.
301812Svbart@nginx.com</para>
311812Svbart@nginx.com</change>
321812Svbart@nginx.com
331812Svbart@nginx.com<change type="bugfix">
341812Svbart@nginx.com<para>
35*1833Sartem.konev@nginx.coma connection leak occurred on premature TLS connection close; the bug had
361812Svbart@nginx.comappeared in 1.6.
371812Svbart@nginx.com</para>
381812Svbart@nginx.com</change>
391812Svbart@nginx.com
401812Svbart@nginx.com<change type="bugfix">
411812Svbart@nginx.com<para>
42*1833Sartem.konev@nginx.coma descriptor and memory leak occurred in the router process when processing
431832Smax.romanov@nginx.comsmall WebSocket frames from a client; the bug had appeared in 1.19.0.
441832Smax.romanov@nginx.com</para>
451832Smax.romanov@nginx.com</change>
461832Smax.romanov@nginx.com
471832Smax.romanov@nginx.com<change type="bugfix">
481832Smax.romanov@nginx.com<para>
49*1833Sartem.konev@nginx.coma descriptor leak occurred in the router process when removing or
501811Smax.romanov@nginx.comreconfiguring an application; the bug had appeared in 1.19.0.
511811Smax.romanov@nginx.com</para>
521811Smax.romanov@nginx.com</change>
531806Svbart@nginx.com
541813Svbart@nginx.com<change type="bugfix">
551813Svbart@nginx.com<para>
561813Svbart@nginx.compersistent storage of certificates might've not worked with some filesystems in
571813Svbart@nginx.comLinux, and all uploaded certificate bundles were forgotten after restart.
581813Svbart@nginx.com</para>
591813Svbart@nginx.com</change>
601813Svbart@nginx.com
611814Svbart@nginx.com<change type="bugfix">
621814Svbart@nginx.com<para>
631820Svbart@nginx.comthe controller process could crash while requesting information about a
641820Svbart@nginx.comcertificate with a non-DNS SAN entry.
651820Svbart@nginx.com</para>
661820Svbart@nginx.com</change>
671820Svbart@nginx.com
681820Svbart@nginx.com<change type="bugfix">
691820Svbart@nginx.com<para>
701822Svbart@nginx.comthe controller process could crash on manipulations with a certificate
71*1833Sartem.konev@nginx.comcontaining a SAN and no standard name attributes in subject or issuer.
721822Svbart@nginx.com</para>
731822Svbart@nginx.com</change>
741822Svbart@nginx.com
751822Svbart@nginx.com<change type="bugfix">
761822Svbart@nginx.com<para>
77*1833Sartem.konev@nginx.comthe Ruby module didn't respect the user locale for defaults in the Encoding
78*1833Sartem.konev@nginx.comclass.
791814Svbart@nginx.com</para>
801814Svbart@nginx.com</change>
811814Svbart@nginx.com
821815Svbart@nginx.com<change type="bugfix">
831815Svbart@nginx.com<para>
841815Svbart@nginx.comthe PHP 5 module failed to build with thread safety enabled; the bug had
851815Svbart@nginx.comappeared in 1.22.0.
861815Svbart@nginx.com</para>
871815Svbart@nginx.com</change>
881815Svbart@nginx.com
891806Svbart@nginx.com</changes>
901806Svbart@nginx.com
911806Svbart@nginx.com
921798Sdefan@nginx.com<changes apply="unit-python3.9" ver="1.22.0" rev="1"
931798Sdefan@nginx.com         date="2021-02-04" time="18:00:00 +0300"
941798Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
951798Sdefan@nginx.com
961798Sdefan@nginx.com<change>
971798Sdefan@nginx.com<para>
981798Sdefan@nginx.comInitial release of Python 3.9 module for NGINX Unit.
991798Sdefan@nginx.com</para>
1001798Sdefan@nginx.com</change>
1011798Sdefan@nginx.com
1021798Sdefan@nginx.com</changes>
1031798Sdefan@nginx.com
1041798Sdefan@nginx.com
1051763Sdefan@nginx.com<changes apply="unit-php
1061763Sdefan@nginx.com                unit-python unit-python2.7
1071763Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1081763Sdefan@nginx.com                unit-python3.8
1091763Sdefan@nginx.com                unit-go
1101763Sdefan@nginx.com                unit-perl
1111763Sdefan@nginx.com                unit-ruby
1121763Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
1131763Sdefan@nginx.com                unit-jsc14 unit-jsc15"
1141763Sdefan@nginx.com         ver="1.22.0" rev="1"
1151793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
1161763Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1171763Sdefan@nginx.com
1181763Sdefan@nginx.com<change>
1191763Sdefan@nginx.com<para>
1201763Sdefan@nginx.comNGINX Unit updated to 1.22.0.
1211763Sdefan@nginx.com</para>
1221763Sdefan@nginx.com</change>
1231763Sdefan@nginx.com
1241763Sdefan@nginx.com</changes>
1251763Sdefan@nginx.com
1261763Sdefan@nginx.com
1271727Svbart@nginx.com<changes apply="unit" ver="1.22.0" rev="1"
1281793Svbart@nginx.com         date="2021-02-04" time="18:00:00 +0300"
1291727Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1301727Svbart@nginx.com
1311759Svbart@nginx.com<change type="feature">
1321759Svbart@nginx.com<para>
1331792Svbart@nginx.comthe ServerRequest and ServerResponse objects of Node.js module are now
1341792Svbart@nginx.comcompliant with Stream API.
1351759Svbart@nginx.com</para>
1361759Svbart@nginx.com</change>
1371759Svbart@nginx.com
1381766Smax.romanov@nginx.com<change type="feature">
1391766Smax.romanov@nginx.com<para>
1401792Svbart@nginx.comsupport for specifying multiple directories in the "path" option of Python
1411792Svbart@nginx.comapps.
1421732Svbart@nginx.com</para>
1431732Svbart@nginx.com</change>
1441732Svbart@nginx.com
1451733Svbart@nginx.com<change type="bugfix">
1461733Svbart@nginx.com<para>
1471792Svbart@nginx.coma memory leak occurred in the router process when serving files larger than
1481792Svbart@nginx.com128K; the bug had appeared in 1.13.0.
1491754Smax.romanov@nginx.com</para>
1501754Smax.romanov@nginx.com</change>
1511754Smax.romanov@nginx.com
1521755Smax.romanov@nginx.com<change type="bugfix">
1531755Smax.romanov@nginx.com<para>
1541790Sartem.konev@nginx.comapps could stop processing new requests under high load; the bug had
1551755Smax.romanov@nginx.comappeared in 1.19.0.
1561755Smax.romanov@nginx.com</para>
1571755Smax.romanov@nginx.com</change>
1581755Smax.romanov@nginx.com
1591756Smax.romanov@nginx.com<change type="bugfix">
1601756Smax.romanov@nginx.com<para>
1611790Sartem.konev@nginx.comapp processes could terminate unexpectedly under high load; the bug had
1621790Sartem.konev@nginx.comappeared in 1.19.0.
1631756Smax.romanov@nginx.com</para>
1641756Smax.romanov@nginx.com</change>
1651756Smax.romanov@nginx.com
1661760Smax.romanov@nginx.com<change type="bugfix">
1671760Smax.romanov@nginx.com<para>
1681792Svbart@nginx.cominvalid HTTP responses were generated for some unusual status codes.
1691792Svbart@nginx.com</para>
1701792Svbart@nginx.com</change>
1711792Svbart@nginx.com
1721792Svbart@nginx.com<change type="bugfix">
1731792Svbart@nginx.com<para>
1741792Svbart@nginx.comthe PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
1751792Svbart@nginx.commissing in the PHP module.
1761792Svbart@nginx.com</para>
1771792Svbart@nginx.com</change>
1781792Svbart@nginx.com
1791792Svbart@nginx.com<change type="bugfix">
1801792Svbart@nginx.com<para>
1811792Svbart@nginx.comthe router process could crash with multithreaded apps under high load.
1821792Svbart@nginx.com</para>
1831792Svbart@nginx.com</change>
1841792Svbart@nginx.com
1851792Svbart@nginx.com<change type="bugfix">
1861792Svbart@nginx.com<para>
1871792Svbart@nginx.comRuby apps with multithreading configured could crash on start under load.
1881792Svbart@nginx.com</para>
1891792Svbart@nginx.com</change>
1901792Svbart@nginx.com
1911792Svbart@nginx.com<change type="bugfix">
1921792Svbart@nginx.com<para>
1931792Svbart@nginx.commount points weren't unmounted when the "mount" namespace isolation was used;
1941792Svbart@nginx.comthe bug had appeared in 1.21.0.
1951760Smax.romanov@nginx.com</para>
1961760Smax.romanov@nginx.com</change>
1971760Smax.romanov@nginx.com
1981780Smax.romanov@nginx.com<change type="bugfix">
1991780Smax.romanov@nginx.com<para>
2001790Sartem.konev@nginx.comthe router process could crash while removing or reconfiguring an app that used
2011790Sartem.konev@nginx.comWebSocket.
2021780Smax.romanov@nginx.com</para>
2031780Smax.romanov@nginx.com</change>
2041780Smax.romanov@nginx.com
2051789Smax.romanov@nginx.com<change type="bugfix">
2061789Smax.romanov@nginx.com<para>
2071789Smax.romanov@nginx.coma memory leak occurring in the router process when removing or reconfiguring
2081789Smax.romanov@nginx.coman application; the bug had appeared in 1.19.0.
2091789Smax.romanov@nginx.com</para>
2101789Smax.romanov@nginx.com</change>
2111789Smax.romanov@nginx.com
2121727Svbart@nginx.com</changes>
2131727Svbart@nginx.com
2141727Svbart@nginx.com
2151722Svbart@nginx.com<changes apply="unit-jsc15" ver="1.21.0" rev="1"
2161722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
2171722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2181722Svbart@nginx.com
2191722Svbart@nginx.com<change>
2201722Svbart@nginx.com<para>
2211722Svbart@nginx.comInitial release of Java 15 module for NGINX Unit.
2221722Svbart@nginx.com</para>
2231722Svbart@nginx.com</change>
2241722Svbart@nginx.com
2251722Svbart@nginx.com</changes>
2261722Svbart@nginx.com
2271722Svbart@nginx.com
2281722Svbart@nginx.com<changes apply="unit-jsc14" ver="1.21.0" rev="1"
2291722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
2301722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2311722Svbart@nginx.com
2321722Svbart@nginx.com<change>
2331722Svbart@nginx.com<para>
2341722Svbart@nginx.comInitial release of Java 14 module for NGINX Unit.
2351722Svbart@nginx.com</para>
2361722Svbart@nginx.com</change>
2371722Svbart@nginx.com
2381722Svbart@nginx.com</changes>
2391722Svbart@nginx.com
2401722Svbart@nginx.com
2411722Svbart@nginx.com<changes apply="unit-jsc13" ver="1.21.0" rev="1"
2421722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
2431722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2441722Svbart@nginx.com
2451722Svbart@nginx.com<change>
2461722Svbart@nginx.com<para>
2471722Svbart@nginx.comInitial release of Java 13 module for NGINX Unit.
2481722Svbart@nginx.com</para>
2491722Svbart@nginx.com</change>
2501722Svbart@nginx.com
2511722Svbart@nginx.com</changes>
2521722Svbart@nginx.com
2531722Svbart@nginx.com
2541722Svbart@nginx.com<changes apply="unit-php
2551722Svbart@nginx.com                unit-python unit-python2.7
2561722Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
2571722Svbart@nginx.com                unit-python3.8
2581722Svbart@nginx.com                unit-go
2591722Svbart@nginx.com                unit-perl
2601722Svbart@nginx.com                unit-ruby
2611722Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
2621722Svbart@nginx.com         ver="1.21.0" rev="1"
2631722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
2641722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2651722Svbart@nginx.com
2661722Svbart@nginx.com<change>
2671722Svbart@nginx.com<para>
2681722Svbart@nginx.comNGINX Unit updated to 1.21.0.
2691722Svbart@nginx.com</para>
2701722Svbart@nginx.com</change>
2711722Svbart@nginx.com
2721722Svbart@nginx.com</changes>
2731722Svbart@nginx.com
2741722Svbart@nginx.com
2751722Svbart@nginx.com<changes apply="unit" ver="1.21.0" rev="1"
2761722Svbart@nginx.com         date="2020-11-19" time="18:00:00 +0300"
2771722Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2781722Svbart@nginx.com
2791722Svbart@nginx.com<change type="change">
2801722Svbart@nginx.com<para>
2811722Svbart@nginx.comprocfs is mounted by default for all languages when "rootfs" isolation is used.
2821722Svbart@nginx.com</para>
2831722Svbart@nginx.com</change>
2841722Svbart@nginx.com
2851722Svbart@nginx.com<change type="change">
2861722Svbart@nginx.com<para>
2871722Svbart@nginx.comany characters valid according to RFC 7230 are now allowed in HTTP header field
2881722Svbart@nginx.comnames.
2891722Svbart@nginx.com</para>
2901722Svbart@nginx.com</change>
2911722Svbart@nginx.com
2921722Svbart@nginx.com<change type="change">
2931722Svbart@nginx.com<para>
2941722Svbart@nginx.comHTTP header fields with underscores ("_") are now discarded from requests by
2951722Svbart@nginx.comdefault.
2961722Svbart@nginx.com</para>
2971722Svbart@nginx.com</change>
2981722Svbart@nginx.com
2991722Svbart@nginx.com<change type="feature">
3001722Svbart@nginx.com<para>
3011722Svbart@nginx.comoptional multithreaded request processing for Java, Python, Perl, and Ruby apps.
3021722Svbart@nginx.com</para>
3031722Svbart@nginx.com</change>
3041722Svbart@nginx.com
3051722Svbart@nginx.com<change type="feature">
3061722Svbart@nginx.com<para>
3071722Svbart@nginx.comregular expressions in route matching patterns.
3081722Svbart@nginx.com</para>
3091722Svbart@nginx.com</change>
3101722Svbart@nginx.com
3111722Svbart@nginx.com<change type="feature">
3121722Svbart@nginx.com<para>
3131722Svbart@nginx.comcompatibility with Python 3.9.
3141722Svbart@nginx.com</para>
3151722Svbart@nginx.com</change>
3161722Svbart@nginx.com
3171722Svbart@nginx.com<change type="feature">
3181722Svbart@nginx.com<para>
3191722Svbart@nginx.comthe Python module now supports ASGI 2.0 legacy applications.
3201722Svbart@nginx.com</para>
3211722Svbart@nginx.com</change>
3221722Svbart@nginx.com
3231722Svbart@nginx.com<change type="feature">
3241722Svbart@nginx.com<para>
3251722Svbart@nginx.comthe "protocol" option in Python applications aids choice between ASGI and WSGI.
3261722Svbart@nginx.com</para>
3271722Svbart@nginx.com</change>
3281722Svbart@nginx.com
3291722Svbart@nginx.com<change type="feature">
3301722Svbart@nginx.com<para>
3311722Svbart@nginx.comthe fastcgi_finish_request() PHP function that finalizes request processing and
3321722Svbart@nginx.comcontinues code execution without holding onto the client connection.
3331722Svbart@nginx.com</para>
3341722Svbart@nginx.com</change>
3351722Svbart@nginx.com
3361722Svbart@nginx.com<change type="feature">
3371722Svbart@nginx.com<para>
3381722Svbart@nginx.comthe "discard_unsafe_fields" HTTP option that enables discarding request header
3391722Svbart@nginx.comfields with irregular (but still valid) characters in the field name.
3401722Svbart@nginx.com</para>
3411722Svbart@nginx.com</change>
3421722Svbart@nginx.com
3431722Svbart@nginx.com<change type="feature">
3441722Svbart@nginx.com<para>
3451722Svbart@nginx.comthe "procfs" and "tmpfs" automount isolation options to disable automatic
3461722Svbart@nginx.commounting of eponymous filesystems.
3471722Svbart@nginx.com</para>
3481722Svbart@nginx.com</change>
3491722Svbart@nginx.com
3501722Svbart@nginx.com<change type="bugfix">
3511722Svbart@nginx.com<para>
3521722Svbart@nginx.comthe router process could crash when running Go applications under high load;
3531722Svbart@nginx.comthe bug had appeared in 1.19.0.
3541722Svbart@nginx.com</para>
3551722Svbart@nginx.com</change>
3561722Svbart@nginx.com
3571722Svbart@nginx.com<change type="bugfix">
3581722Svbart@nginx.com<para>
3591722Svbart@nginx.comsome language dependencies could remain mounted after using "rootfs" isolation.
3601722Svbart@nginx.com</para>
3611722Svbart@nginx.com</change>
3621722Svbart@nginx.com
3631722Svbart@nginx.com<change type="bugfix">
3641722Svbart@nginx.com<para>
3651722Svbart@nginx.comvarious compatibility issues in Java applications.
3661722Svbart@nginx.com</para>
3671722Svbart@nginx.com</change>
3681722Svbart@nginx.com
3691722Svbart@nginx.com<change type="bugfix">
3701722Svbart@nginx.com<para>
3711722Svbart@nginx.comthe Java module built with the musl C library couldn't run applications that
3721722Svbart@nginx.comuse "rootfs" isolation.
3731722Svbart@nginx.com</para>
3741722Svbart@nginx.com</change>
3751722Svbart@nginx.com
3761722Svbart@nginx.com</changes>
3771722Svbart@nginx.com
3781722Svbart@nginx.com
3791330Svbart@nginx.com<changes apply="unit-php
3801330Svbart@nginx.com                unit-python unit-python2.7
3811330Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
3821330Svbart@nginx.com                unit-python3.8
3831330Svbart@nginx.com                unit-go
3841330Svbart@nginx.com                unit-perl
3851330Svbart@nginx.com                unit-ruby
3861330Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
3871640Svbart@nginx.com         ver="1.20.0" rev="1"
3881640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
3891640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3901640Svbart@nginx.com
3911640Svbart@nginx.com<change>
3921640Svbart@nginx.com<para>
3931640Svbart@nginx.comNGINX Unit updated to 1.20.0.
3941640Svbart@nginx.com</para>
3951640Svbart@nginx.com</change>
3961640Svbart@nginx.com
3971640Svbart@nginx.com</changes>
3981640Svbart@nginx.com
3991640Svbart@nginx.com
4001640Svbart@nginx.com<changes apply="unit" ver="1.20.0" rev="1"
4011640Svbart@nginx.com         date="2020-10-08" time="18:00:00 +0300"
4021640Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
4031640Svbart@nginx.com
4041640Svbart@nginx.com<change type="change">
4051640Svbart@nginx.com<para>
4061640Svbart@nginx.comthe PHP module is now initialized before chrooting; this enables loading all
4071640Svbart@nginx.comextensions from the host system.
4081640Svbart@nginx.com</para>
4091640Svbart@nginx.com</change>
4101640Svbart@nginx.com
4111640Svbart@nginx.com<change type="change">
4121640Svbart@nginx.com<para>
4131640Svbart@nginx.comAVIF and APNG image formats added to the default MIME type list.
4141640Svbart@nginx.com</para>
4151640Svbart@nginx.com</change>
4161640Svbart@nginx.com
4171643Svbart@nginx.com<change type="change">
4181643Svbart@nginx.com<para>
4191643Svbart@nginx.comfunctional tests migrated to the pytest framework.
4201643Svbart@nginx.com</para>
4211643Svbart@nginx.com</change>
4221643Svbart@nginx.com
4231640Svbart@nginx.com<change type="feature">
4241640Svbart@nginx.com<para>
4251640Svbart@nginx.comthe Python module now fully supports applications that use the ASGI 3.0 server
4261640Svbart@nginx.cominterface.
4271640Svbart@nginx.com</para>
4281640Svbart@nginx.com</change>
4291640Svbart@nginx.com
4301640Svbart@nginx.com<change type="feature">
4311640Svbart@nginx.com<para>
4321640Svbart@nginx.comthe Python module now has a built-in WebSocket server implementation for
4331640Svbart@nginx.comapplications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
4341640Svbart@nginx.comspecification.
4351640Svbart@nginx.com</para>
4361640Svbart@nginx.com</change>
4371640Svbart@nginx.com
4381640Svbart@nginx.com<change type="feature">
4391640Svbart@nginx.com<para>
4401640Svbart@nginx.comautomatic mounting of an isolated "/tmp" file system into chrooted application
4411640Svbart@nginx.comenvironments.
4421640Svbart@nginx.com</para>
4431640Svbart@nginx.com</change>
4441640Svbart@nginx.com
4451640Svbart@nginx.com<change type="feature">
4461640Svbart@nginx.com<para>
4471640Svbart@nginx.comthe $host variable contains a normalized "Host" request value.
4481640Svbart@nginx.com</para>
4491640Svbart@nginx.com</change>
4501640Svbart@nginx.com
4511640Svbart@nginx.com<change type="feature">
4521640Svbart@nginx.com<para>
4531640Svbart@nginx.comthe "callable" option sets Python application callable names.
4541640Svbart@nginx.com</para>
4551640Svbart@nginx.com</change>
4561640Svbart@nginx.com
4571640Svbart@nginx.com<change type="feature">
4581640Svbart@nginx.com<para>
4591640Svbart@nginx.comcompatibility with PHP 8 RC 1. Thanks to Remi Collet.
4601640Svbart@nginx.com</para>
4611640Svbart@nginx.com</change>
4621640Svbart@nginx.com
4631640Svbart@nginx.com<change type="feature">
4641640Svbart@nginx.com<para>
4651640Svbart@nginx.comthe "automount" option in the "isolation" object allows to turn off the
4661640Svbart@nginx.comautomatic mounting of language module dependencies.
4671640Svbart@nginx.com</para>
4681640Svbart@nginx.com</change>
4691640Svbart@nginx.com
4701640Svbart@nginx.com<change type="bugfix">
4711640Svbart@nginx.com<para>
4721640Svbart@nginx.com"pass"-ing requests to upstreams from a route was broken; the bug had appeared
4731640Svbart@nginx.comin 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
4741640Svbart@nginx.com</para>
4751640Svbart@nginx.com</change>
4761640Svbart@nginx.com
4771640Svbart@nginx.com<change type="bugfix">
4781640Svbart@nginx.com<para>
4791640Svbart@nginx.comthe router process could crash during reconfiguration.
4801640Svbart@nginx.com</para>
4811640Svbart@nginx.com</change>
4821640Svbart@nginx.com
4831640Svbart@nginx.com<change type="bugfix">
4841640Svbart@nginx.com<para>
4851640Svbart@nginx.coma memory leak occurring in the router process; the bug had appeared in 1.18.0.
4861640Svbart@nginx.com</para>
4871640Svbart@nginx.com</change>
4881640Svbart@nginx.com
4891640Svbart@nginx.com<change type="bugfix">
4901640Svbart@nginx.com<para>
4911640Svbart@nginx.comthe "!" (non-empty) pattern was matched incorrectly;
4921640Svbart@nginx.comthe bug had appeared in 1.19.0.
4931640Svbart@nginx.com</para>
4941640Svbart@nginx.com</change>
4951640Svbart@nginx.com
4961640Svbart@nginx.com<change type="bugfix">
4971640Svbart@nginx.com<para>
4981640Svbart@nginx.comfixed building on platforms without sendfile() support, notably NetBSD;
4991640Svbart@nginx.comthe bug had appeared in 1.16.0.
5001640Svbart@nginx.com</para>
5011640Svbart@nginx.com</change>
5021640Svbart@nginx.com
5031640Svbart@nginx.com</changes>
5041640Svbart@nginx.com
5051640Svbart@nginx.com
5061640Svbart@nginx.com<changes apply="unit-php
5071640Svbart@nginx.com                unit-python unit-python2.7
5081640Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
5091640Svbart@nginx.com                unit-python3.8
5101640Svbart@nginx.com                unit-go
5111640Svbart@nginx.com                unit-perl
5121640Svbart@nginx.com                unit-ruby
5131640Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
5141570Svbart@nginx.com         ver="1.19.0" rev="1"
5151570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
5161570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5171570Svbart@nginx.com
5181570Svbart@nginx.com<change>
5191570Svbart@nginx.com<para>
5201570Svbart@nginx.comNGINX Unit updated to 1.19.0.
5211570Svbart@nginx.com</para>
5221570Svbart@nginx.com</change>
5231570Svbart@nginx.com
5241570Svbart@nginx.com</changes>
5251570Svbart@nginx.com
5261570Svbart@nginx.com
5271570Svbart@nginx.com<changes apply="unit" ver="1.19.0" rev="1"
5281570Svbart@nginx.com         date="2020-08-13" time="18:00:00 +0300"
5291570Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
5301570Svbart@nginx.com
5311570Svbart@nginx.com<change type="feature">
5321570Svbart@nginx.com<para>
5331570Svbart@nginx.comreworked IPC between the router process and the applications to lower latencies,
5341570Svbart@nginx.comincrease performance, and improve scalability.
5351570Svbart@nginx.com</para>
5361570Svbart@nginx.com</change>
5371570Svbart@nginx.com
5381570Svbart@nginx.com<change type="feature">
5391570Svbart@nginx.com<para>
5401570Svbart@nginx.comsupport for an arbitrary number of wildcards in route matching patterns.
5411570Svbart@nginx.com</para>
5421570Svbart@nginx.com</change>
5431570Svbart@nginx.com
5441570Svbart@nginx.com<change type="feature">
5451570Svbart@nginx.com<para>
5461570Svbart@nginx.comchunked transfer encoding in proxy responses.
5471570Svbart@nginx.com</para>
5481570Svbart@nginx.com</change>
5491570Svbart@nginx.com
5501570Svbart@nginx.com<change type="feature">
5511570Svbart@nginx.com<para>
5521570Svbart@nginx.combasic variables support in the "pass" option.
5531570Svbart@nginx.com</para>
5541570Svbart@nginx.com</change>
5551570Svbart@nginx.com
5561570Svbart@nginx.com<change type="feature">
5571570Svbart@nginx.com<para>
5581570Svbart@nginx.comcompatibility with PHP 8 Beta 1.
5591570Svbart@nginx.comThanks to Remi Collet.
5601570Svbart@nginx.com</para>
5611570Svbart@nginx.com</change>
5621570Svbart@nginx.com
5631570Svbart@nginx.com<change type="bugfix">
5641570Svbart@nginx.com<para>
5651570Svbart@nginx.comthe router process could crash while passing requests to an application under
5661570Svbart@nginx.comhigh load.
5671570Svbart@nginx.com</para>
5681570Svbart@nginx.com</change>
5691570Svbart@nginx.com
5701570Svbart@nginx.com<change type="bugfix">
5711570Svbart@nginx.com<para>
5721570Svbart@nginx.coma number of language modules failed to build on some systems;
5731570Svbart@nginx.comthe bug had appeared in 1.18.0.
5741570Svbart@nginx.com</para>
5751570Svbart@nginx.com</change>
5761570Svbart@nginx.com
5771570Svbart@nginx.com<change type="bugfix">
5781570Svbart@nginx.com<para>
5791570Svbart@nginx.comtime in error log messages from PHP applications could lag.
5801570Svbart@nginx.com</para>
5811570Svbart@nginx.com</change>
5821570Svbart@nginx.com
5831570Svbart@nginx.com<change type="bugfix">
5841570Svbart@nginx.com<para>
5851570Svbart@nginx.comreconfiguration requests could hang if an application had failed to start;
5861570Svbart@nginx.comthe bug had appeared in 1.18.0.
5871570Svbart@nginx.com</para>
5881570Svbart@nginx.com</change>
5891570Svbart@nginx.com
5901570Svbart@nginx.com<change type="bugfix">
5911570Svbart@nginx.com<para>
5921570Svbart@nginx.commemory leak during reconfiguration.
5931570Svbart@nginx.com</para>
5941570Svbart@nginx.com</change>
5951570Svbart@nginx.com
5961570Svbart@nginx.com<change type="bugfix">
5971570Svbart@nginx.com<para>
5981570Svbart@nginx.comthe daemon didn't start without language modules;
5991570Svbart@nginx.comthe bug had appeared in 1.18.0.
6001570Svbart@nginx.com</para>
6011570Svbart@nginx.com</change>
6021570Svbart@nginx.com
6031570Svbart@nginx.com<change type="bugfix">
6041570Svbart@nginx.com<para>
6051570Svbart@nginx.comthe router process could crash at exit.
6061570Svbart@nginx.com</para>
6071570Svbart@nginx.com</change>
6081570Svbart@nginx.com
6091570Svbart@nginx.com<change type="bugfix">
6101570Svbart@nginx.com<para>
6111570Svbart@nginx.comNode.js applications could crash at exit.
6121570Svbart@nginx.com</para>
6131570Svbart@nginx.com</change>
6141570Svbart@nginx.com
6151570Svbart@nginx.com<change type="bugfix">
6161570Svbart@nginx.com<para>
6171570Svbart@nginx.comthe Ruby module could be linked against a wrong library version.
6181570Svbart@nginx.com</para>
6191570Svbart@nginx.com</change>
6201570Svbart@nginx.com
6211570Svbart@nginx.com</changes>
6221570Svbart@nginx.com
6231570Svbart@nginx.com
6241570Svbart@nginx.com<changes apply="unit-php
6251570Svbart@nginx.com                unit-python unit-python2.7
6261570Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6271570Svbart@nginx.com                unit-python3.8
6281570Svbart@nginx.com                unit-go
6291570Svbart@nginx.com                unit-perl
6301570Svbart@nginx.com                unit-ruby
6311570Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
6321491Svbart@nginx.com         ver="1.18.0" rev="1"
6331491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
6341491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6351491Svbart@nginx.com
6361491Svbart@nginx.com<change>
6371491Svbart@nginx.com<para>
6381491Svbart@nginx.comNGINX Unit updated to 1.18.0.
6391491Svbart@nginx.com</para>
6401491Svbart@nginx.com</change>
6411491Svbart@nginx.com
6421491Svbart@nginx.com</changes>
6431491Svbart@nginx.com
6441491Svbart@nginx.com
6451491Svbart@nginx.com<changes apply="unit" ver="1.18.0" rev="1"
6461491Svbart@nginx.com         date="2020-05-28" time="18:00:00 +0300"
6471491Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6481491Svbart@nginx.com
6491491Svbart@nginx.com<change type="feature">
6501491Svbart@nginx.com<para>
6511491Svbart@nginx.comthe "rootfs" isolation option for changing root filesystem for an application.
6521491Svbart@nginx.com</para>
6531491Svbart@nginx.com</change>
6541491Svbart@nginx.com
6551491Svbart@nginx.com<change type="feature">
6561491Svbart@nginx.com<para>
6571491Svbart@nginx.commultiple "targets" in PHP applications.
6581491Svbart@nginx.com</para>
6591491Svbart@nginx.com</change>
6601491Svbart@nginx.com
6611491Svbart@nginx.com<change type="feature">
6621491Svbart@nginx.com<para>
6631491Svbart@nginx.comsupport for percent-encoding in the "uri" and "arguments" matching options
6641491Svbart@nginx.comand in the "pass" option.
6651491Svbart@nginx.com</para>
6661491Svbart@nginx.com</change>
6671491Svbart@nginx.com
6681491Svbart@nginx.com</changes>
6691491Svbart@nginx.com
6701491Svbart@nginx.com
6711491Svbart@nginx.com<changes apply="unit-php
6721491Svbart@nginx.com                unit-python unit-python2.7
6731491Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
6741491Svbart@nginx.com                unit-python3.8
6751491Svbart@nginx.com                unit-go
6761491Svbart@nginx.com                unit-perl
6771491Svbart@nginx.com                unit-ruby
6781491Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
6791460Svbart@nginx.com         ver="1.17.0" rev="1"
6801460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
6811460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6821460Svbart@nginx.com
6831460Svbart@nginx.com<change>
6841460Svbart@nginx.com<para>
6851460Svbart@nginx.comNGINX Unit updated to 1.17.0.
6861460Svbart@nginx.com</para>
6871460Svbart@nginx.com</change>
6881460Svbart@nginx.com
6891460Svbart@nginx.com</changes>
6901460Svbart@nginx.com
6911460Svbart@nginx.com
6921460Svbart@nginx.com<changes apply="unit" ver="1.17.0" rev="1"
6931460Svbart@nginx.com         date="2020-04-16" time="18:00:00 +0300"
6941460Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
6951460Svbart@nginx.com
6961460Svbart@nginx.com<change type="feature">
6971460Svbart@nginx.com<para>
6981460Svbart@nginx.coma "return" action with optional "location" for immediate responses and external
6991460Svbart@nginx.comredirection.
7001460Svbart@nginx.com</para>
7011460Svbart@nginx.com</change>
7021460Svbart@nginx.com
7031460Svbart@nginx.com<change type="feature">
7041460Svbart@nginx.com<para>
7051460Svbart@nginx.comfractional weights support for upstream servers.
7061460Svbart@nginx.com</para>
7071460Svbart@nginx.com</change>
7081460Svbart@nginx.com
7091460Svbart@nginx.com<change type="bugfix">
7101460Svbart@nginx.com<para>
7111460Svbart@nginx.comaccidental 502 "Bad Gateway" errors might have occurred in applications under
7121460Svbart@nginx.comhigh load.
7131460Svbart@nginx.com</para>
7141460Svbart@nginx.com</change>
7151460Svbart@nginx.com
7161460Svbart@nginx.com<change type="bugfix">
7171460Svbart@nginx.com<para>
7181460Svbart@nginx.commemory leak in the router; the bug had appeared in 1.13.0.
7191460Svbart@nginx.com</para>
7201460Svbart@nginx.com</change>
7211460Svbart@nginx.com
7221460Svbart@nginx.com<change type="bugfix">
7231460Svbart@nginx.com<para>
7241460Svbart@nginx.comsegmentation fault might have occurred in the router process when reaching
7251460Svbart@nginx.comopen connections limit.
7261460Svbart@nginx.com</para>
7271460Svbart@nginx.com</change>
7281460Svbart@nginx.com
7291460Svbart@nginx.com<change type="bugfix">
7301460Svbart@nginx.com<para>
7311460Svbart@nginx.com"close() failed (9: Bad file descriptor)" alerts might have appeared in the log
7321460Svbart@nginx.comwhile processing large request bodies; the bug had appeared in 1.16.0.
7331460Svbart@nginx.com</para>
7341460Svbart@nginx.com</change>
7351460Svbart@nginx.com
7361460Svbart@nginx.com<change type="bugfix">
7371460Svbart@nginx.com<para>
7381460Svbart@nginx.comexisting application processes didn't reopen the log file.
7391460Svbart@nginx.com</para>
7401460Svbart@nginx.com</change>
7411460Svbart@nginx.com
7421460Svbart@nginx.com<change type="bugfix">
7431460Svbart@nginx.com<para>
7441460Svbart@nginx.comincompatibility with some Node.js applications.
7451460Svbart@nginx.com</para>
7461460Svbart@nginx.com</change>
7471460Svbart@nginx.com
7481460Svbart@nginx.com<change type="bugfix">
7491460Svbart@nginx.com<para>
7501460Svbart@nginx.combroken build on DragonFly BSD; the bug had appeared in 1.16.0.
7511460Svbart@nginx.com</para>
7521460Svbart@nginx.com</change>
7531460Svbart@nginx.com
7541460Svbart@nginx.com</changes>
7551460Svbart@nginx.com
7561460Svbart@nginx.com
7571460Svbart@nginx.com<changes apply="unit-php
7581460Svbart@nginx.com                unit-python unit-python2.7
7591460Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
7601460Svbart@nginx.com                unit-python3.8
7611460Svbart@nginx.com                unit-go
7621460Svbart@nginx.com                unit-perl
7631460Svbart@nginx.com                unit-ruby
7641460Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
7651404Svbart@nginx.com         ver="1.16.0" rev="1"
7661404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
7671404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7681404Svbart@nginx.com
7691404Svbart@nginx.com<change>
7701404Svbart@nginx.com<para>
7711404Svbart@nginx.comNGINX Unit updated to 1.16.0.
7721404Svbart@nginx.com</para>
7731404Svbart@nginx.com</change>
7741404Svbart@nginx.com
7751404Svbart@nginx.com</changes>
7761404Svbart@nginx.com
7771404Svbart@nginx.com
7781404Svbart@nginx.com<changes apply="unit" ver="1.16.0" rev="1"
7791404Svbart@nginx.com         date="2020-03-12" time="18:00:00 +0300"
7801404Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
7811404Svbart@nginx.com
7821404Svbart@nginx.com<change type="feature">
7831404Svbart@nginx.com<para>
7841404Svbart@nginx.combasic load-balancing support with round-robin.
7851404Svbart@nginx.com</para>
7861404Svbart@nginx.com</change>
7871404Svbart@nginx.com
7881404Svbart@nginx.com<change type="feature">
7891404Svbart@nginx.com<para>
7901404Svbart@nginx.coma "fallback" option that performs an alternative action if a request can't be
7911404Svbart@nginx.comserved from the "share" directory.
7921404Svbart@nginx.com</para>
7931404Svbart@nginx.com</change>
7941404Svbart@nginx.com
7951404Svbart@nginx.com<change type="feature">
7961404Svbart@nginx.com<para>
7971404Svbart@nginx.comreduced memory consumption by dumping large request bodies to disk.
7981404Svbart@nginx.com</para>
7991404Svbart@nginx.com</change>
8001404Svbart@nginx.com
8011404Svbart@nginx.com<change type="feature">
8021404Svbart@nginx.com<para>
8031404Svbart@nginx.comstripping UTF-8 BOM and JavaScript-style comments from uploaded JSON.
8041404Svbart@nginx.com</para>
8051404Svbart@nginx.com</change>
8061404Svbart@nginx.com
8071404Svbart@nginx.com<change type="bugfix">
8081404Svbart@nginx.com<para>
8091404Svbart@nginx.comnegative address matching in router might work improperly in combination with
8101404Svbart@nginx.comnon-negative patterns.
8111404Svbart@nginx.com</para>
8121404Svbart@nginx.com</change>
8131404Svbart@nginx.com
8141404Svbart@nginx.com<change type="bugfix">
8151404Svbart@nginx.com<para>
8161404Svbart@nginx.comJava Spring applications failed to run; the bug had appeared in 1.10.0.
8171404Svbart@nginx.com</para>
8181404Svbart@nginx.com</change>
8191404Svbart@nginx.com
8201404Svbart@nginx.com<change type="bugfix">
8211404Svbart@nginx.com<para>
8221404Svbart@nginx.comPHP 7.4 was broken if it was built with thread safety enabled.
8231404Svbart@nginx.com</para>
8241404Svbart@nginx.com</change>
8251404Svbart@nginx.com
8261404Svbart@nginx.com<change type="bugfix">
8271404Svbart@nginx.com<para>
8281404Svbart@nginx.comcompatibility issues with some Python applications.
8291404Svbart@nginx.com</para>
8301404Svbart@nginx.com</change>
8311404Svbart@nginx.com
8321404Svbart@nginx.com</changes>
8331404Svbart@nginx.com
8341404Svbart@nginx.com
8351404Svbart@nginx.com<changes apply="unit-php
8361404Svbart@nginx.com                unit-python unit-python2.7
8371404Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8381404Svbart@nginx.com                unit-python3.8
8391404Svbart@nginx.com                unit-go
8401404Svbart@nginx.com                unit-perl
8411404Svbart@nginx.com                unit-ruby
8421404Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8431357Svbart@nginx.com         ver="1.15.0" rev="1"
8441357Svbart@nginx.com         date="2020-02-06" time="18:00:00 +0300"
8451357Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8461357Svbart@nginx.com
8471357Svbart@nginx.com<change>
8481357Svbart@nginx.com<para>
8491357Svbart@nginx.comNGINX Unit updated to 1.15.0.
8501357Svbart@nginx.com</para>
8511357Svbart@nginx.com</change>
8521357Svbart@nginx.com
8531357Svbart@nginx.com</changes>
8541357Svbart@nginx.com
8551357Svbart@nginx.com
8561357Svbart@nginx.com<changes apply="unit" ver="1.15.0" rev="1"
8571357Svbart@nginx.com         date="2020-02-06" time="18:00:00 +0300"
8581357Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8591357Svbart@nginx.com
8601357Svbart@nginx.com<change type="change">
8611357Svbart@nginx.com<para>
8621357Svbart@nginx.comextensions of dynamically requested PHP scripts were restricted to ".php".
8631357Svbart@nginx.com</para>
8641357Svbart@nginx.com</change>
8651357Svbart@nginx.com
8661357Svbart@nginx.com<change type="feature">
8671357Svbart@nginx.com<para>
8681357Svbart@nginx.comcompatibility with Ruby 2.7.
8691357Svbart@nginx.com</para>
8701357Svbart@nginx.com</change>
8711357Svbart@nginx.com
8721357Svbart@nginx.com<change type="bugfix">
8731357Svbart@nginx.com<para>
8741357Svbart@nginx.comsegmentation fault might have occurred in the router process with multiple
8751357Svbart@nginx.comapplication processes under load; the bug had appeared in 1.14.0.
8761357Svbart@nginx.com</para>
8771357Svbart@nginx.com</change>
8781357Svbart@nginx.com
8791357Svbart@nginx.com<change type="bugfix">
8801357Svbart@nginx.com<para>
8811357Svbart@nginx.comreceiving request body over TLS connection might have stalled.
8821357Svbart@nginx.com</para>
8831357Svbart@nginx.com</change>
8841357Svbart@nginx.com
8851357Svbart@nginx.com</changes>
8861357Svbart@nginx.com
8871357Svbart@nginx.com
8881357Svbart@nginx.com<changes apply="unit-php
8891357Svbart@nginx.com                unit-python unit-python2.7
8901357Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
8911357Svbart@nginx.com                unit-python3.8
8921357Svbart@nginx.com                unit-go
8931357Svbart@nginx.com                unit-perl
8941357Svbart@nginx.com                unit-ruby
8951357Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
8961330Svbart@nginx.com         ver="1.14.0" rev="1"
8971330Svbart@nginx.com         date="2019-12-26" time="18:00:00 +0300"
8981330Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
8991330Svbart@nginx.com
9001330Svbart@nginx.com<change>
9011330Svbart@nginx.com<para>
9021330Svbart@nginx.comNGINX Unit updated to 1.14.0.
9031330Svbart@nginx.com</para>
9041330Svbart@nginx.com</change>
9051330Svbart@nginx.com
9061330Svbart@nginx.com</changes>
9071330Svbart@nginx.com
9081330Svbart@nginx.com
9091330Svbart@nginx.com<changes apply="unit" ver="1.14.0" rev="1"
9101330Svbart@nginx.com         date="2019-12-26" time="18:00:00 +0300"
9111330Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9121330Svbart@nginx.com
9131330Svbart@nginx.com<change type="change">
9141330Svbart@nginx.com<para>
9151330Svbart@nginx.comthe Go package import name changed to "unit.nginx.org/go".
9161330Svbart@nginx.com</para>
9171330Svbart@nginx.com</change>
9181330Svbart@nginx.com
9191330Svbart@nginx.com<change type="change">
9201330Svbart@nginx.com<para>
9211330Svbart@nginx.comGo package now links to libunit instead of including library sources.
9221330Svbart@nginx.com</para>
9231330Svbart@nginx.com</change>
9241330Svbart@nginx.com
9251330Svbart@nginx.com<change type="feature">
9261330Svbart@nginx.com<para>
9271330Svbart@nginx.comability to change user and group for isolated applications when Unit daemon
9281330Svbart@nginx.comruns as an unprivileged user.
9291330Svbart@nginx.com</para>
9301330Svbart@nginx.com</change>
9311330Svbart@nginx.com
9321330Svbart@nginx.com<change type="feature">
9331330Svbart@nginx.com<para>
9341330Svbart@nginx.comrequest routing by source and destination addresses and ports.
9351330Svbart@nginx.com</para>
9361330Svbart@nginx.com</change>
9371330Svbart@nginx.com
9381330Svbart@nginx.com<change type="bugfix">
9391330Svbart@nginx.com<para>
9401330Svbart@nginx.commemory bloat on large responses.
9411330Svbart@nginx.com</para>
9421330Svbart@nginx.com</change>
9431330Svbart@nginx.com
9441330Svbart@nginx.com</changes>
9451330Svbart@nginx.com
9461330Svbart@nginx.com
9471290Sdefan@nginx.com<changes apply="unit-go1.13" ver="1.13.0" rev="1"
9481290Sdefan@nginx.com         date="2019-11-20" time="09:00:00 +0300"
9491290Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9501290Sdefan@nginx.com
9511290Sdefan@nginx.com<change>
9521290Sdefan@nginx.com<para>
9531290Sdefan@nginx.comInitial release of Go 1.13 module for NGINX Unit.
9541290Sdefan@nginx.com</para>
9551290Sdefan@nginx.com</change>
9561290Sdefan@nginx.com
9571290Sdefan@nginx.com</changes>
9581290Sdefan@nginx.com
9591290Sdefan@nginx.com
9601290Sdefan@nginx.com<changes apply="unit-go1.12" ver="1.13.0" rev="1"
9611290Sdefan@nginx.com         date="2019-11-20" time="09:00:00 +0300"
9621290Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9631290Sdefan@nginx.com
9641290Sdefan@nginx.com<change>
9651290Sdefan@nginx.com<para>
9661290Sdefan@nginx.comInitial release of Go 1.12 module for NGINX Unit.
9671290Sdefan@nginx.com</para>
9681290Sdefan@nginx.com</change>
9691290Sdefan@nginx.com
9701290Sdefan@nginx.com</changes>
9711290Sdefan@nginx.com
9721290Sdefan@nginx.com
9731289Sdefan@nginx.com<changes apply="unit-python3.8" ver="1.13.0" rev="1"
9741289Sdefan@nginx.com         date="2019-11-18" time="14:20:00 +0300"
9751289Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9761289Sdefan@nginx.com
9771289Sdefan@nginx.com<change>
9781289Sdefan@nginx.com<para>
9791289Sdefan@nginx.comInitial release of Python 3.8 module for NGINX Unit.
9801289Sdefan@nginx.com</para>
9811289Sdefan@nginx.com</change>
9821289Sdefan@nginx.com
9831289Sdefan@nginx.com</changes>
9841289Sdefan@nginx.com
9851289Sdefan@nginx.com
9861185Svbart@nginx.com<changes apply="unit-php
9871185Svbart@nginx.com                unit-python unit-python2.7
9881185Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
9891185Svbart@nginx.com                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
9901185Svbart@nginx.com                unit-perl
9911185Svbart@nginx.com                unit-ruby
9921185Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
9931284Svbart@nginx.com         ver="1.13.0" rev="1"
9941284Svbart@nginx.com         date="2019-11-14" time="18:00:00 +0300"
9951284Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
9961284Svbart@nginx.com
9971284Svbart@nginx.com<change>
9981284Svbart@nginx.com<para>
9991284Svbart@nginx.comNGINX Unit updated to 1.13.0.
10001284Svbart@nginx.com</para>
10011284Svbart@nginx.com</change>
10021284Svbart@nginx.com
10031284Svbart@nginx.com</changes>
10041284Svbart@nginx.com
10051284Svbart@nginx.com
10061284Svbart@nginx.com<changes apply="unit" ver="1.13.0" rev="1"
10071284Svbart@nginx.com         date="2019-11-14" time="18:00:00 +0300"
10081284Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10091284Svbart@nginx.com
10101284Svbart@nginx.com<change type="feature">
10111284Svbart@nginx.com<para>
10121284Svbart@nginx.combasic support for HTTP reverse proxying.
10131284Svbart@nginx.com</para>
10141284Svbart@nginx.com</change>
10151284Svbart@nginx.com
10161284Svbart@nginx.com<change type="feature">
10171284Svbart@nginx.com<para>
10181284Svbart@nginx.comcompatibility with Python 3.8.
10191284Svbart@nginx.com</para>
10201284Svbart@nginx.com</change>
10211284Svbart@nginx.com
10221284Svbart@nginx.com<change type="bugfix">
10231284Svbart@nginx.com<para>
10241284Svbart@nginx.commemory leak in Python application processes when the close handler was used.
10251284Svbart@nginx.com</para>
10261284Svbart@nginx.com</change>
10271284Svbart@nginx.com
10281284Svbart@nginx.com<change type="bugfix">
10291284Svbart@nginx.com<para>
10301284Svbart@nginx.comthreads in Python applications might not work correctly.
10311284Svbart@nginx.com</para>
10321284Svbart@nginx.com</change>
10331284Svbart@nginx.com
10341284Svbart@nginx.com<change type="bugfix">
10351284Svbart@nginx.com<para>
10361284Svbart@nginx.comRuby on Rails applications might not work on Ruby 2.6.
10371284Svbart@nginx.com</para>
10381284Svbart@nginx.com</change>
10391284Svbart@nginx.com
10401284Svbart@nginx.com<change type="bugfix">
10411284Svbart@nginx.com<para>
10421284Svbart@nginx.combacktraces for uncaught exceptions in Python 3 might be logged with significant
10431284Svbart@nginx.comdelays.
10441284Svbart@nginx.com</para>
10451284Svbart@nginx.com</change>
10461284Svbart@nginx.com
10471284Svbart@nginx.com<change type="bugfix">
10481284Svbart@nginx.com<para>
10491284Svbart@nginx.comexplicit setting a namespaces isolation option to false might have enabled it.
10501284Svbart@nginx.com</para>
10511284Svbart@nginx.com</change>
10521284Svbart@nginx.com
10531284Svbart@nginx.com</changes>
10541284Svbart@nginx.com
10551284Svbart@nginx.com
10561284Svbart@nginx.com<changes apply="unit-php
10571284Svbart@nginx.com                unit-python unit-python2.7
10581284Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
10591284Svbart@nginx.com                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
10601284Svbart@nginx.com                unit-perl
10611284Svbart@nginx.com                unit-ruby
10621284Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
10631222Svbart@nginx.com         ver="1.12.0" rev="1"
10641222Svbart@nginx.com         date="2019-10-03" time="18:00:00 +0300"
10651222Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10661222Svbart@nginx.com
10671222Svbart@nginx.com<change>
10681222Svbart@nginx.com<para>
10691222Svbart@nginx.comNGINX Unit updated to 1.12.0.
10701222Svbart@nginx.com</para>
10711222Svbart@nginx.com</change>
10721222Svbart@nginx.com
10731222Svbart@nginx.com</changes>
10741222Svbart@nginx.com
10751222Svbart@nginx.com
10761222Svbart@nginx.com<changes apply="unit" ver="1.12.0" rev="1"
10771222Svbart@nginx.com         date="2019-10-03" time="18:00:00 +0300"
10781222Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
10791222Svbart@nginx.com
10801222Svbart@nginx.com<change type="feature">
10811222Svbart@nginx.com<para>
10821222Svbart@nginx.comcompatibility with PHP 7.4.
10831222Svbart@nginx.com</para>
10841222Svbart@nginx.com</change>
10851222Svbart@nginx.com
10861222Svbart@nginx.com<change type="bugfix">
10871222Svbart@nginx.com<para>
10881222Svbart@nginx.comdescriptors leak on process creation; the bug had appeared in 1.11.0.
10891222Svbart@nginx.com</para>
10901222Svbart@nginx.com</change>
10911222Svbart@nginx.com
10921222Svbart@nginx.com<change type="bugfix">
10931222Svbart@nginx.com<para>
10941222Svbart@nginx.comTLS connection might be closed prematurely while sending response.
10951222Svbart@nginx.com</para>
10961222Svbart@nginx.com</change>
10971222Svbart@nginx.com
10981222Svbart@nginx.com<change type="bugfix">
10991222Svbart@nginx.com<para>
11001222Svbart@nginx.comsegmentation fault might have occurred if an irregular file was requested.
11011222Svbart@nginx.com</para>
11021222Svbart@nginx.com</change>
11031222Svbart@nginx.com
11041222Svbart@nginx.com</changes>
11051222Svbart@nginx.com
11061222Svbart@nginx.com
11071222Svbart@nginx.com
11081222Svbart@nginx.com<changes apply="unit-php
11091222Svbart@nginx.com                unit-python unit-python2.7
11101222Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11111222Svbart@nginx.com                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
11121222Svbart@nginx.com                unit-perl
11131222Svbart@nginx.com                unit-ruby
11141222Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11151185Svbart@nginx.com         ver="1.11.0" rev="1"
11161185Svbart@nginx.com         date="2019-09-19" time="18:00:00 +0300"
11171185Svbart@nginx.com         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
11181185Svbart@nginx.com
11191185Svbart@nginx.com<change>
11201185Svbart@nginx.com<para>
11211185Svbart@nginx.comNGINX Unit updated to 1.11.0.
11221185Svbart@nginx.com</para>
11231185Svbart@nginx.com</change>
11241185Svbart@nginx.com
11251185Svbart@nginx.com</changes>
11261185Svbart@nginx.com
11271185Svbart@nginx.com
11281185Svbart@nginx.com<changes apply="unit" ver="1.11.0" rev="1"
11291185Svbart@nginx.com         date="2019-09-19" time="18:00:00 +0300"
11301185Svbart@nginx.com         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
11311185Svbart@nginx.com
11321185Svbart@nginx.com<change type="feature">
11331185Svbart@nginx.com<para>
11341185Svbart@nginx.combasic support for serving static files.
11351185Svbart@nginx.com</para>
11361185Svbart@nginx.com</change>
11371185Svbart@nginx.com
11381185Svbart@nginx.com<change type="feature">
11391185Svbart@nginx.com<para>
11401185Svbart@nginx.comisolation of application processes with Linux namespaces.
11411185Svbart@nginx.com</para>
11421185Svbart@nginx.com</change>
11431185Svbart@nginx.com
11441185Svbart@nginx.com<change type="feature">
11451185Svbart@nginx.com<para>
11461185Svbart@nginx.combuilt-in WebSocket server implementation for Java Servlet Containers.
11471185Svbart@nginx.com</para>
11481185Svbart@nginx.com</change>
11491185Svbart@nginx.com
11501185Svbart@nginx.com<change type="feature">
11511185Svbart@nginx.com<para>
11521185Svbart@nginx.comdirect addressing of API configuration options containing slashes "/"
11531185Svbart@nginx.comusing URI encoding (%2F).
11541185Svbart@nginx.com</para>
11551185Svbart@nginx.com</change>
11561185Svbart@nginx.com
11571185Svbart@nginx.com<change type="bugfix">
11581185Svbart@nginx.com<para>
11591185Svbart@nginx.comsegmentation fault might have occurred in Go applications under high load.
11601185Svbart@nginx.com</para>
11611185Svbart@nginx.com</change>
11621185Svbart@nginx.com
11631185Svbart@nginx.com<change type="bugfix">
11641185Svbart@nginx.com<para>
11651185Svbart@nginx.comWebSocket support was broken if Unit was built with some linkers other than
11661185Svbart@nginx.comGNU ld (e.g. gold or LLD).
11671185Svbart@nginx.com</para>
11681185Svbart@nginx.com</change>
11691185Svbart@nginx.com
11701185Svbart@nginx.com</changes>
11711185Svbart@nginx.com
11721185Svbart@nginx.com
11731142Sdefan@nginx.com<changes apply="unit
11741142Sdefan@nginx.com                unit-php
11751142Sdefan@nginx.com                unit-python unit-python2.7
11761142Sdefan@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11771142Sdefan@nginx.com                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
11781142Sdefan@nginx.com                unit-perl
11791142Sdefan@nginx.com                unit-ruby
11801142Sdefan@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
11811142Sdefan@nginx.com         ver="1.10.0" rev="2"
11821142Sdefan@nginx.com         date="2019-08-23" time="12:00:00 +0300"
11831142Sdefan@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11841142Sdefan@nginx.com
11851142Sdefan@nginx.com<change type="bugfix">
11861142Sdefan@nginx.com<para>
11871142Sdefan@nginx.commissed header files added to unit development package.
11881142Sdefan@nginx.com</para>
11891142Sdefan@nginx.com</change>
11901142Sdefan@nginx.com
11911142Sdefan@nginx.com</changes>
11921142Sdefan@nginx.com
11931142Sdefan@nginx.com
11941134Svbart@nginx.com<changes apply="unit-php
11951134Svbart@nginx.com                unit-python unit-python2.7
11961134Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11971134Svbart@nginx.com                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
11981134Svbart@nginx.com                unit-perl
11991134Svbart@nginx.com                unit-ruby
12001134Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
12011134Svbart@nginx.com         ver="1.10.0" rev="1"
12021134Svbart@nginx.com         date="2019-08-22" time="18:00:00 +0300"
12031134Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
12041134Svbart@nginx.com
12051134Svbart@nginx.com<change>
12061134Svbart@nginx.com<para>
12071134Svbart@nginx.comNGINX Unit updated to 1.10.0.
12081134Svbart@nginx.com</para>
12091134Svbart@nginx.com</change>
12101134Svbart@nginx.com
12111134Svbart@nginx.com</changes>
12121134Svbart@nginx.com
12131134Svbart@nginx.com
12141134Svbart@nginx.com<changes apply="unit" ver="1.10.0" rev="1"
12151134Svbart@nginx.com         date="2019-08-22" time="18:00:00 +0300"
12161134Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
12171134Svbart@nginx.com
12181134Svbart@nginx.com<change type="change">
12191134Svbart@nginx.com<para>
12201134Svbart@nginx.commatching of cookies in routes made case sensitive.
12211134Svbart@nginx.com</para>
12221134Svbart@nginx.com</change>
12231134Svbart@nginx.com
12241134Svbart@nginx.com<change type="change">
12251134Svbart@nginx.com<para>
12261134Svbart@nginx.comdecreased log level of common errors when clients close connections.
12271134Svbart@nginx.com</para>
12281134Svbart@nginx.com</change>
12291134Svbart@nginx.com
12301134Svbart@nginx.com<change type="change">
12311134Svbart@nginx.com<para>
12321134Svbart@nginx.comremoved the Perl module's "--include=" ./configure option.
12331134Svbart@nginx.com</para>
12341134Svbart@nginx.com</change>
12351134Svbart@nginx.com
12361134Svbart@nginx.com<change type="feature">
12371134Svbart@nginx.com<para>
12381134Svbart@nginx.combuilt-in WebSocket server implementation for Node.js module.
12391134Svbart@nginx.com</para>
12401134Svbart@nginx.com</change>
12411134Svbart@nginx.com
12421134Svbart@nginx.com<change type="feature">
12431134Svbart@nginx.com<para>
12441134Svbart@nginx.comsplitting PATH_INFO from request URI in PHP module.
12451134Svbart@nginx.com</para>
12461134Svbart@nginx.com</change>
12471134Svbart@nginx.com
12481134Svbart@nginx.com<change type="feature">
12491134Svbart@nginx.com<para>
12501134Svbart@nginx.comrequest routing by scheme (HTTP or HTTPS).
12511134Svbart@nginx.com</para>
12521134Svbart@nginx.com</change>
12531134Svbart@nginx.com
12541134Svbart@nginx.com<change type="feature">
12551134Svbart@nginx.com<para>
12561134Svbart@nginx.comsupport for multipart requests body in Java module.
12571134Svbart@nginx.com</para>
12581134Svbart@nginx.com</change>
12591134Svbart@nginx.com
12601134Svbart@nginx.com<change type="feature">
12611134Svbart@nginx.com<para>
12621134Svbart@nginx.comimproved API compatibility with Node.js 11.10 or later.
12631134Svbart@nginx.com</para>
12641134Svbart@nginx.com</change>
12651134Svbart@nginx.com
12661134Svbart@nginx.com<change type="bugfix">
12671134Svbart@nginx.com<para>
12681134Svbart@nginx.comreconfiguration failed if "listeners" or "applications" objects were missing.
12691134Svbart@nginx.com</para>
12701134Svbart@nginx.com</change>
12711134Svbart@nginx.com
12721134Svbart@nginx.com<change type="bugfix">
12731134Svbart@nginx.com<para>
12741134Svbart@nginx.comapplying a large configuration might have failed.
12751134Svbart@nginx.com</para>
12761134Svbart@nginx.com</change>
12771134Svbart@nginx.com
12781134Svbart@nginx.com</changes>
12791134Svbart@nginx.com
12801134Svbart@nginx.com
12811069Svbart@nginx.com<changes apply="unit-go1.11" ver="1.9.0" rev="1"
12821069Svbart@nginx.com         date="2019-05-30" time="18:00:00 +0300"
12831069Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
12841069Svbart@nginx.com
12851069Svbart@nginx.com<change>
12861069Svbart@nginx.com<para>
12871069Svbart@nginx.comInitial release of Go 1.11 module for NGINX Unit.
12881069Svbart@nginx.com</para>
12891069Svbart@nginx.com</change>
12901069Svbart@nginx.com
12911069Svbart@nginx.com</changes>
12921069Svbart@nginx.com
12931069Svbart@nginx.com
12941069Svbart@nginx.com<changes apply="unit-php
12951069Svbart@nginx.com                unit-python unit-python2.7
12961069Svbart@nginx.com                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
12971069Svbart@nginx.com                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
12981069Svbart@nginx.com                unit-perl
12991069Svbart@nginx.com                unit-ruby
13001069Svbart@nginx.com                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
13011069Svbart@nginx.com         ver="1.9.0" rev="1"
13021069Svbart@nginx.com         date="2019-05-30" time="18:00:00 +0300"
13031069Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
13041069Svbart@nginx.com
13051069Svbart@nginx.com<change>
13061069Svbart@nginx.com<para>
13071069Svbart@nginx.comNGINX Unit updated to 1.9.0.
13081069Svbart@nginx.com</para>
13091069Svbart@nginx.com</change>
13101069Svbart@nginx.com
13111069Svbart@nginx.com</changes>
13121069Svbart@nginx.com
13131069Svbart@nginx.com
13141069Svbart@nginx.com<changes apply="unit" ver="1.9.0" rev="1"
13151069Svbart@nginx.com         date="2019-05-30" time="18:00:00 +0300"
13161069Svbart@nginx.com         packager="Andrei Belov &lt;defan@nginx.com&gt;">
13171069Svbart@nginx.com
13181069Svbart@nginx.com<change type="feature">
13191069Svbart@nginx.com<para>
13201069Svbart@nginx.comrequest routing by arguments, headers, and cookies.
13211069Svbart@nginx.com</para>
13221069Svbart@nginx.com</change>
13231069Svbart@nginx.com
13241069Svbart@nginx.com<change type="feature">
13251069Svbart@nginx.com<para>
13261069Svbart@nginx.comroute matching patterns allow a wildcard in the middle.
13271069Svbart@nginx.com</para>
13281069Svbart@nginx.com</change>
13291069Svbart@nginx.com
13301069Svbart@nginx.com<change type="feature">
13311069Svbart@nginx.com<para>
13321069Svbart@nginx.comPOST operation for appending elements to arrays in configuration.
13331069Svbart@nginx.com</para>
13341069Svbart@nginx.com</change>
13351069Svbart@nginx.com
13361069Svbart@nginx.com<change type="feature">
13371069Svbart@nginx.com<para>
13381069Svbart@nginx.comsupport for changing credentials using CAP_SETUID and CAP_SETGID capabilities
13391069Svbart@nginx.comon Linux without running main process as privileged user.
13401069Svbart@nginx.com</para>
13411069Svbart@nginx.com</change>
13421069Svbart@nginx.com
13431069Svbart@nginx.com<change type="bugfix">
13441069Svbart@nginx.com<para>
13451069Svbart@nginx.commemory leak in the router process might have happened when a client
13461069Svbart@nginx.comprematurely closed the connection.
13471069Svbart@nginx.com</para>
13481069Svbart@nginx.com</change>
13491069Svbart@nginx.com
13501069Svbart@nginx.com<change type="bugfix">
13511069Svbart@nginx.com<para>
13521069Svbart@nginx.comapplying a large configuration might have failed.
13531069Svbart@nginx.com</para>
13541069Svbart@nginx.com</change>
13551069Svbart@nginx.com
13561069Svbart@nginx.com<change type="bugfix">
1357