summaryrefslogblamecommitdiffhomepage
path: root/docs/changes.xml
blob: 270b49d391ccb9331740daf2abf3c3a4a13c265f (plain) (tree)
1
2
3
4
5
6
7






                                           







                                                                           













































































                                                                             




















































                                                                           


















































                                                                           

























                                                         












                                                         






                                                                                





































































                                                                                



















































                                                                                

























































                                                                           




















                                                                                






















































































                                                                                






































































































                                                                             












































































































































                                                                              








































                                                                             












                                                         





                                                                    



































































































                                                                               






















































                                                                        
                                                                          











                                                                    












                                                         













































                                                                            
                                                                     





          





                                                                    































                                                                    























































































                                                                          










































































                                                                         

















































                                                                 












                                                         



                                                            

                          












































































                                                                            




































                                                                           
                                                                      















                                                            
                          












                                                         












                                                         




































                                                                             

                                                                            










                                                            
                          

























                                                                           




                                                            











                                                         
                                            
                                                










                                                         































                                                             
                                                             

























                                                             




                                                            











































                                                            
                                                                      





          

























                                                         



                                                                        









































































                                                                      












                                                         

























                                                         












                                                         






































                                                         












                                                         





                                                         

















                                          
























                                                               













                                                         
<?xml version="1.0" ?>
<!DOCTYPE change_log SYSTEM "changes.dtd" >


<change_log title="unit">


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
                unit-python3.8
                unit-go
                unit-perl
                unit-ruby
                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
         ver="1.16.0" rev="1"
         date="2020-03-12" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.16.0.
</para>
</change>

</changes>


<changes apply="unit" ver="1.16.0" rev="1"
         date="2020-03-12" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="feature">
<para>
basic load-balancing support with round-robin.
</para>
</change>

<change type="feature">
<para>
a "fallback" option that performs an alternative action if a request can't be
served from the "share" directory.
</para>
</change>

<change type="feature">
<para>
reduced memory consumption by dumping large request bodies to disk.
</para>
</change>

<change type="feature">
<para>
stripping UTF-8 BOM and JavaScript-style comments from uploaded JSON.
</para>
</change>

<change type="bugfix">
<para>
negative address matching in router might work improperly in combination with
non-negative patterns.
</para>
</change>

<change type="bugfix">
<para>
Java Spring applications failed to run; the bug had appeared in 1.10.0.
</para>
</change>

<change type="bugfix">
<para>
PHP 7.4 was broken if it was built with thread safety enabled.
</para>
</change>

<change type="bugfix">
<para>
compatibility issues with some Python applications.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
                unit-python3.8
                unit-go
                unit-perl
                unit-ruby
                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
         ver="1.15.0" rev="1"
         date="2020-02-06" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.15.0.
</para>
</change>

</changes>


<changes apply="unit" ver="1.15.0" rev="1"
         date="2020-02-06" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="change">
<para>
extensions of dynamically requested PHP scripts were restricted to ".php".
</para>
</change>

<change type="feature">
<para>
compatibility with Ruby 2.7.
</para>
</change>

<change type="bugfix">
<para>
segmentation fault might have occurred in the router process with multiple
application processes under load; the bug had appeared in 1.14.0.
</para>
</change>

<change type="bugfix">
<para>
receiving request body over TLS connection might have stalled.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
                unit-python3.8
                unit-go
                unit-perl
                unit-ruby
                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
         ver="1.14.0" rev="1"
         date="2019-12-26" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.14.0.
</para>
</change>

</changes>


<changes apply="unit" ver="1.14.0" rev="1"
         date="2019-12-26" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="change">
<para>
the Go package import name changed to "unit.nginx.org/go".
</para>
</change>

<change type="change">
<para>
Go package now links to libunit instead of including library sources.
</para>
</change>

<change type="feature">
<para>
ability to change user and group for isolated applications when Unit daemon
runs as an unprivileged user.
</para>
</change>

<change type="feature">
<para>
request routing by source and destination addresses and ports.
</para>
</change>

