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