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