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