<change type="bugfix">
<para>
memory bloat on large responses.
</para>
</change>

</changes>


<changes apply="unit-go1.13" ver="1.13.0" rev="1"
         date="2019-11-20" time="09:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Go 1.13 module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-go1.12" ver="1.13.0" rev="1"
         date="2019-11-20" time="09:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Go 1.12 module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-python3.8" ver="1.13.0" rev="1"
         date="2019-11-18" time="14:20:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Python 3.8 module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
                unit-perl
                unit-ruby
                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
         ver="1.13.0" rev="1"
         date="2019-11-14" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.13.0.
</para>
</change>

</changes>


<changes apply="unit" ver="1.13.0" rev="1"
         date="2019-11-14" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="feature">
<para>
basic support for HTTP reverse proxying.
</para>
</change>

<change type="feature">
<para>
compatibility with Python 3.8.
</para>
</change>

<change type="bugfix">
<para>
memory leak in Python application processes when the close handler was used.
</para>
</change>

<change type="bugfix">
<para>
threads in Python applications might not work correctly.
</para>
</change>

<change type="bugfix">
<para>
Ruby on Rails applications might not work on Ruby 2.6.
</para>
</change>

<change type="bugfix">
<para>
backtraces for uncaught exceptions in Python 3 might be logged with significant
delays.
</para>
</change>

<change type="bugfix">
<para>
explicit setting a namespaces isolation option to false might have enabled it.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
                unit-perl
                unit-ruby
                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
         ver="1.12.0" rev="1"
         date="2019-10-03" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.12.0.
</para>
</change>

</changes>


<changes apply="unit" ver="1.12.0" rev="1"
         date="2019-10-03" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="feature">
<para>
compatibility with PHP 7.4.
</para>
</change>

<change type="bugfix">
<para>
descriptors leak on process creation; the bug had appeared in 1.11.0.
</para>
</change>

<change type="bugfix">
<para>
TLS connection might be closed prematurely while sending response.
</para>
</change>

<change type="bugfix">
<para>
segmentation fault might have occurred if an irregular file was requested.
</para>
</change>

</changes>



<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
                unit-perl
                unit-ruby
                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
         ver="1.11.0" rev="1"
         date="2019-09-19" time="18:00:00 +0300"
         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.11.0.
</para>
</change>

</changes>


<changes apply="unit" ver="1.11.0" rev="1"
         date="2019-09-19" time="18:00:00 +0300"
         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">

<change type="feature">
<para>
basic support for serving static files.
</para>
</change>

<change type="feature">
<para>
isolation of application processes with Linux namespaces.
</para>
</change>

<change type="feature">
<para>
built-in WebSocket server implementation for Java Servlet Containers.
</para>
</change>

<change type="feature">
<para>
direct addressing of API configuration options containing slashes "/"
using URI encoding (%2F).
</para>
</change>

<change type="bugfix">
<para>
segmentation fault might have occurred in Go applications under high load.
</para>
</change>

<change type="bugfix">
<para>
WebSocket support was broken if Unit was built with some linkers other than
GNU ld (e.g. gold or LLD).
</para>
</change>

</changes>


<changes apply="unit
                unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
                unit-perl
                unit-ruby
                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
         ver="1.10.0" rev="2"
         date="2019-08-23" time="12:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="bugfix">
<para>
missed header files added to unit development package.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
                unit-perl
                unit-ruby
                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
         ver="1.10.0" rev="1"
         date="2019-08-22" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.10.0.
</para>
</change>

</changes>


<changes apply="unit" ver="1.10.0" rev="1"
         date="2019-08-22" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="change">
<para>
matching of cookies in routes made case sensitive.
</para>
</change>

<change type="change">
<para>
decreased log level of common errors when clients close connections.
</para>
</change>

<change type="change">
<para>
removed the Perl module's "--include=" ./configure option.
</para>
</change>

<change type="feature">
<para>
built-in WebSocket server implementation for Node.js module.
</para>
</change>

<change type="feature">
<para>
splitting PATH_INFO from request URI in PHP module.
</para>
</change>

