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