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