<change type="feature">
<para>
request routing by scheme (HTTP or HTTPS).
</para>
</change>

<change type="feature">
<para>
support for multipart requests body in Java module.
</para>
</change>

<change type="feature">
<para>
improved API compatibility with Node.js 11.10 or later.
</para>
</change>

<change type="bugfix">
<para>
reconfiguration failed if "listeners" or "applications" objects were missing.
</para>
</change>

<change type="bugfix">
<para>
applying a large configuration might have failed.
</para>
</change>

</changes>


<changes apply="unit-go1.11" ver="1.9.0" rev="1"
         date="2019-05-30" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Go 1.11 module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
                unit-perl
                unit-ruby
                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
         ver="1.9.0" rev="1"
         date="2019-05-30" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.9.0.
</para>
</change>

</changes>


<changes apply="unit" ver="1.9.0" rev="1"
         date="2019-05-30" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="feature">
<para>
request routing by arguments, headers, and cookies.
</para>
</change>

<change type="feature">
<para>
route matching patterns allow a wildcard in the middle.
</para>
</change>

<change type="feature">
<para>
POST operation for appending elements to arrays in configuration.
</para>
</change>

<change type="feature">
<para>
support for changing credentials using CAP_SETUID and CAP_SETGID capabilities
on Linux without running main process as privileged user.
</para>
</change>

<change type="bugfix">
<para>
memory leak in the router process might have happened when a client
prematurely closed the connection.
</para>
</change>

<change type="bugfix">
<para>
applying a large configuration might have failed.
</para>
</change>

<change type="bugfix">
<para>
PUT and DELETE operations on array elements in configuration did not work.
</para>
</change>

<change type="bugfix">
<para>
request schema in applications did not reflect TLS connections.
</para>
</change>

<change type="bugfix">
<para>
restored compatibility with Node.js applications that use
ServerResponse._implicitHeader() function; the bug had appeared in 1.7.
</para>
</change>

<change type="bugfix">
<para>
various compatibility issues with Node.js applications.
</para>
</change>

</changes>


<changes apply="unit-jsc-common" ver="1.8.0" rev="1"
         date="2019-03-01" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Java common packages for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-jsc8" ver="1.8.0" rev="1"
         date="2019-03-01" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Java 8 module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-jsc10" ver="1.8.0" rev="1"
         date="2019-03-01" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Java 10 module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-jsc11" ver="1.8.0" rev="1"
         date="2019-03-01" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Java 11 module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
                unit-perl
                unit-ruby"
         ver="1.8.0" rev="1"
         date="2019-03-01" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.8.0.
</para>
</change>

</changes>


<changes apply="unit" ver="1.8.0" rev="1"
         date="2019-03-01" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="change">
<para>
now three numbers are always used for versioning: major, minor,
and patch versions.
</para>
</change>

<change type="change">
<para>
now QUERY_STRING is always defined even if the request does not include
the query component.
</para>
</change>

<change type="feature">
<para>
basic internal request routing by Host, URI, and method.
</para>
</change>

<change type="feature">
<para>
experimental support for Java Servlet Containers.
</para>
</change>

<change type="bugfix">
<para>
segmentation fault might have occurred in the router process.
</para>
</change>

<change type="bugfix">
<para>
various potential memory leaks.
</para>
</change>

<change type="bugfix">
<para>
TLS connections might have stalled.
</para>
</change>

<change type="bugfix">
<para>
some Perl applications might have failed to send the response body.
</para>
</change>

<change type="bugfix">
<para>
some compilers with specific flags might have produced non-functioning builds;
the bug had appeared in 1.5.
</para>
</change>

<change type="bugfix">
<para>
Node.js package had wrong version number when installed from sources.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
                unit-perl
                unit-ruby"
         ver="1.7.1" rev="1"
         date="2019-02-07" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.7.1.
</para>
</change>

</changes>


<changes apply="unit" ver="1.7.1" rev="1"
         date="2019-02-07" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="security">
