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