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