<para>
a heap memory buffer overflow might have been caused in the router process by
a specially crafted request, potentially resulting in a segmentation fault or
other unspecified behavior (CVE-2019-7401).
</para>
</change>

<change type="bugfix">
<para>
install of Go module failed without prior building of Unit daemon;
the bug had appeared in 1.7.
</para>
</change>

</changes>


<changes apply="unit-python3.7" ver="1.7" rev="1"
         date="2018-12-25" time="10:30:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Python 3.7 module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6
                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
                unit-perl
                unit-ruby"
         ver="1.7" rev="1"
         date="2018-12-20" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.7.
</para>
</change>

</changes>


<changes apply="unit" ver="1.7" rev="1"
         date="2018-12-20" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="change">
<para>
now rpath is set in Ruby module only if the library was not found in default
search paths; this allows to meet packaging restrictions on some systems.
</para>
</change>

<change type="bugfix">
<para>
"disable_functions" and "disable_classes" PHP options set via Control API
did not work.
</para>
</change>

<change type="bugfix">
<para>
Promises on request data in Node.js were not triggered.
</para>
</change>

<change type="bugfix">
<para>
various compatibility issues with Node.js applications.
</para>
</change>

<change type="bugfix">
<para>
a segmentation fault occurred in Node.js module if application tried to read
request body after request.end() was called.
</para>
</change>

<change type="bugfix">
<para>
a segmentation fault occurred in Node.js module if application attempted to
send header twice.
</para>
</change>

<change type="bugfix">
<para>
names of response header fields in Node.js module were erroneously treated as
case-sensitive.
</para>
</change>

<change type="bugfix">
<para>
uncatched exceptions in Node.js were not logged.
</para>
</change>

<change type="bugfix">
<para>
global install of Node.js module from sources was broken on some systems;
the bug had appeared in 1.6.
</para>
</change>

<change type="bugfix">
<para>
traceback for exceptions during initialization of Python applications might not
be logged.
</para>
</change>

<change type="bugfix">
<para>
PHP module build failed if PHP interpreter was built with thread safety
enabled.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6
                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
                unit-perl
                unit-ruby"
         ver="1.6" rev="1"
         date="2018-11-15" time="18:00:00 +0300"
         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.6.
</para>
</change>

</changes>


<changes apply="unit" ver="1.6" rev="1"
         date="2018-11-15" time="18:00:00 +0300"
         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">

<change type="change">
<para>
"make install" now installs Node.js module as well if it was configured.
</para>
</change>

<change type="feature">
<para>
"--local" ./configure option to install Node.js module locally.
</para>
</change>

<change type="bugfix">
<para>
Node.js module might have crashed due to broken reference counting.
</para>
</change>

<change type="bugfix">
<para>
asynchronous operations in Node.js might not have worked.
</para>
</change>

<change type="bugfix">
<para>
various compatibility issues with Node.js applications.
</para>
</change>

<change type="bugfix">
<para>
"freed pointer is out of pool" alerts might have appeared in log.
</para>
</change>

<change type="bugfix">
<para>
module discovery did not work on 64-bit big-endian systems like IBM/S390x.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6
                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
                unit-perl
                unit-ruby"
         ver="1.5" rev="1"
         date="2018-10-25" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.5.
</para>
</change>

</changes>


<changes apply="unit" ver="1.5" rev="1"
         date="2018-10-25" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="change">
<para>
the "type" of application object for Go was changed to "external".
</para>
</change>

<change type="feature">
<para>
initial version of Node.js package with basic HTTP request-response support.
</para>
</change>

<change type="feature">
<para>
compatibility with LibreSSL.
</para>
</change>

<change type="feature">
<para>
--libdir and --incdir ./configure options to install libunit headers
and static library.
</para>
</change>

<change type="bugfix">
<para>
connection might be closed prematurely while sending response;
the bug had appeared in 1.3.
</para>
</change>

<change type="bugfix">
<para>
application processes might have stopped handling requests, producing
"last message send failed: Resource temporarily unavailable" alerts in log;
the bug had appeared in 1.4.
</para>
</change>

