xref: /unit/docs/changes.xml (revision 1961:69d823e5710a)
1<?xml version="1.0" ?>
2<!DOCTYPE change_log SYSTEM "changes.dtd" >
3
4
5<change_log title="unit">
6
7
8<changes apply="unit-php
9                unit-python unit-python2.7
10                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11                unit-python3.8 unit-python3.9
12                unit-go
13                unit-perl
14                unit-ruby
15                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
16                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
17         ver="1.26.0" rev="1"
18         date="" time=""
19         packager="Andrei Belov &lt;defan@nginx.com&gt;">
20
21<change>
22<para>
23NGINX Unit updated to 1.26.0.
24</para>
25</change>
26
27</changes>
28
29
30<changes apply="unit" ver="1.26.0" rev="1"
31         date="" time=""
32         packager="Andrei Belov &lt;defan@nginx.com&gt;">
33
34<change type="change">
35<para>
36the "share" option now specifies the entire path to the files it serves,
37rather than a document root directory to be prepended to the request URI.
38</para>
39</change>
40
41<change type="feature">
42<para>
43variables support in the "share" option.
44</para>
45</change>
46
47<change type="feature">
48<para>
49multiple paths in the "share" option.
50</para>
51</change>
52
53<change type="feature">
54<para>
55variables support in the "chroot" option.
56</para>
57</change>
58
59<change type="bugfix">
60<para>
61fixed building with glibc 2.34, notably Fedora 35.
62</para>
63</change>
64
65<change type="bugfix">
66<para>
67established WebSocket connections could stop reading frames from the client
68after the corresponding listener had been reconfigured.
69</para>
70</change>
71
72</changes>
73
74
75<changes apply="unit-php
76                unit-python unit-python2.7
77                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
78                unit-python3.8 unit-python3.9
79                unit-go
80                unit-perl
81                unit-ruby
82                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
83                unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17"
84         ver="1.25.0" rev="1"
85         date="2021-08-19" time="18:00:00 +0300"
86         packager="Andrei Belov &lt;defan@nginx.com&gt;">
87
88<change>
89<para>
90NGINX Unit updated to 1.25.0.
91</para>
92</change>
93
94</changes>
95
96
97<changes apply="unit" ver="1.25.0" rev="1"
98         date="2021-08-19" time="18:00:00 +0300"
99         packager="Andrei Belov &lt;defan@nginx.com&gt;">
100
101<change type="feature">
102<para>
103client IP address replacement from a specified HTTP header field.
104</para>
105</change>
106
107<change type="feature">
108<para>
109TLS sessions cache.
110</para>
111</change>
112
113<change type="feature">
114<para>
115TLS session tickets.
116</para>
117</change>
118
119<change type="feature">
120<para>
121application restart control.
122</para>
123</change>
124
125<change type="feature">
126<para>
127process and thread lifecycle hooks in Ruby.
128</para>
129</change>
130
131<change type="bugfix">
132<para>
133the router process could crash on TLS connection open when multiple listeners
134with TLS certificates were configured; the bug had appeared in 1.23.0.
135</para>
136</change>
137
138<change type="bugfix">
139<para>
140TLS connections were rejected for configurations with multiple certificate
141bundles in a listener if the client did not use SNI.
142</para>
143</change>
144
145<change type="bugfix">
146<para>
147the router process could crash with frequent multithreaded application
148reconfiguration.
149</para>
150</change>
151
152<change type="bugfix">
153<para>
154compatibility issues with some Python ASGI apps, notably based on the Starlette
155framework.
156</para>
157</change>
158
159<change type="bugfix">
160<para>
161a descriptor and memory leak occurred in the router process when an app process
162stopped or crashed.
163</para>
164</change>
165
166<change type="bugfix">
167<para>
168the controller or router process could crash if the configuration contained
169a full-form IPv6 in a listener address.
170</para>
171</change>
172
173<change type="bugfix">
174<para>
175the router process crashed when a request was passed to an empty "routes"
176or "upstreams" using a variable "pass" option.
177</para>
178</change>
179
180<change type="bugfix">
181<para>
182the router process crashed while matching a request to an empty array of source
183or destination address patterns.
184</para>
185</change>
186
187</changes>
188
189
190<changes apply="unit-jsc17" ver="1.24.0" rev="1"
191         date="2021-05-27" time="18:00:00 +0300"
192         packager="Andrei Belov &lt;defan@nginx.com&gt;">
193
194<change>
195<para>
196Initial release of Java 17 module for NGINX Unit.
197</para>
198</change>
199
200</changes>
201
202
203<changes apply="unit-jsc16" ver="1.24.0" rev="1"
204         date="2021-05-27" time="18:00:00 +0300"
205         packager="Andrei Belov &lt;defan@nginx.com&gt;">
206
207<change>
208<para>
209Initial release of Java 16 module for NGINX Unit.
210</para>
211</change>
212
213</changes>
214
215
216<changes apply="unit-php
217                unit-python unit-python2.7
218                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
219                unit-python3.8 unit-python3.9
220                unit-go
221                unit-perl
222                unit-ruby
223                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
224                unit-jsc14 unit-jsc15"
225         ver="1.24.0" rev="1"
226         date="2021-05-27" time="18:00:00 +0300"
227         packager="Andrei Belov &lt;defan@nginx.com&gt;">
228
229<change>
230<para>
231NGINX Unit updated to 1.24.0.
232</para>
233</change>
234
235</changes>
236
237
238<changes apply="unit" ver="1.24.0" rev="1"
239         date="2021-05-27" time="18:00:00 +0300"
240         packager="Andrei Belov &lt;defan@nginx.com&gt;">
241
242<change type="change">
243<para>
244PHP added to the default MIME type list.
245</para>
246</change>
247
248<change type="feature">
249<para>
250arbitrary configuration of TLS connections via OpenSSL commands.
251</para>
252</change>
253
254<change type="feature">
255<para>
256the ability to limit static file serving by MIME types.
257</para>
258</change>
259
260<change type="feature">
261<para>
262support for chrooting, rejecting symlinks, and rejecting mount
263point traversal on a per-request basis when serving static files.
264</para>
265</change>
266
267<change type="feature">
268<para>
269a loader for automatically overriding the "http" and "websocket" modules in
270Node.js.
271</para>
272</change>
273
274<change type="feature">
275<para>
276multiple "targets" in Python applications.
277</para>
278</change>
279
280<change type="feature">
281<para>
282compatibility with Ruby 3.0.
283</para>
284</change>
285
286<change type="bugfix">
287<para>
288the router process could crash while closing a TLS connection.
289</para>
290</change>
291
292<change type="bugfix">
293<para>
294a segmentation fault might have occurred in the PHP module if
295fastcgi_finish_request() was used with the "auto_globals_jit" option enabled.
296</para>
297</change>
298
299</changes>
300
301
302<changes apply="unit-php
303                unit-python unit-python2.7
304                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
305                unit-python3.8 unit-python3.9
306                unit-go
307                unit-perl
308                unit-ruby
309                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
310                unit-jsc14 unit-jsc15"
311         ver="1.23.0" rev="1"
312         date="2021-03-25" time="18:00:00 +0300"
313         packager="Andrei Belov &lt;defan@nginx.com&gt;">
314
315<change>
316<para>
317NGINX Unit updated to 1.23.0.
318</para>
319</change>
320
321</changes>
322
323
324<changes apply="unit" ver="1.23.0" rev="1"
325         date="2021-03-25" time="18:00:00 +0300"
326         packager="Andrei Belov &lt;defan@nginx.com&gt;">
327
328<change type="feature">
329<para>
330support for multiple certificate bundles on a listener via the Server Name
331Indication (SNI) TLS extension.
332</para>
333</change>
334
335<change type="feature">
336<para>
337"--mandir" ./configure option to specify the directory for man page
338installation.
339</para>
340</change>
341
342<change type="bugfix">
343<para>
344the router process could crash on premature TLS connection close; the bug had
345appeared in 1.17.0.
346</para>
347</change>
348
349<change type="bugfix">
350<para>
351a connection leak occurred on premature TLS connection close; the bug had
352appeared in 1.6.
353</para>
354</change>
355
356<change type="bugfix">
357<para>
358a descriptor and memory leak occurred in the router process when processing
359small WebSocket frames from a client; the bug had appeared in 1.19.0.
360</para>
361</change>
362
363<change type="bugfix">
364<para>
365a descriptor leak occurred in the router process when removing or
366reconfiguring an application; the bug had appeared in 1.19.0.
367</para>
368</change>
369
370<change type="bugfix">
371<para>
372persistent storage of certificates might've not worked with some filesystems in
373Linux, and all uploaded certificate bundles were forgotten after restart.
374</para>
375</change>
376
377<change type="bugfix">
378<para>
379the controller process could crash while requesting information about a
380certificate with a non-DNS SAN entry.
381</para>
382</change>
383
384<change type="bugfix">
385<para>
386the controller process could crash on manipulations with a certificate
387containing a SAN and no standard name attributes in subject or issuer.
388</para>
389</change>
390
391<change type="bugfix">
392<para>
393the Ruby module didn't respect the user locale for defaults in the Encoding
394class.
395</para>
396</change>
397
398<change type="bugfix">
399<para>
400the PHP 5 module failed to build with thread safety enabled; the bug had
401appeared in 1.22.0.
402</para>
403</change>
404
405</changes>
406
407
408<changes apply="unit-python3.9" ver="1.22.0" rev="1"
409         date="2021-02-04" time="18:00:00 +0300"
410         packager="Andrei Belov &lt;defan@nginx.com&gt;">
411
412<change>
413<para>
414Initial release of Python 3.9 module for NGINX Unit.
415</para>
416</change>
417
418</changes>
419
420
421<changes apply="unit-php
422                unit-python unit-python2.7
423                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
424                unit-python3.8
425                unit-go
426                unit-perl
427                unit-ruby
428                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
429                unit-jsc14 unit-jsc15"
430         ver="1.22.0" rev="1"
431         date="2021-02-04" time="18:00:00 +0300"
432         packager="Andrei Belov &lt;defan@nginx.com&gt;">
433
434<change>
435<para>
436NGINX Unit updated to 1.22.0.
437</para>
438</change>
439
440</changes>
441
442
443<changes apply="unit" ver="1.22.0" rev="1"
444         date="2021-02-04" time="18:00:00 +0300"
445         packager="Andrei Belov &lt;defan@nginx.com&gt;">
446
447<change type="feature">
448<para>
449the ServerRequest and ServerResponse objects of Node.js module are now
450compliant with Stream API.
451</para>
452</change>
453
454<change type="feature">
455<para>
456support for specifying multiple directories in the "path" option of Python
457apps.
458</para>
459</change>
460
461<change type="bugfix">
462<para>
463a memory leak occurred in the router process when serving files larger than
464128K; the bug had appeared in 1.13.0.
465</para>
466</change>
467
468<change type="bugfix">
469<para>
470apps could stop processing new requests under high load; the bug had
471appeared in 1.19.0.
472</para>
473</change>
474
475<change type="bugfix">
476<para>
477app processes could terminate unexpectedly under high load; the bug had
478appeared in 1.19.0.
479</para>
480</change>
481
482<change type="bugfix">
483<para>
484invalid HTTP responses were generated for some unusual status codes.
485</para>
486</change>
487
488<change type="bugfix">
489<para>
490the PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server variables were
491missing in the PHP module.
492</para>
493</change>
494
495<change type="bugfix">
496<para>
497the router process could crash with multithreaded apps under high load.
498</para>
499</change>
500
501<change type="bugfix">
502<para>
503Ruby apps with multithreading configured could crash on start under load.
504</para>
505</change>
506
507<change type="bugfix">
508<para>
509mount points weren't unmounted when the "mount" namespace isolation was used;
510the bug had appeared in 1.21.0.
511</para>
512</change>
513
514<change type="bugfix">
515<para>
516the router process could crash while removing or reconfiguring an app that used
517WebSocket.
518</para>
519</change>
520
521<change type="bugfix">
522<para>
523a memory leak occurring in the router process when removing or reconfiguring
524an application; the bug had appeared in 1.19.0.
525</para>
526</change>
527
528</changes>
529
530
531<changes apply="unit-jsc15" ver="1.21.0" rev="1"
532         date="2020-11-19" time="18:00:00 +0300"
533         packager="Andrei Belov &lt;defan@nginx.com&gt;">
534
535<change>
536<para>
537Initial release of Java 15 module for NGINX Unit.
538</para>
539</change>
540
541</changes>
542
543
544<changes apply="unit-jsc14" ver="1.21.0" rev="1"
545         date="2020-11-19" time="18:00:00 +0300"
546         packager="Andrei Belov &lt;defan@nginx.com&gt;">
547
548<change>
549<para>
550Initial release of Java 14 module for NGINX Unit.
551</para>
552</change>
553
554</changes>
555
556
557<changes apply="unit-jsc13" ver="1.21.0" rev="1"
558         date="2020-11-19" time="18:00:00 +0300"
559         packager="Andrei Belov &lt;defan@nginx.com&gt;">
560
561<change>
562<para>
563Initial release of Java 13 module for NGINX Unit.
564</para>
565</change>
566
567</changes>
568
569
570<changes apply="unit-php
571                unit-python unit-python2.7
572                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
573                unit-python3.8
574                unit-go
575                unit-perl
576                unit-ruby
577                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
578         ver="1.21.0" rev="1"
579         date="2020-11-19" time="18:00:00 +0300"
580         packager="Andrei Belov &lt;defan@nginx.com&gt;">
581
582<change>
583<para>
584NGINX Unit updated to 1.21.0.
585</para>
586</change>
587
588</changes>
589
590
591<changes apply="unit" ver="1.21.0" rev="1"
592         date="2020-11-19" time="18:00:00 +0300"
593         packager="Andrei Belov &lt;defan@nginx.com&gt;">
594
595<change type="change">
596<para>
597procfs is mounted by default for all languages when "rootfs" isolation is used.
598</para>
599</change>
600
601<change type="change">
602<para>
603any characters valid according to RFC 7230 are now allowed in HTTP header field
604names.
605</para>
606</change>
607
608<change type="change">
609<para>
610HTTP header fields with underscores ("_") are now discarded from requests by
611default.
612</para>
613</change>
614
615<change type="feature">
616<para>
617optional multithreaded request processing for Java, Python, Perl, and Ruby apps.
618</para>
619</change>
620
621<change type="feature">
622<para>
623regular expressions in route matching patterns.
624</para>
625</change>
626
627<change type="feature">
628<para>
629compatibility with Python 3.9.
630</para>
631</change>
632
633<change type="feature">
634<para>
635the Python module now supports ASGI 2.0 legacy applications.
636</para>
637</change>
638
639<change type="feature">
640<para>
641the "protocol" option in Python applications aids choice between ASGI and WSGI.
642</para>
643</change>
644
645<change type="feature">
646<para>
647the fastcgi_finish_request() PHP function that finalizes request processing and
648continues code execution without holding onto the client connection.
649</para>
650</change>
651
652<change type="feature">
653<para>
654the "discard_unsafe_fields" HTTP option that enables discarding request header
655fields with irregular (but still valid) characters in the field name.
656</para>
657</change>
658
659<change type="feature">
660<para>
661the "procfs" and "tmpfs" automount isolation options to disable automatic
662mounting of eponymous filesystems.
663</para>
664</change>
665
666<change type="bugfix">
667<para>
668the router process could crash when running Go applications under high load;
669the bug had appeared in 1.19.0.
670</para>
671</change>
672
673<change type="bugfix">
674<para>
675some language dependencies could remain mounted after using "rootfs" isolation.
676</para>
677</change>
678
679<change type="bugfix">
680<para>
681various compatibility issues in Java applications.
682</para>
683</change>
684
685<change type="bugfix">
686<para>
687the Java module built with the musl C library couldn't run applications that
688use "rootfs" isolation.
689</para>
690</change>
691
692</changes>
693
694
695<changes apply="unit-php
696                unit-python unit-python2.7
697                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
698                unit-python3.8
699                unit-go
700                unit-perl
701                unit-ruby
702                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
703         ver="1.20.0" rev="1"
704         date="2020-10-08" time="18:00:00 +0300"
705         packager="Andrei Belov &lt;defan@nginx.com&gt;">
706
707<change>
708<para>
709NGINX Unit updated to 1.20.0.
710</para>
711</change>
712
713</changes>
714
715
716<changes apply="unit" ver="1.20.0" rev="1"
717         date="2020-10-08" time="18:00:00 +0300"
718         packager="Andrei Belov &lt;defan@nginx.com&gt;">
719
720<change type="change">
721<para>
722the PHP module is now initialized before chrooting; this enables loading all
723extensions from the host system.
724</para>
725</change>
726
727<change type="change">
728<para>
729AVIF and APNG image formats added to the default MIME type list.
730</para>
731</change>
732
733<change type="change">
734<para>
735functional tests migrated to the pytest framework.
736</para>
737</change>
738
739<change type="feature">
740<para>
741the Python module now fully supports applications that use the ASGI 3.0 server
742interface.
743</para>
744</change>
745
746<change type="feature">
747<para>
748the Python module now has a built-in WebSocket server implementation for
749applications, compatible with the HTTP &amp; WebSocket ASGI Message Format 2.1
750specification.
751</para>
752</change>
753
754<change type="feature">
755<para>
756automatic mounting of an isolated "/tmp" file system into chrooted application
757environments.
758</para>
759</change>
760
761<change type="feature">
762<para>
763the $host variable contains a normalized "Host" request value.
764</para>
765</change>
766
767<change type="feature">
768<para>
769the "callable" option sets Python application callable names.
770</para>
771</change>
772
773<change type="feature">
774<para>
775compatibility with PHP 8 RC 1. Thanks to Remi Collet.
776</para>
777</change>
778
779<change type="feature">
780<para>
781the "automount" option in the "isolation" object allows to turn off the
782automatic mounting of language module dependencies.
783</para>
784</change>
785
786<change type="bugfix">
787<para>
788"pass"-ing requests to upstreams from a route was broken; the bug had appeared
789in 1.19.0.  Thanks to 洪志道 (Hong Zhi Dao) for discovering and fixing it.
790</para>
791</change>
792
793<change type="bugfix">
794<para>
795the router process could crash during reconfiguration.
796</para>
797</change>
798
799<change type="bugfix">
800<para>
801a memory leak occurring in the router process; the bug had appeared in 1.18.0.
802</para>
803</change>
804
805<change type="bugfix">
806<para>
807the "!" (non-empty) pattern was matched incorrectly;
808the bug had appeared in 1.19.0.
809</para>
810</change>
811
812<change type="bugfix">
813<para>
814fixed building on platforms without sendfile() support, notably NetBSD;
815the bug had appeared in 1.16.0.
816</para>
817</change>
818
819</changes>
820
821
822<changes apply="unit-php
823                unit-python unit-python2.7
824                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
825                unit-python3.8
826                unit-go
827                unit-perl
828                unit-ruby
829                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
830         ver="1.19.0" rev="1"
831         date="2020-08-13" time="18:00:00 +0300"
832         packager="Andrei Belov &lt;defan@nginx.com&gt;">
833
834<change>
835<para>
836NGINX Unit updated to 1.19.0.
837</para>
838</change>
839
840</changes>
841
842
843<changes apply="unit" ver="1.19.0" rev="1"
844         date="2020-08-13" time="18:00:00 +0300"
845         packager="Andrei Belov &lt;defan@nginx.com&gt;">
846
847<change type="feature">
848<para>
849reworked IPC between the router process and the applications to lower latencies,
850increase performance, and improve scalability.
851</para>
852</change>
853
854<change type="feature">
855<para>
856support for an arbitrary number of wildcards in route matching patterns.
857</para>
858</change>
859
860<change type="feature">
861<para>
862chunked transfer encoding in proxy responses.
863</para>
864</change>
865
866<change type="feature">
867<para>
868basic variables support in the "pass" option.
869</para>
870</change>
871
872<change type="feature">
873<para>
874compatibility with PHP 8 Beta 1.
875Thanks to Remi Collet.
876</para>
877</change>
878
879<change type="bugfix">
880<para>
881the router process could crash while passing requests to an application under
882high load.
883</para>
884</change>
885
886<change type="bugfix">
887<para>
888a number of language modules failed to build on some systems;
889the bug had appeared in 1.18.0.
890</para>
891</change>
892
893<change type="bugfix">
894<para>
895time in error log messages from PHP applications could lag.
896</para>
897</change>
898
899<change type="bugfix">
900<para>
901reconfiguration requests could hang if an application had failed to start;
902the bug had appeared in 1.18.0.
903</para>
904</change>
905
906<change type="bugfix">
907<para>
908memory leak during reconfiguration.
909</para>
910</change>
911
912<change type="bugfix">
913<para>
914the daemon didn't start without language modules;
915the bug had appeared in 1.18.0.
916</para>
917</change>
918
919<change type="bugfix">
920<para>
921the router process could crash at exit.
922</para>
923</change>
924
925<change type="bugfix">
926<para>
927Node.js applications could crash at exit.
928</para>
929</change>
930
931<change type="bugfix">
932<para>
933the Ruby module could be linked against a wrong library version.
934</para>
935</change>
936
937</changes>
938
939
940<changes apply="unit-php
941                unit-python unit-python2.7
942                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
943                unit-python3.8
944                unit-go
945                unit-perl
946                unit-ruby
947                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
948         ver="1.18.0" rev="1"
949         date="2020-05-28" time="18:00:00 +0300"
950         packager="Andrei Belov &lt;defan@nginx.com&gt;">
951
952<change>
953<para>
954NGINX Unit updated to 1.18.0.
955</para>
956</change>
957
958</changes>
959
960
961<changes apply="unit" ver="1.18.0" rev="1"
962         date="2020-05-28" time="18:00:00 +0300"
963         packager="Andrei Belov &lt;defan@nginx.com&gt;">
964
965<change type="feature">
966<para>
967the "rootfs" isolation option for changing root filesystem for an application.
968</para>
969</change>
970
971<change type="feature">
972<para>
973multiple "targets" in PHP applications.
974</para>
975</change>
976
977<change type="feature">
978<para>
979support for percent-encoding in the "uri" and "arguments" matching options
980and in the "pass" option.
981</para>
982</change>
983
984</changes>
985
986
987<changes apply="unit-php
988                unit-python unit-python2.7
989                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
990                unit-python3.8
991                unit-go
992                unit-perl
993                unit-ruby
994                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
995         ver="1.17.0" rev="1"
996         date="2020-04-16" time="18:00:00 +0300"
997         packager="Andrei Belov &lt;defan@nginx.com&gt;">
998
999<change>
1000<para>
1001NGINX Unit updated to 1.17.0.
1002</para>
1003</change>
1004
1005</changes>
1006
1007
1008<changes apply="unit" ver="1.17.0" rev="1"
1009         date="2020-04-16" time="18:00:00 +0300"
1010         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1011
1012<change type="feature">
1013<para>
1014a "return" action with optional "location" for immediate responses and external
1015redirection.
1016</para>
1017</change>
1018
1019<change type="feature">
1020<para>
1021fractional weights support for upstream servers.
1022</para>
1023</change>
1024
1025<change type="bugfix">
1026<para>
1027accidental 502 "Bad Gateway" errors might have occurred in applications under
1028high load.
1029</para>
1030</change>
1031
1032<change type="bugfix">
1033<para>
1034memory leak in the router; the bug had appeared in 1.13.0.
1035</para>
1036</change>
1037
1038<change type="bugfix">
1039<para>
1040segmentation fault might have occurred in the router process when reaching
1041open connections limit.
1042</para>
1043</change>
1044
1045<change type="bugfix">
1046<para>
1047"close() failed (9: Bad file descriptor)" alerts might have appeared in the log
1048while processing large request bodies; the bug had appeared in 1.16.0.
1049</para>
1050</change>
1051
1052<change type="bugfix">
1053<para>
1054existing application processes didn't reopen the log file.
1055</para>
1056</change>
1057
1058<change type="bugfix">
1059<para>
1060incompatibility with some Node.js applications.
1061</para>
1062</change>
1063
1064<change type="bugfix">
1065<para>
1066broken build on DragonFly BSD; the bug had appeared in 1.16.0.
1067</para>
1068</change>
1069
1070</changes>
1071
1072
1073<changes apply="unit-php
1074                unit-python unit-python2.7
1075                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1076                unit-python3.8
1077                unit-go
1078                unit-perl
1079                unit-ruby
1080                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
1081         ver="1.16.0" rev="1"
1082         date="2020-03-12" time="18:00:00 +0300"
1083         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1084
1085<change>
1086<para>
1087NGINX Unit updated to 1.16.0.
1088</para>
1089</change>
1090
1091</changes>
1092
1093
1094<changes apply="unit" ver="1.16.0" rev="1"
1095         date="2020-03-12" time="18:00:00 +0300"
1096         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1097
1098<change type="feature">
1099<para>
1100basic load-balancing support with round-robin.
1101</para>
1102</change>
1103
1104<change type="feature">
1105<para>
1106a "fallback" option that performs an alternative action if a request can't be
1107served from the "share" directory.
1108</para>
1109</change>
1110
1111<change type="feature">
1112<para>
1113reduced memory consumption by dumping large request bodies to disk.
1114</para>
1115</change>
1116
1117<change type="feature">
1118<para>
1119stripping UTF-8 BOM and JavaScript-style comments from uploaded JSON.
1120</para>
1121</change>
1122
1123<change type="bugfix">
1124<para>
1125negative address matching in router might work improperly in combination with
1126non-negative patterns.
1127</para>
1128</change>
1129
1130<change type="bugfix">
1131<para>
1132Java Spring applications failed to run; the bug had appeared in 1.10.0.
1133</para>
1134</change>
1135
1136<change type="bugfix">
1137<para>
1138PHP 7.4 was broken if it was built with thread safety enabled.
1139</para>
1140</change>
1141
1142<change type="bugfix">
1143<para>
1144compatibility issues with some Python applications.
1145</para>
1146</change>
1147
1148</changes>
1149
1150
1151<changes apply="unit-php
1152                unit-python unit-python2.7
1153                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1154                unit-python3.8
1155                unit-go
1156                unit-perl
1157                unit-ruby
1158                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
1159         ver="1.15.0" rev="1"
1160         date="2020-02-06" time="18:00:00 +0300"
1161         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1162
1163<change>
1164<para>
1165NGINX Unit updated to 1.15.0.
1166</para>
1167</change>
1168
1169</changes>
1170
1171
1172<changes apply="unit" ver="1.15.0" rev="1"
1173         date="2020-02-06" time="18:00:00 +0300"
1174         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1175
1176<change type="change">
1177<para>
1178extensions of dynamically requested PHP scripts were restricted to ".php".
1179</para>
1180</change>
1181
1182<change type="feature">
1183<para>
1184compatibility with Ruby 2.7.
1185</para>
1186</change>
1187
1188<change type="bugfix">
1189<para>
1190segmentation fault might have occurred in the router process with multiple
1191application processes under load; the bug had appeared in 1.14.0.
1192</para>
1193</change>
1194
1195<change type="bugfix">
1196<para>
1197receiving request body over TLS connection might have stalled.
1198</para>
1199</change>
1200
1201</changes>
1202
1203
1204<changes apply="unit-php
1205                unit-python unit-python2.7
1206                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1207                unit-python3.8
1208                unit-go
1209                unit-perl
1210                unit-ruby
1211                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
1212         ver="1.14.0" rev="1"
1213         date="2019-12-26" time="18:00:00 +0300"
1214         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1215
1216<change>
1217<para>
1218NGINX Unit updated to 1.14.0.
1219</para>
1220</change>
1221
1222</changes>
1223
1224
1225<changes apply="unit" ver="1.14.0" rev="1"
1226         date="2019-12-26" time="18:00:00 +0300"
1227         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1228
1229<change type="change">
1230<para>
1231the Go package import name changed to "unit.nginx.org/go".
1232</para>
1233</change>
1234
1235<change type="change">
1236<para>
1237Go package now links to libunit instead of including library sources.
1238</para>
1239</change>
1240
1241<change type="feature">
1242<para>
1243ability to change user and group for isolated applications when Unit daemon
1244runs as an unprivileged user.
1245</para>
1246</change>
1247
1248<change type="feature">
1249<para>
1250request routing by source and destination addresses and ports.
1251</para>
1252</change>
1253
1254<change type="bugfix">
1255<para>
1256memory bloat on large responses.
1257</para>
1258</change>
1259
1260</changes>
1261
1262
1263<changes apply="unit-go1.13" ver="1.13.0" rev="1"
1264         date="2019-11-20" time="09:00:00 +0300"
1265         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1266
1267<change>
1268<para>
1269Initial release of Go 1.13 module for NGINX Unit.
1270</para>
1271</change>
1272
1273</changes>
1274
1275
1276<changes apply="unit-go1.12" ver="1.13.0" rev="1"
1277         date="2019-11-20" time="09:00:00 +0300"
1278         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1279
1280<change>
1281<para>
1282Initial release of Go 1.12 module for NGINX Unit.
1283</para>
1284</change>
1285
1286</changes>
1287
1288
1289<changes apply="unit-python3.8" ver="1.13.0" rev="1"
1290         date="2019-11-18" time="14:20:00 +0300"
1291         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1292
1293<change>
1294<para>
1295Initial release of Python 3.8 module for NGINX Unit.
1296</para>
1297</change>
1298
1299</changes>
1300
1301
1302<changes apply="unit-php
1303                unit-python unit-python2.7
1304                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1305                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
1306                unit-perl
1307                unit-ruby
1308                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
1309         ver="1.13.0" rev="1"
1310         date="2019-11-14" time="18:00:00 +0300"
1311         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1312
1313<change>
1314<para>
1315NGINX Unit updated to 1.13.0.
1316</para>
1317</change>
1318
1319</changes>
1320
1321
1322<changes apply="unit" ver="1.13.0" rev="1"
1323         date="2019-11-14" time="18:00:00 +0300"
1324         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1325
1326<change type="feature">
1327<para>
1328basic support for HTTP reverse proxying.
1329</para>
1330</change>
1331
1332<change type="feature">
1333<para>
1334compatibility with Python 3.8.
1335</para>
1336</change>
1337
1338<change type="bugfix">
1339<para>
1340memory leak in Python application processes when the close handler was used.
1341</para>
1342</change>
1343
1344<change type="bugfix">
1345<para>
1346threads in Python applications might not work correctly.
1347</para>
1348</change>
1349
1350<change type="bugfix">
1351<para>
1352Ruby on Rails applications might not work on Ruby 2.6.
1353</para>
1354</change>
1355
1356<change type="bugfix">
1357<para>
1358backtraces for uncaught exceptions in Python 3 might be logged with significant
1359delays.
1360</para>
1361</change>
1362
1363<change type="bugfix">
1364<para>
1365explicit setting a namespaces isolation option to false might have enabled it.
1366</para>
1367</change>
1368
1369</changes>
1370
1371
1372<changes apply="unit-php
1373                unit-python unit-python2.7
1374                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1375                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
1376                unit-perl
1377                unit-ruby
1378                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
1379         ver="1.12.0" rev="1"
1380         date="2019-10-03" time="18:00:00 +0300"
1381         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1382
1383<change>
1384<para>
1385NGINX Unit updated to 1.12.0.
1386</para>
1387</change>
1388
1389</changes>
1390
1391
1392<changes apply="unit" ver="1.12.0" rev="1"
1393         date="2019-10-03" time="18:00:00 +0300"
1394         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1395
1396<change type="feature">
1397<para>
1398compatibility with PHP 7.4.
1399</para>
1400</change>
1401
1402<change type="bugfix">
1403<para>
1404descriptors leak on process creation; the bug had appeared in 1.11.0.
1405</para>
1406</change>
1407
1408<change type="bugfix">
1409<para>
1410TLS connection might be closed prematurely while sending response.
1411</para>
1412</change>
1413
1414<change type="bugfix">
1415<para>
1416segmentation fault might have occurred if an irregular file was requested.
1417</para>
1418</change>
1419
1420</changes>
1421
1422
1423
1424<changes apply="unit-php
1425                unit-python unit-python2.7
1426                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1427                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
1428                unit-perl
1429                unit-ruby
1430                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
1431         ver="1.11.0" rev="1"
1432         date="2019-09-19" time="18:00:00 +0300"
1433         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
1434
1435<change>
1436<para>
1437NGINX Unit updated to 1.11.0.
1438</para>
1439</change>
1440
1441</changes>
1442
1443
1444<changes apply="unit" ver="1.11.0" rev="1"
1445         date="2019-09-19" time="18:00:00 +0300"
1446         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
1447
1448<change type="feature">
1449<para>
1450basic support for serving static files.
1451</para>
1452</change>
1453
1454<change type="feature">
1455<para>
1456isolation of application processes with Linux namespaces.
1457</para>
1458</change>
1459
1460<change type="feature">
1461<para>
1462built-in WebSocket server implementation for Java Servlet Containers.
1463</para>
1464</change>
1465
1466<change type="feature">
1467<para>
1468direct addressing of API configuration options containing slashes "/"
1469using URI encoding (%2F).
1470</para>
1471</change>
1472
1473<change type="bugfix">
1474<para>
1475segmentation fault might have occurred in Go applications under high load.
1476</para>
1477</change>
1478
1479<change type="bugfix">
1480<para>
1481WebSocket support was broken if Unit was built with some linkers other than
1482GNU ld (e.g. gold or LLD).
1483</para>
1484</change>
1485
1486</changes>
1487
1488
1489<changes apply="unit
1490                unit-php
1491                unit-python unit-python2.7
1492                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1493                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
1494                unit-perl
1495                unit-ruby
1496                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
1497         ver="1.10.0" rev="2"
1498         date="2019-08-23" time="12:00:00 +0300"
1499         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1500
1501<change type="bugfix">
1502<para>
1503missed header files added to unit development package.
1504</para>
1505</change>
1506
1507</changes>
1508
1509
1510<changes apply="unit-php
1511                unit-python unit-python2.7
1512                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1513                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
1514                unit-perl
1515                unit-ruby
1516                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
1517         ver="1.10.0" rev="1"
1518         date="2019-08-22" time="18:00:00 +0300"
1519         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1520
1521<change>
1522<para>
1523NGINX Unit updated to 1.10.0.
1524</para>
1525</change>
1526
1527</changes>
1528
1529
1530<changes apply="unit" ver="1.10.0" rev="1"
1531         date="2019-08-22" time="18:00:00 +0300"
1532         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1533
1534<change type="change">
1535<para>
1536matching of cookies in routes made case sensitive.
1537</para>
1538</change>
1539
1540<change type="change">
1541<para>
1542decreased log level of common errors when clients close connections.
1543</para>
1544</change>
1545
1546<change type="change">
1547<para>
1548removed the Perl module's "--include=" ./configure option.
1549</para>
1550</change>
1551
1552<change type="feature">
1553<para>
1554built-in WebSocket server implementation for Node.js module.
1555</para>
1556</change>
1557
1558<change type="feature">
1559<para>
1560splitting PATH_INFO from request URI in PHP module.
1561</para>
1562</change>
1563
1564<change type="feature">
1565<para>
1566request routing by scheme (HTTP or HTTPS).
1567</para>
1568</change>
1569
1570<change type="feature">
1571<para>
1572support for multipart requests body in Java module.
1573</para>
1574</change>
1575
1576<change type="feature">
1577<para>
1578improved API compatibility with Node.js 11.10 or later.
1579</para>
1580</change>
1581
1582<change type="bugfix">
1583<para>
1584reconfiguration failed if "listeners" or "applications" objects were missing.
1585</para>
1586</change>
1587
1588<change type="bugfix">
1589<para>
1590applying a large configuration might have failed.
1591</para>
1592</change>
1593
1594</changes>
1595
1596
1597<changes apply="unit-go1.11" ver="1.9.0" rev="1"
1598         date="2019-05-30" time="18:00:00 +0300"
1599         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1600
1601<change>
1602<para>
1603Initial release of Go 1.11 module for NGINX Unit.
1604</para>
1605</change>
1606
1607</changes>
1608
1609
1610<changes apply="unit-php
1611                unit-python unit-python2.7
1612                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1613                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
1614                unit-perl
1615                unit-ruby
1616                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
1617         ver="1.9.0" rev="1"
1618         date="2019-05-30" time="18:00:00 +0300"
1619         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1620
1621<change>
1622<para>
1623NGINX Unit updated to 1.9.0.
1624</para>
1625</change>
1626
1627</changes>
1628
1629
1630<changes apply="unit" ver="1.9.0" rev="1"
1631         date="2019-05-30" time="18:00:00 +0300"
1632         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1633
1634<change type="feature">
1635<para>
1636request routing by arguments, headers, and cookies.
1637</para>
1638</change>
1639
1640<change type="feature">
1641<para>
1642route matching patterns allow a wildcard in the middle.
1643</para>
1644</change>
1645
1646<change type="feature">
1647<para>
1648POST operation for appending elements to arrays in configuration.
1649</para>
1650</change>
1651
1652<change type="feature">
1653<para>
1654support for changing credentials using CAP_SETUID and CAP_SETGID capabilities
1655on Linux without running main process as privileged user.
1656</para>
1657</change>
1658
1659<change type="bugfix">
1660<para>
1661memory leak in the router process might have happened when a client
1662prematurely closed the connection.
1663</para>
1664</change>
1665
1666<change type="bugfix">
1667<para>
1668applying a large configuration might have failed.
1669</para>
1670</change>
1671
1672<change type="bugfix">
1673<para>
1674PUT and DELETE operations on array elements in configuration did not work.
1675</para>
1676</change>
1677
1678<change type="bugfix">
1679<para>
1680request schema in applications did not reflect TLS connections.
1681</para>
1682</change>
1683
1684<change type="bugfix">
1685<para>
1686restored compatibility with Node.js applications that use
1687ServerResponse._implicitHeader() function; the bug had appeared in 1.7.
1688</para>
1689</change>
1690
1691<change type="bugfix">
1692<para>
1693various compatibility issues with Node.js applications.
1694</para>
1695</change>
1696
1697</changes>
1698
1699
1700<changes apply="unit-jsc-common" ver="1.8.0" rev="1"
1701         date="2019-03-01" time="18:00:00 +0300"
1702         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1703
1704<change>
1705<para>
1706Initial release of Java common packages for NGINX Unit.
1707</para>
1708</change>
1709
1710</changes>
1711
1712
1713<changes apply="unit-jsc8" ver="1.8.0" rev="1"
1714         date="2019-03-01" time="18:00:00 +0300"
1715         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1716
1717<change>
1718<para>
1719Initial release of Java 8 module for NGINX Unit.
1720</para>
1721</change>
1722
1723</changes>
1724
1725
1726<changes apply="unit-jsc10" ver="1.8.0" rev="1"
1727         date="2019-03-01" time="18:00:00 +0300"
1728         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1729
1730<change>
1731<para>
1732Initial release of Java 10 module for NGINX Unit.
1733</para>
1734</change>
1735
1736</changes>
1737
1738
1739<changes apply="unit-jsc11" ver="1.8.0" rev="1"
1740         date="2019-03-01" time="18:00:00 +0300"
1741         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1742
1743<change>
1744<para>
1745Initial release of Java 11 module for NGINX Unit.
1746</para>
1747</change>
1748
1749</changes>
1750
1751
1752<changes apply="unit-php
1753                unit-python unit-python2.7
1754                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1755                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
1756                unit-perl
1757                unit-ruby"
1758         ver="1.8.0" rev="1"
1759         date="2019-03-01" time="18:00:00 +0300"
1760         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1761
1762<change>
1763<para>
1764NGINX Unit updated to 1.8.0.
1765</para>
1766</change>
1767
1768</changes>
1769
1770
1771<changes apply="unit" ver="1.8.0" rev="1"
1772         date="2019-03-01" time="18:00:00 +0300"
1773         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1774
1775<change type="change">
1776<para>
1777now three numbers are always used for versioning: major, minor,
1778and patch versions.
1779</para>
1780</change>
1781
1782<change type="change">
1783<para>
1784now QUERY_STRING is always defined even if the request does not include
1785the query component.
1786</para>
1787</change>
1788
1789<change type="feature">
1790<para>
1791basic internal request routing by Host, URI, and method.
1792</para>
1793</change>
1794
1795<change type="feature">
1796<para>
1797experimental support for Java Servlet Containers.
1798</para>
1799</change>
1800
1801<change type="bugfix">
1802<para>
1803segmentation fault might have occurred in the router process.
1804</para>
1805</change>
1806
1807<change type="bugfix">
1808<para>
1809various potential memory leaks.
1810</para>
1811</change>
1812
1813<change type="bugfix">
1814<para>
1815TLS connections might have stalled.
1816</para>
1817</change>
1818
1819<change type="bugfix">
1820<para>
1821some Perl applications might have failed to send the response body.
1822</para>
1823</change>
1824
1825<change type="bugfix">
1826<para>
1827some compilers with specific flags might have produced non-functioning builds;
1828the bug had appeared in 1.5.
1829</para>
1830</change>
1831
1832<change type="bugfix">
1833<para>
1834Node.js package had wrong version number when installed from sources.
1835</para>
1836</change>
1837
1838</changes>
1839
1840
1841<changes apply="unit-php
1842                unit-python unit-python2.7
1843                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
1844                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
1845                unit-perl
1846                unit-ruby"
1847         ver="1.7.1" rev="1"
1848         date="2019-02-07" time="18:00:00 +0300"
1849         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1850
1851<change>
1852<para>
1853NGINX Unit updated to 1.7.1.
1854</para>
1855</change>
1856
1857</changes>
1858
1859
1860<changes apply="unit" ver="1.7.1" rev="1"
1861         date="2019-02-07" time="18:00:00 +0300"
1862         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1863
1864<change type="security">
1865<para>
1866a heap memory buffer overflow might have been caused in the router process by
1867a specially crafted request, potentially resulting in a segmentation fault or
1868other unspecified behavior (CVE-2019-7401).
1869</para>
1870</change>
1871
1872<change type="bugfix">
1873<para>
1874install of Go module failed without prior building of Unit daemon;
1875the bug had appeared in 1.7.
1876</para>
1877</change>
1878
1879</changes>
1880
1881
1882<changes apply="unit-python3.7" ver="1.7" rev="1"
1883         date="2018-12-25" time="10:30:00 +0300"
1884         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1885
1886<change>
1887<para>
1888Initial release of Python 3.7 module for NGINX Unit.
1889</para>
1890</change>
1891
1892</changes>
1893
1894
1895<changes apply="unit-php
1896                unit-python unit-python2.7
1897                unit-python3.4 unit-python3.5 unit-python3.6
1898                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
1899                unit-perl
1900                unit-ruby"
1901         ver="1.7" rev="1"
1902         date="2018-12-20" time="18:00:00 +0300"
1903         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1904
1905<change>
1906<para>
1907NGINX Unit updated to 1.7.
1908</para>
1909</change>
1910
1911</changes>
1912
1913
1914<changes apply="unit" ver="1.7" rev="1"
1915         date="2018-12-20" time="18:00:00 +0300"
1916         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1917
1918<change type="change">
1919<para>
1920now rpath is set in Ruby module only if the library was not found in default
1921search paths; this allows to meet packaging restrictions on some systems.
1922</para>
1923</change>
1924
1925<change type="bugfix">
1926<para>
1927"disable_functions" and "disable_classes" PHP options set via Control API
1928did not work.
1929</para>
1930</change>
1931
1932<change type="bugfix">
1933<para>
1934Promises on request data in Node.js were not triggered.
1935</para>
1936</change>
1937
1938<change type="bugfix">
1939<para>
1940various compatibility issues with Node.js applications.
1941</para>
1942</change>
1943
1944<change type="bugfix">
1945<para>
1946a segmentation fault occurred in Node.js module if application tried to read
1947request body after request.end() was called.
1948</para>
1949</change>
1950
1951<change type="bugfix">
1952<para>
1953a segmentation fault occurred in Node.js module if application attempted to
1954send header twice.
1955</para>
1956</change>
1957
1958<change type="bugfix">
1959<para>
1960names of response header fields in Node.js module were erroneously treated as
1961case-sensitive.
1962</para>
1963</change>
1964
1965<change type="bugfix">
1966<para>
1967uncatched exceptions in Node.js were not logged.
1968</para>
1969</change>
1970
1971<change type="bugfix">
1972<para>
1973global install of Node.js module from sources was broken on some systems;
1974the bug had appeared in 1.6.
1975</para>
1976</change>
1977
1978<change type="bugfix">
1979<para>
1980traceback for exceptions during initialization of Python applications might not
1981be logged.
1982</para>
1983</change>
1984
1985<change type="bugfix">
1986<para>
1987PHP module build failed if PHP interpreter was built with thread safety
1988enabled.
1989</para>
1990</change>
1991
1992</changes>
1993
1994
1995<changes apply="unit-php
1996                unit-python unit-python2.7
1997                unit-python3.4 unit-python3.5 unit-python3.6
1998                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
1999                unit-perl
2000                unit-ruby"
2001         ver="1.6" rev="1"
2002         date="2018-11-15" time="18:00:00 +0300"
2003         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
2004
2005<change>
2006<para>
2007NGINX Unit updated to 1.6.
2008</para>
2009</change>
2010
2011</changes>
2012
2013
2014<changes apply="unit" ver="1.6" rev="1"
2015         date="2018-11-15" time="18:00:00 +0300"
2016         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
2017
2018<change type="change">
2019<para>
2020"make install" now installs Node.js module as well if it was configured.
2021</para>
2022</change>
2023
2024<change type="feature">
2025<para>
2026"--local" ./configure option to install Node.js module locally.
2027</para>
2028</change>
2029
2030<change type="bugfix">
2031<para>
2032Node.js module might have crashed due to broken reference counting.
2033</para>
2034</change>
2035
2036<change type="bugfix">
2037<para>
2038asynchronous operations in Node.js might not have worked.
2039</para>
2040</change>
2041
2042<change type="bugfix">
2043<para>
2044various compatibility issues with Node.js applications.
2045</para>
2046</change>
2047
2048<change type="bugfix">
2049<para>
2050"freed pointer is out of pool" alerts might have appeared in log.
2051</para>
2052</change>
2053
2054<change type="bugfix">
2055<para>
2056module discovery did not work on 64-bit big-endian systems like IBM/S390x.
2057</para>
2058</change>
2059
2060</changes>
2061
2062
2063<changes apply="unit-php
2064                unit-python unit-python2.7
2065                unit-python3.4 unit-python3.5 unit-python3.6
2066                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
2067                unit-perl
2068                unit-ruby"
2069         ver="1.5" rev="1"
2070         date="2018-10-25" time="18:00:00 +0300"
2071         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2072
2073<change>
2074<para>
2075NGINX Unit updated to 1.5.
2076</para>
2077</change>
2078
2079</changes>
2080
2081
2082<changes apply="unit" ver="1.5" rev="1"
2083         date="2018-10-25" time="18:00:00 +0300"
2084         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2085
2086<change type="change">
2087<para>
2088the "type" of application object for Go was changed to "external".
2089</para>
2090</change>
2091
2092<change type="feature">
2093<para>
2094initial version of Node.js package with basic HTTP request-response support.
2095</para>
2096</change>
2097
2098<change type="feature">
2099<para>
2100compatibility with LibreSSL.
2101</para>
2102</change>
2103
2104<change type="feature">
2105<para>
2106--libdir and --incdir ./configure options to install libunit headers
2107and static library.
2108</para>
2109</change>
2110
2111<change type="bugfix">
2112<para>
2113connection might be closed prematurely while sending response;
2114the bug had appeared in 1.3.
2115</para>
2116</change>
2117
2118<change type="bugfix">
2119<para>
2120application processes might have stopped handling requests, producing
2121"last message send failed: Resource temporarily unavailable" alerts in log;
2122the bug had appeared in 1.4.
2123</para>
2124</change>
2125
2126<change type="bugfix">
2127<para>
2128Go applications did not work when Unit was built with musl C library.
2129</para>
2130</change>
2131
2132</changes>
2133
2134
2135<changes apply="unit-php
2136                unit-python unit-python2.7
2137                unit-python3.4 unit-python3.5 unit-python3.6
2138                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
2139                unit-perl
2140                unit-ruby"
2141         ver="1.4" rev="2"
2142         date="2018-09-27" time="13:30:00 +0300"
2143         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2144
2145<change type="bugfix">
2146<para>
2147corrected instructions for launching sample application.
2148</para>
2149</change>
2150
2151</changes>
2152
2153
2154<changes apply="unit" ver="1.4" rev="2"
2155         date="2018-09-27" time="13:30:00 +0300"
2156         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2157
2158<change type="change">
2159<para>
2160the "saveconfig" and "loadconfig" action scripts were removed.
2161</para>
2162</change>
2163
2164</changes>
2165
2166
2167<changes apply="unit-php
2168                unit-python unit-python2.7
2169                unit-python3.4 unit-python3.5 unit-python3.6
2170                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
2171                unit-perl
2172                unit-ruby"
2173         ver="1.4" rev="1"
2174         date="2018-09-20" time="18:00:00 +0300"
2175         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2176
2177<change>
2178<para>
2179NGINX Unit updated to 1.4.
2180</para>
2181</change>
2182
2183</changes>
2184
2185
2186<changes apply="unit" ver="1.4" rev="1"
2187         date="2018-09-20" time="18:00:00 +0300"
2188         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2189
2190<change type="change">
2191<para>
2192the control API maps the configuration object only at "/config/".
2193</para>
2194</change>
2195
2196<change type="feature">
2197<para>
2198TLS support for client connections.
2199</para>
2200</change>
2201
2202<change type="feature">
2203<para>
2204TLS certificates storage control API.
2205</para>
2206</change>
2207
2208<change type="feature">
2209<para>
2210Unit library (libunit) to streamline language module integration.
2211</para>
2212</change>
2213
2214<change type="feature">
2215<para>
2216"408 Request Timeout" responses while closing HTTP keep-alive connections.
2217</para>
2218</change>
2219
2220<change type="feature">
2221<para>
2222improvements in OpenBSD support.
2223Thanks to David Carlier.
2224</para>
2225</change>
2226
2227<change type="bugfix">
2228<para>
2229a segmentation fault might have occurred after reconfiguration.
2230</para>
2231</change>
2232
2233<change type="bugfix">
2234<para>
2235building on systems with non-default locale might be broken.
2236</para>
2237</change>
2238
2239<change type="bugfix">
2240<para>
2241"header_read_timeout" might not work properly.
2242</para>
2243</change>
2244
2245<change type="bugfix">
2246<para>
2247header fields values with non-ASCII bytes might be handled incorrectly
2248in Python 3 module.
2249</para>
2250</change>
2251
2252</changes>
2253
2254
2255<changes apply="unit-php
2256                unit-python unit-python2.7
2257                unit-python3.4 unit-python3.5 unit-python3.6
2258                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
2259                unit-perl
2260                unit-ruby"
2261         ver="1.3" rev="1"
2262         date="2018-07-13" time="18:00:00 +0300"
2263         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
2264
2265<change>
2266<para>
2267NGINX Unit updated to 1.3.
2268</para>
2269</change>
2270
2271</changes>
2272
2273
2274<changes apply="unit" ver="1.3" rev="1"
2275         date="2018-07-13" time="18:00:00 +0300"
2276         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
2277
2278<change type="change">
2279<para>
2280UTF-8 characters are now allowed in request header field values.
2281</para>
2282</change>
2283
2284<change type="feature">
2285<para>
2286configuration of the request body size limit.
2287</para>
2288</change>
2289
2290<change type="feature">
2291<para>
2292configuration of various HTTP connection timeouts.
2293</para>
2294</change>
2295
2296<change type="feature">
2297<para>
2298Ruby module now automatically uses Bundler where possible.
2299</para>
2300</change>
2301
2302<change type="feature">
2303<para>
2304http.Flusher interface in Go module.
2305</para>
2306</change>
2307
2308<change type="bugfix">
2309<para>
2310various issues in HTTP connection errors handling.
2311</para>
2312</change>
2313
2314<change type="bugfix">
2315<para>
2316requests with body data might be handled incorrectly in PHP module.
2317</para>
2318</change>
2319
2320<change type="bugfix">
2321<para>
2322individual PHP configuration options specified via control API were reset
2323to previous values after the first request in application process.
2324</para>
2325</change>
2326
2327</changes>
2328
2329
2330<changes apply="unit-php
2331                unit-python unit-python2.7
2332                unit-python3.4 unit-python3.5 unit-python3.6
2333                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
2334                unit-perl
2335                unit-ruby"
2336         ver="1.2" rev="1"
2337         date="2018-06-07" time="18:00:00 +0300"
2338         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2339
2340<change>
2341<para>
2342NGINX Unit updated to 1.2.
2343</para>
2344</change>
2345
2346</changes>
2347
2348
2349<changes apply="unit" ver="1.2" rev="1"
2350         date="2018-06-07" time="18:00:00 +0300"
2351         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2352
2353<change type="feature">
2354<para>
2355configuration of environment variables for application processes.
2356</para>
2357</change>
2358
2359<change type="feature">
2360<para>
2361customization of php.ini path.
2362</para>
2363</change>
2364
2365<change type="feature">
2366<para>
2367setting of individual PHP configuration options.
2368</para>
2369</change>
2370
2371<change type="feature">
2372<para>
2373configuration of execution arguments for Go applications.
2374</para>
2375</change>
2376
2377<change type="bugfix">
2378<para>
2379keep-alive connections might hang after reconfiguration.
2380</para>
2381</change>
2382
2383</changes>
2384
2385
2386<changes apply="unit-go1.10" ver="1.1" rev="1"
2387         date="2018-05-14" time="18:00:00 +0300"
2388         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2389
2390<change>
2391<para>
2392Initial release of Go 1.10 module for NGINX Unit.
2393</para>
2394</change>
2395
2396</changes>
2397
2398
2399<changes apply="unit-php
2400                unit-python unit-python2.7
2401                unit-python3.4 unit-python3.5 unit-python3.6
2402                unit-go unit-go1.7 unit-go1.8 unit-go1.9
2403                unit-perl
2404                unit-ruby"
2405         ver="1.1" rev="1"
2406         date="2018-04-26" time="18:00:00 +0300"
2407         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2408
2409<change>
2410<para>
2411NGINX Unit updated to 1.1.
2412</para>
2413</change>
2414
2415</changes>
2416
2417
2418<changes apply="unit" ver="1.1" rev="1"
2419         date="2018-04-26" time="18:00:00 +0300"
2420         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2421
2422<change type="bugfix">
2423<para>
2424Python applications that use the write() callable did not work.
2425</para>
2426</change>
2427
2428<change type="bugfix">
2429<para>
2430virtual environments created with Python 3.3 or above might not have worked.
2431</para>
2432</change>
2433
2434<change type="bugfix">
2435<para>
2436the request.Read() function in Go applications did not produce EOF
2437when the whole body was read.
2438</para>
2439</change>
2440
2441<change type="bugfix">
2442<para>
2443a segmentation fault might have occurred while access log reopening.
2444</para>
2445</change>
2446
2447<change type="bugfix">
2448<para>
2449in parsing of IPv6 control socket addresses.
2450</para>
2451</change>
2452
2453<change type="bugfix">
2454<para>
2455loading of application modules was broken on OpenBSD.
2456</para>
2457</change>
2458
2459<change type="bugfix">
2460<para>
2461a segmentation fault might have occurred when there were two modules
2462with the same type and version; the bug had appeared in 1.0.
2463</para>
2464</change>
2465
2466<change type="bugfix">
2467<para>
2468alerts "freed pointer points to non-freeble page" might have appeared in log
2469on 32-bit platforms.
2470</para>
2471</change>
2472
2473</changes>
2474
2475
2476<changes apply="unit-php
2477                unit-python unit-python2.7
2478                unit-python3.4 unit-python3.5 unit-python3.6
2479                unit-go unit-go1.7 unit-go1.8 unit-go1.9
2480                unit-perl
2481                unit-ruby"
2482         ver="1.0" rev="1"
2483         date="2018-04-12" time="18:00:00 +0300"
2484         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2485
2486<change>
2487<para>
2488NGINX Unit updated to 1.0.
2489</para>
2490</change>
2491
2492</changes>
2493
2494
2495<changes apply="unit" ver="1.0" rev="1"
2496         date="2018-04-12" time="18:00:00 +0300"
2497         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2498
2499<change type="change">
2500<para>
2501configuration object moved into "/config/" path.
2502</para>
2503</change>
2504
2505<change type="feature">
2506<para>
2507basic access logging.
2508</para>
2509</change>
2510
2511<change type="bugfix">
2512<para>
2513503 error occurred if Go application did not write response header or body.
2514</para>
2515</change>
2516
2517<change type="bugfix">
2518<para>
2519Ruby applications that use encoding conversions might not have worked.
2520</para>
2521</change>
2522
2523<change type="bugfix">
2524<para>
2525various stability issues.
2526</para>
2527</change>
2528
2529</changes>
2530
2531
2532<changes apply="unit-php
2533                unit-python unit-python2.7
2534                unit-python3.4 unit-python3.5 unit-python3.6
2535                unit-go unit-go1.7 unit-go1.8 unit-go1.9
2536                unit-perl"
2537         ver="0.7" rev="1"
2538         date="2018-03-22" time="18:00:00 +0300"
2539         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2540
2541<change>
2542<para>
2543NGINX Unit updated to 0.7.
2544</para>
2545</change>
2546
2547</changes>
2548
2549
2550<changes apply="unit-ruby" ver="0.7" rev="1"
2551         date="2018-04-02" time="15:40:00 +0300"
2552         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2553
2554<change>
2555<para>
2556Initial release of Ruby module for NGINX Unit.
2557</para>
2558</change>
2559
2560</changes>
2561
2562
2563<changes apply="unit" ver="0.7" rev="1"
2564         date="2018-03-22" time="18:00:00 +0300"
2565         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2566
2567<change type="feature">
2568<para>
2569Ruby application module.
2570</para>
2571</change>
2572
2573<change type="bugfix">
2574<para>
2575in discovering modules.
2576</para>
2577</change>
2578
2579<change type="bugfix">
2580<para>
2581various race conditions on reconfiguration and during shutting down.
2582</para>
2583</change>
2584
2585<change type="bugfix">
2586<para>
2587tabs and trailing spaces were not allowed in header fields values.
2588</para>
2589</change>
2590
2591<change type="bugfix">
2592<para>
2593a segmentation fault occurred in Python module if start_response() was called
2594outside of WSGI callable.
2595</para>
2596</change>
2597
2598<change type="bugfix">
2599<para>
2600a segmentation fault might have occurred in PHP module if there was an error
2601while initialization.
2602</para>
2603</change>
2604
2605</changes>
2606
2607
2608<changes apply="unit-php
2609                unit-python unit-python2.7
2610                unit-python3.4 unit-python3.5 unit-python3.6
2611                unit-go unit-go1.7 unit-go1.8 unit-go1.9
2612                unit-perl"
2613         ver="0.6" rev="1"
2614         date="2018-02-09" time="18:00:00 +0300"
2615         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2616
2617<change>
2618<para>
2619NGINX Unit updated to 0.6.
2620</para>
2621</change>
2622
2623</changes>
2624
2625
2626<changes apply="unit" ver="0.6" rev="1"
2627         date="2018-02-09" time="18:00:00 +0300"
2628         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2629
2630<change type="bugfix">
2631<para>
2632the main process died when the "type" application option contained version;
2633the bug had appeared in 0.5.
2634</para>
2635</change>
2636
2637</changes>
2638
2639
2640<changes apply="unit-php
2641                unit-python unit-python2.7
2642                unit-python3.4 unit-python3.5 unit-python3.6
2643                unit-go unit-go1.7 unit-go1.8 unit-go1.9"
2644         ver="0.5" rev="1"
2645         date="2018-02-08" time="18:00:00 +0300"
2646         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2647
2648<change>
2649<para>
2650NGINX Unit updated to 0.5.
2651</para>
2652</change>
2653
2654</changes>
2655
2656
2657<changes apply="unit-perl" ver="0.5" rev="1"
2658         date="2018-02-08" time="18:00:00 +0300"
2659         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2660
2661<change>
2662<para>
2663Initial release of Perl module for NGINX Unit.
2664</para>
2665</change>
2666
2667</changes>
2668
2669
2670<changes apply="unit" ver="0.5" rev="1"
2671         date="2018-02-08" time="18:00:00 +0300"
2672         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2673
2674<change type="change">
2675<para>
2676the "workers" application option was removed, the "processes"
2677application option should be used instead.
2678</para>
2679</change>
2680
2681<change type="feature">
2682<para>
2683the "processes" application option with prefork and dynamic
2684process management support.
2685</para>
2686</change>
2687
2688<change type="feature">
2689<para>
2690Perl application module.
2691</para>
2692</change>
2693
2694<change type="bugfix">
2695<para>
2696in reading client request body; the bug had appeared in 0.3.
2697</para>
2698</change>
2699
2700<change type="bugfix">
2701<para>
2702some Python applications might not have worked due to missing
2703"wsgi.errors" environ variable.
2704</para>
2705</change>
2706
2707<change type="bugfix">
2708<para>
2709HTTP chunked responses might be encoded incorrectly on 32-bit
2710platforms.
2711</para>
2712</change>
2713
2714<change type="bugfix">
2715<para>
2716infinite looping in HTTP parser.
2717</para>
2718</change>
2719
2720<change type="bugfix">
2721<para>
2722segmentation fault in router.
2723</para>
2724</change>
2725
2726</changes>
2727
2728
2729<changes apply="unit-php
2730                unit-python unit-python2.7
2731                unit-python3.4 unit-python3.5 unit-python3.6
2732                unit-go unit-go1.7 unit-go1.8 unit-go1.9"
2733         ver="0.4" rev="1"
2734         date="2018-01-15" time="18:00:00 +0300"
2735         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2736
2737<change>
2738<para>
2739NGINX Unit updated to 0.4.
2740</para>
2741</change>
2742
2743</changes>
2744
2745
2746<changes apply="unit" ver="0.4" rev="1"
2747         date="2018-01-15" time="18:00:00 +0300"
2748         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2749
2750<change type="feature">
2751<para>
2752compatibility with DragonFly BSD.
2753</para>
2754</change>
2755
2756<change type="feature">
2757<para>
2758"configure php --lib-static" option.
2759</para>
2760</change>
2761
2762<change type="bugfix">
2763<para>
2764HTTP request body was not passed to application;
2765the bug had appeared in 0.3.
2766</para>
2767</change>
2768
2769<change type="bugfix">
2770<para>
2771HTTP large header buffers allocation and deallocation fixed;
2772the bug had appeared in 0.3.
2773</para>
2774</change>
2775
2776<change type="bugfix">
2777<para>
2778some PHP applications might not have worked with relative "root" path.
2779</para>
2780</change>
2781
2782</changes>
2783
2784
2785<changes apply="unit-go1.9" ver="0.3" rev="1"
2786         date="2017-12-28" time="18:00:00 +0300"
2787         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2788
2789<change>
2790<para>
2791Initial release of Go 1.9 module for NGINX Unit.
2792</para>
2793</change>
2794
2795</changes>
2796
2797
2798<changes apply="unit-python3.6" ver="0.3" rev="1"
2799         date="2017-12-28" time="18:00:00 +0300"
2800         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2801
2802<change>
2803<para>
2804Initial release of Python 3.6 module for NGINX Unit.
2805</para>
2806</change>
2807
2808</changes>
2809
2810
2811<changes apply="unit-php
2812                unit-python unit-python2.7 unit-python3.4 unit-python3.5
2813                unit-go unit-go1.7 unit-go1.8"
2814         ver="0.3" rev="1"
2815         date="2017-12-28" time="18:00:00 +0300"
2816         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2817
2818<change>
2819<para>
2820NGINX Unit updated to 0.3.
2821</para>
2822</change>
2823
2824</changes>
2825
2826
2827<changes apply="unit" ver="0.3" rev="1"
2828         date="2017-12-28" time="18:00:00 +0300"
2829         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2830
2831<change type="change">
2832<para>
2833the Go package name changed to "nginx/unit".
2834</para>
2835</change>
2836
2837<change type="change">
2838<para>
2839in the "limits.timeout" application option: application start time and
2840time in queue now are not accounted.
2841</para>
2842</change>
2843
2844<change type="feature">
2845<para>
2846the "limits.requests" application option.
2847</para>
2848</change>
2849
2850<change type="feature">
2851<para>
2852application request processing latency optimization.
2853</para>
2854</change>
2855
2856<change type="feature">
2857<para>
2858HTTP keep-alive connections support.
2859</para>
2860</change>
2861
2862<change type="feature">
2863<para>
2864the "home" Python virtual environment configuration option.
2865</para>
2866</change>
2867
2868<change type="feature">
2869<para>
2870Python atexit hook support.
2871</para>
2872</change>
2873
2874<change type="feature">
2875<para>
2876various Go package improvements.
2877</para>
2878</change>
2879
2880<change type="bugfix">
2881<para>
2882various crashes fixed.
2883</para>
2884</change>
2885
2886</changes>
2887
2888
2889<changes apply="unit-go" ver="0.2" rev="1"
2890         date="2017-10-19" time="18:00:00 +0300"
2891         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2892
2893<change>
2894<para>
2895Initial release of Go module for NGINX Unit.
2896</para>
2897</change>
2898
2899</changes>
2900
2901
2902<changes apply="unit-go1.7" ver="0.2" rev="1"
2903         date="2017-10-19" time="18:00:00 +0300"
2904         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2905
2906<change>
2907<para>
2908Initial release of Go 1.7 module for NGINX Unit.
2909</para>
2910</change>
2911
2912</changes>
2913
2914
2915<changes apply="unit-go1.8" ver="0.2" rev="1"
2916         date="2017-10-19" time="18:00:00 +0300"
2917         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2918
2919<change>
2920<para>
2921Initial release of Go 1.8 module for NGINX Unit.
2922</para>
2923</change>
2924
2925</changes>
2926
2927
2928<changes apply="unit-python" ver="0.2" rev="1"
2929         date="2017-10-19" time="18:00:00 +0300"
2930         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2931
2932<change>
2933<para>
2934Initial release of Python module for NGINX Unit.
2935</para>
2936</change>
2937
2938</changes>
2939
2940
2941<changes apply="unit-python2.7" ver="0.2" rev="1"
2942         date="2017-10-19" time="18:00:00 +0300"
2943         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2944
2945<change>
2946<para>
2947Initial release of Python 2.7 module for NGINX Unit.
2948</para>
2949</change>
2950
2951</changes>
2952
2953
2954<changes apply="unit-python3.4" ver="0.2" rev="1"
2955         date="2017-10-19" time="18:00:00 +0300"
2956         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2957
2958<change>
2959<para>
2960Initial release of Python 3.4 module for NGINX Unit.
2961</para>
2962</change>
2963
2964</changes>
2965
2966
2967<changes apply="unit-python3.5" ver="0.2" rev="1"
2968         date="2017-10-19" time="18:00:00 +0300"
2969         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2970
2971<change>
2972<para>
2973Initial release of Python 3.5 module for NGINX Unit.
2974</para>
2975</change>
2976
2977</changes>
2978
2979
2980<changes apply="unit-php" ver="0.2" rev="1"
2981         date="2017-10-19" time="18:00:00 +0300"
2982         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2983
2984<change>
2985<para>
2986Initial release of PHP module for NGINX Unit.
2987</para>
2988</change>
2989
2990</changes>
2991
2992
2993<changes apply="unit" ver="0.2" rev="1"
2994         date="2017-10-19" time="18:00:00 +0300"
2995         packager="Andrei Belov &lt;defan@nginx.com&gt;">
2996
2997<change type="feature">
2998<para>
2999configuration persistence.
3000</para>
3001</change>
3002
3003<change type="feature">
3004<para>
3005improved handling of configuration errors.
3006</para>
3007</change>
3008
3009<change type="feature">
3010<para>
3011application "timeout" property.
3012</para>
3013</change>
3014
3015<change type="bugfix">
3016<para>
3017POST request for PHP were handled incorrectly.
3018</para>
3019</change>
3020
3021<change type="bugfix">
3022<para>
3023the router exited abnormally if all listeners had been deleted.
3024</para>
3025</change>
3026
3027<change type="bugfix">
3028<para>
3029the router crashed under load.
3030</para>
3031</change>
3032
3033<change type="bugfix">
3034<para>
3035memory leak in the router.
3036</para>
3037</change>
3038
3039</changes>
3040
3041
3042<changes apply="unit" ver="0.1" rev="1"
3043         date="2017-09-06" time="19:14:28 +0300"
3044         packager="Andrei Belov &lt;defan@nginx.com&gt;">
3045
3046<change>
3047<para>
3048First public release.
3049</para>
3050</change>
3051
3052</changes>
3053
3054
3055</change_log>
3056