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