<change type="bugfix">
<para>
Go applications did not work when Unit was built with musl C library.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6
                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
                unit-perl
                unit-ruby"
         ver="1.4" rev="2"
         date="2018-09-27" time="13:30:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="bugfix">
<para>
corrected instructions for launching sample application.
</para>
</change>

</changes>


<changes apply="unit" ver="1.4" rev="2"
         date="2018-09-27" time="13:30:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="change">
<para>
the "saveconfig" and "loadconfig" action scripts were removed.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6
                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
                unit-perl
                unit-ruby"
         ver="1.4" rev="1"
         date="2018-09-20" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.4.
</para>
</change>

</changes>


<changes apply="unit" ver="1.4" rev="1"
         date="2018-09-20" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="change">
<para>
the control API maps the configuration object only at "/config/".
</para>
</change>

<change type="feature">
<para>
TLS support for client connections.
</para>
</change>

<change type="feature">
<para>
TLS certificates storage control API.
</para>
</change>

<change type="feature">
<para>
Unit library (libunit) to streamline language module integration.
</para>
</change>

<change type="feature">
<para>
"408 Request Timeout" responses while closing HTTP keep-alive connections.
</para>
</change>

<change type="feature">
<para>
improvements in OpenBSD support.
Thanks to David Carlier.
</para>
</change>

<change type="bugfix">
<para>
a segmentation fault might have occurred after reconfiguration.
</para>
</change>

<change type="bugfix">
<para>
building on systems with non-default locale might be broken.
</para>
</change>

<change type="bugfix">
<para>
"header_read_timeout" might not work properly.
</para>
</change>

<change type="bugfix">
<para>
header fields values with non-ASCII bytes might be handled incorrectly
in Python 3 module.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6
                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
                unit-perl
                unit-ruby"
         ver="1.3" rev="1"
         date="2018-07-13" time="18:00:00 +0300"
         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.3.
</para>
</change>

</changes>


<changes apply="unit" ver="1.3" rev="1"
         date="2018-07-13" time="18:00:00 +0300"
         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">

<change type="change">
<para>
UTF-8 characters are now allowed in request header field values.
</para>
</change>

<change type="feature">
<para>
configuration of the request body size limit.
</para>
</change>

<change type="feature">
<para>
configuration of various HTTP connection timeouts.
</para>
</change>

<change type="feature">
<para>
Ruby module now automatically uses Bundler where possible.
</para>
</change>

<change type="feature">
<para>
http.Flusher interface in Go module.
</para>
</change>

<change type="bugfix">
<para>
various issues in HTTP connection errors handling.
</para>
</change>

<change type="bugfix">
<para>
requests with body data might be handled incorrectly in PHP module.
</para>
</change>

<change type="bugfix">
<para>
individual PHP configuration options specified via control API were reset
to previous values after the first request in application process.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6
                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
                unit-perl
                unit-ruby"
         ver="1.2" rev="1"
         date="2018-06-07" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.2.
</para>
</change>

</changes>


<changes apply="unit" ver="1.2" rev="1"
         date="2018-06-07" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="feature">
<para>
configuration of environment variables for application processes.
</para>
</change>

<change type="feature">
<para>
customization of php.ini path.
</para>
</change>

<change type="feature">
<para>
setting of individual PHP configuration options.
</para>
</change>

<change type="feature">
<para>
configuration of execution arguments for Go applications.
</para>
</change>

<change type="bugfix">
<para>
keep-alive connections might hang after reconfiguration.
</para>
</change>

</changes>


<changes apply="unit-go1.10" ver="1.1" rev="1"
         date="2018-05-14" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Go 1.10 module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6
                unit-go unit-go1.7 unit-go1.8 unit-go1.9
                unit-perl
                unit-ruby"
         ver="1.1" rev="1"
         date="2018-04-26" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.1.
</para>
</change>

</changes>


<changes apply="unit" ver="1.1" rev="1"
         date="2018-04-26" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="bugfix">
<para>
Python applications that use the write() callable did not work.
</para>
</change>

<change type="bugfix">
<para>
virtual environments created with Python 3.3 or above might not have worked.
</para>
</change>

<change type="bugfix">
<para>
the request.Read() function in Go applications did not produce EOF
when the whole body was read.
</para>
</change>

<change type="bugfix">
<para>
a segmentation fault might have occurred while access log reopening.
</para>
</change>

<change type="bugfix">
<para>
in parsing of IPv6 control socket addresses.
</para>
</change>

<change type="bugfix">
<para>
loading of application modules was broken on OpenBSD.
</para>
</change>

<change type="bugfix">
<para>
a segmentation fault might have occurred when there were two modules
with the same type and version; the bug had appeared in 1.0.
</para>
</change>

<change type="bugfix">
<para>
alerts "freed pointer points to non-freeble page" might have appeared in log
on 32-bit platforms.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6
                unit-go unit-go1.7 unit-go1.8 unit-go1.9
                unit-perl
                unit-ruby"
         ver="1.0" rev="1"
         date="2018-04-12" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 1.0.
</para>
</change>

</changes>


<changes apply="unit" ver="1.0" rev="1"
         date="2018-04-12" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="change">
<para>
configuration object moved into "/config/" path.
</para>
</change>

<change type="feature">
<para>
basic access logging.
</para>
</change>

<change type="bugfix">
<para>
503 error occurred if Go application did not write response header or body.
</para>
</change>

<change type="bugfix">
<para>
Ruby applications that use encoding conversions might not have worked.
</para>
</change>

<change type="bugfix">
<para>
various stability issues.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6
                unit-go unit-go1.7 unit-go1.8 unit-go1.9
                unit-perl"
         ver="0.7" rev="1"
         date="2018-03-22" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 0.7.
</para>
</change>

</changes>


<changes apply="unit-ruby" ver="0.7" rev="1"
         date="2018-04-02" time="15:40:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Ruby module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit" ver="0.7" rev="1"
         date="2018-03-22" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="feature">
<para>
Ruby application module.
</para>
</change>

<change type="bugfix">
<para>
in discovering modules.
</para>
</change>

<change type="bugfix">
<para>
various race conditions on reconfiguration and during shutting down.
</para>
</change>

<change type="bugfix">
<para>
tabs and trailing spaces were not allowed in header fields values.
</para>
</change>

<change type="bugfix">
<para>
a segmentation fault occurred in Python module if start_response() was called
outside of WSGI callable.
</para>
</change>

<change type="bugfix">
<para>
a segmentation fault might have occurred in PHP module if there was an error
while initialization.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6
                unit-go unit-go1.7 unit-go1.8 unit-go1.9
                unit-perl"
         ver="0.6" rev="1"
         date="2018-02-09" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 0.6.
</para>
</change>

</changes>


<changes apply="unit" ver="0.6" rev="1"
         date="2018-02-09" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="bugfix">
<para>
the main process died when the "type" application option contained version;
the bug had appeared in 0.5.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6
                unit-go unit-go1.7 unit-go1.8 unit-go1.9"
         ver="0.5" rev="1"
         date="2018-02-08" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 0.5.
</para>
</change>

</changes>


<changes apply="unit-perl" ver="0.5" rev="1"
         date="2018-02-08" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Perl module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit" ver="0.5" rev="1"
         date="2018-02-08" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="change">
<para>
the "workers" application option was removed, the "processes"
application option should be used instead.
</para>
</change>

<change type="feature">
<para>
the "processes" application option with prefork and dynamic
process management support.
</para>
</change>

<change type="feature">
<para>
Perl application module.
</para>
</change>

<change type="bugfix">
<para>
in reading client request body; the bug had appeared in 0.3.
</para>
</change>

<change type="bugfix">
<para>
some Python applications might not have worked due to missing
"wsgi.errors" environ variable.
</para>
</change>

<change type="bugfix">
<para>
HTTP chunked responses might be encoded incorrectly on 32-bit
platforms.
</para>
</change>

<change type="bugfix">
<para>
infinite looping in HTTP parser.
</para>
</change>

<change type="bugfix">
<para>
segmentation fault in router.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7
                unit-python3.4 unit-python3.5 unit-python3.6
                unit-go unit-go1.7 unit-go1.8 unit-go1.9"
         ver="0.4" rev="1"
         date="2018-01-15" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 0.4.
</para>
</change>

</changes>


<changes apply="unit" ver="0.4" rev="1"
         date="2018-01-15" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="feature">
<para>
compatibility with DragonFly BSD.
</para>
</change>

<change type="feature">
<para>
"configure php --lib-static" option.
</para>
</change>

<change type="bugfix">
<para>
HTTP request body was not passed to application;
the bug had appeared in 0.3.
</para>
</change>

<change type="bugfix">
<para>
HTTP large header buffers allocation and deallocation fixed;
the bug had appeared in 0.3.
</para>
</change>

<change type="bugfix">
<para>
some PHP applications might not have worked with relative "root" path.
</para>
</change>

</changes>


<changes apply="unit-go1.9" ver="0.3" rev="1"
         date="2017-12-28" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Go 1.9 module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-python3.6" ver="0.3" rev="1"
         date="2017-12-28" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Python 3.6 module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-php
                unit-python unit-python2.7 unit-python3.4 unit-python3.5
                unit-go unit-go1.7 unit-go1.8"
         ver="0.3" rev="1"
         date="2017-12-28" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
NGINX Unit updated to 0.3.
</para>
</change>

</changes>


<changes apply="unit" ver="0.3" rev="1"
         date="2017-12-28" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="change">
<para>
the Go package name changed to "nginx/unit".
</para>
</change>

<change type="change">
<para>
in the "limits.timeout" application option: application start time and
time in queue now are not accounted.
</para>
</change>

<change type="feature">
<para>
the "limits.requests" application option.
</para>
</change>

<change type="feature">
<para>
application request processing latency optimization.
</para>
</change>

<change type="feature">
<para>
HTTP keep-alive connections support.
</para>
</change>

<change type="feature">
<para>
the "home" Python virtual environment configuration option.
</para>
</change>

<change type="feature">
<para>
Python atexit hook support.
</para>
</change>

<change type="feature">
<para>
various Go package improvements.
</para>
</change>

<change type="bugfix">
<para>
various crashes fixed.
</para>
</change>

</changes>


<changes apply="unit-go" ver="0.2" rev="1"
         date="2017-10-19" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Go module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-go1.7" ver="0.2" rev="1"
         date="2017-10-19" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Go 1.7 module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-go1.8" ver="0.2" rev="1"
         date="2017-10-19" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Go 1.8 module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-python" ver="0.2" rev="1"
         date="2017-10-19" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Python module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-python2.7" ver="0.2" rev="1"
         date="2017-10-19" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Python 2.7 module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-python3.4" ver="0.2" rev="1"
         date="2017-10-19" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Python 3.4 module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-python3.5" ver="0.2" rev="1"
         date="2017-10-19" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of Python 3.5 module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit-php" ver="0.2" rev="1"
         date="2017-10-19" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
Initial release of PHP module for NGINX Unit.
</para>
</change>

</changes>


<changes apply="unit" ver="0.2" rev="1"
         date="2017-10-19" time="18:00:00 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change type="feature">
<para>
configuration persistence.
</para>
</change>

<change type="feature">
<para>
improved handling of configuration errors.
</para>
</change>

<change type="feature">
<para>
application "timeout" property.
</para>
</change>

<change type="bugfix">
<para>
POST request for PHP were handled incorrectly.
</para>
</change>

<change type="bugfix">
<para>
the router exited abnormally if all listeners had been deleted.
</para>
</change>

<change type="bugfix">
<para>
the router crashed under load.
</para>
</change>

<change type="bugfix">
<para>
memory leak in the router.
</para>
</change>

</changes>


<changes apply="unit" ver="0.1" rev="1"
         date="2017-09-06" time="19:14:28 +0300"
         packager="Andrei Belov &lt;defan@nginx.com&gt;">

<change>
<para>
First public release.
</para>
</change>

</changes>


</change_log>