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" 16 ver="1.16.0" rev="1" 17 date="2020-03-12" time="18:00:00 +0300" 18 packager="Andrei Belov <defan@nginx.com>"> 19 20<change> 21<para> 22NGINX Unit updated to 1.16.0. 23</para> 24</change> 25 26</changes> 27 28 29<changes apply="unit" ver="1.16.0" rev="1" 30 date="2020-03-12" time="18:00:00 +0300" 31 packager="Andrei Belov <defan@nginx.com>"> 32 33<change type="feature"> 34<para> 35basic load-balancing support with round-robin. 36</para> 37</change> 38 39<change type="feature"> 40<para> 41a "fallback" option that performs an alternative action if a request can't be 42served from the "share" directory. 43</para> 44</change> 45 46<change type="feature"> 47<para> 48reduced memory consumption by dumping large request bodies to disk. 49</para> 50</change> 51 52<change type="feature"> 53<para> 54stripping UTF-8 BOM and JavaScript-style comments from uploaded JSON. 55</para> 56</change> 57 58<change type="bugfix"> 59<para> 60negative address matching in router might work improperly in combination with 61non-negative patterns. 62</para> 63</change> 64 65<change type="bugfix"> 66<para> 67Java Spring applications failed to run; the bug had appeared in 1.10.0. 68</para> 69</change> 70 71<change type="bugfix"> 72<para> 73PHP 7.4 was broken if it was built with thread safety enabled. 74</para> 75</change> 76 77<change type="bugfix"> 78<para> 79compatibility issues with some Python applications. 80</para> 81</change> 82 83</changes> 84 85 86<changes apply="unit-php 87 unit-python unit-python2.7 88 unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 89 unit-python3.8 90 unit-go 91 unit-perl 92 unit-ruby 93 unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 94 ver="1.15.0" rev="1" 95 date="2020-02-06" time="18:00:00 +0300" 96 packager="Andrei Belov <defan@nginx.com>"> 97 98<change> 99<para> 100NGINX Unit updated to 1.15.0. 101</para> 102</change> 103 104</changes> 105 106 107<changes apply="unit" ver="1.15.0" rev="1" 108 date="2020-02-06" time="18:00:00 +0300" 109 packager="Andrei Belov <defan@nginx.com>"> 110 111<change type="change"> 112<para> 113extensions of dynamically requested PHP scripts were restricted to ".php". 114</para> 115</change> 116 117<change type="feature"> 118<para> 119compatibility with Ruby 2.7. 120</para> 121</change> 122 123<change type="bugfix"> 124<para> 125segmentation fault might have occurred in the router process with multiple 126application processes under load; the bug had appeared in 1.14.0. 127</para> 128</change> 129 130<change type="bugfix"> 131<para> 132receiving request body over TLS connection might have stalled. 133</para> 134</change> 135 136</changes> 137 138 139<changes apply="unit-php 140 unit-python unit-python2.7 141 unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 142 unit-python3.8 143 unit-go 144 unit-perl 145 unit-ruby 146 unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 147 ver="1.14.0" rev="1" 148 date="2019-12-26" time="18:00:00 +0300" 149 packager="Andrei Belov <defan@nginx.com>"> 150 151<change> 152<para> 153NGINX Unit updated to 1.14.0. 154</para> 155</change> 156 157</changes> 158 159 160<changes apply="unit" ver="1.14.0" rev="1" 161 date="2019-12-26" time="18:00:00 +0300" 162 packager="Andrei Belov <defan@nginx.com>"> 163 164<change type="change"> 165<para> 166the Go package import name changed to "unit.nginx.org/go". 167</para> 168</change> 169 170<change type="change"> 171<para> 172Go package now links to libunit instead of including library sources. 173</para> 174</change> 175 176<change type="feature"> 177<para> 178ability to change user and group for isolated applications when Unit daemon 179runs as an unprivileged user. 180</para> 181</change> 182 183<change type="feature"> 184<para> 185request routing by source and destination addresses and ports. 186</para> 187</change> 188 189<change type="bugfix"> 190<para> 191memory bloat on large responses. 192</para> 193</change> 194 195</changes> 196 197 198<changes apply="unit-go1.13" ver="1.13.0" rev="1" 199 date="2019-11-20" time="09:00:00 +0300" 200 packager="Andrei Belov <defan@nginx.com>"> 201 202<change> 203<para> 204Initial release of Go 1.13 module for NGINX Unit. 205</para> 206</change> 207 208</changes> 209 210 211<changes apply="unit-go1.12" ver="1.13.0" rev="1" 212 date="2019-11-20" time="09:00:00 +0300" 213 packager="Andrei Belov <defan@nginx.com>"> 214 215<change> 216<para> 217Initial release of Go 1.12 module for NGINX Unit. 218</para> 219</change> 220 221</changes> 222 223 224<changes apply="unit-python3.8" ver="1.13.0" rev="1" 225 date="2019-11-18" time="14:20:00 +0300" 226 packager="Andrei Belov <defan@nginx.com>"> 227 228<change> 229<para> 230Initial release of Python 3.8 module for NGINX Unit. 231</para> 232</change> 233 234</changes> 235 236 237<changes apply="unit-php 238 unit-python unit-python2.7 239 unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 240 unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 241 unit-perl 242 unit-ruby 243 unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 244 ver="1.13.0" rev="1" 245 date="2019-11-14" time="18:00:00 +0300" 246 packager="Andrei Belov <defan@nginx.com>"> 247 248<change> 249<para> 250NGINX Unit updated to 1.13.0. 251</para> 252</change> 253 254</changes> 255 256 257<changes apply="unit" ver="1.13.0" rev="1" 258 date="2019-11-14" time="18:00:00 +0300" 259 packager="Andrei Belov <defan@nginx.com>"> 260 261<change type="feature"> 262<para> 263basic support for HTTP reverse proxying. 264</para> 265</change> 266 267<change type="feature"> 268<para> 269compatibility with Python 3.8. 270</para> 271</change> 272 273<change type="bugfix"> 274<para> 275memory leak in Python application processes when the close handler was used. 276</para> 277</change> 278 279<change type="bugfix"> 280<para> 281threads in Python applications might not work correctly. 282</para> 283</change> 284 285<change type="bugfix"> 286<para> 287Ruby on Rails applications might not work on Ruby 2.6. 288</para> 289</change> 290 291<change type="bugfix"> 292<para> 293backtraces for uncaught exceptions in Python 3 might be logged with significant 294delays. 295</para> 296</change> 297 298<change type="bugfix"> 299<para> 300explicit setting a namespaces isolation option to false might have enabled it. 301</para> 302</change> 303 304</changes> 305 306 307<changes apply="unit-php 308 unit-python unit-python2.7 309 unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 310 unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 311 unit-perl 312 unit-ruby 313 unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 314 ver="1.12.0" rev="1" 315 date="2019-10-03" time="18:00:00 +0300" 316 packager="Andrei Belov <defan@nginx.com>"> 317 318<change> 319<para> 320NGINX Unit updated to 1.12.0. 321</para> 322</change> 323 324</changes> 325 326 327<changes apply="unit" ver="1.12.0" rev="1" 328 date="2019-10-03" time="18:00:00 +0300" 329 packager="Andrei Belov <defan@nginx.com>"> 330 331<change type="feature"> 332<para> 333compatibility with PHP 7.4. 334</para> 335</change> 336 337<change type="bugfix"> 338<para> 339descriptors leak on process creation; the bug had appeared in 1.11.0. 340</para> 341</change> 342 343<change type="bugfix"> 344<para> 345TLS connection might be closed prematurely while sending response. 346</para> 347</change> 348 349<change type="bugfix"> 350<para> 351segmentation fault might have occurred if an irregular file was requested. 352</para> 353</change> 354 355</changes> 356 357 358 359<changes apply="unit-php 360 unit-python unit-python2.7 361 unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 362 unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 363 unit-perl 364 unit-ruby 365 unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 366 ver="1.11.0" rev="1" 367 date="2019-09-19" time="18:00:00 +0300" 368 packager="Konstantin Pavlov <thresh@nginx.com>"> 369 370<change> 371<para> 372NGINX Unit updated to 1.11.0. 373</para> 374</change> 375 376</changes> 377 378 379<changes apply="unit" ver="1.11.0" rev="1" 380 date="2019-09-19" time="18:00:00 +0300" 381 packager="Konstantin Pavlov <thresh@nginx.com>"> 382 383<change type="feature"> 384<para> 385basic support for serving static files. 386</para> 387</change> 388 389<change type="feature"> 390<para> 391isolation of application processes with Linux namespaces. 392</para> 393</change> 394 395<change type="feature"> 396<para> 397built-in WebSocket server implementation for Java Servlet Containers. 398</para> 399</change> 400 401<change type="feature"> 402<para> 403direct addressing of API configuration options containing slashes "/" 404using URI encoding (%2F). 405</para> 406</change> 407 408<change type="bugfix"> 409<para> 410segmentation fault might have occurred in Go applications under high load. 411</para> 412</change> 413 414<change type="bugfix"> 415<para> 416WebSocket support was broken if Unit was built with some linkers other than 417GNU ld (e.g. gold or LLD). 418</para> 419</change> 420 421</changes> 422 423 424<changes apply="unit 425 unit-php 426 unit-python unit-python2.7 427 unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 428 unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 429 unit-perl 430 unit-ruby 431 unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 432 ver="1.10.0" rev="2" 433 date="2019-08-23" time="12:00:00 +0300" 434 packager="Andrei Belov <defan@nginx.com>"> 435 436<change type="bugfix"> 437<para> 438missed header files added to unit development package. 439</para> 440</change> 441 442</changes> 443 444 445<changes apply="unit-php 446 unit-python unit-python2.7 447 unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 448 unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11 449 unit-perl 450 unit-ruby 451 unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 452 ver="1.10.0" rev="1" 453 date="2019-08-22" time="18:00:00 +0300" 454 packager="Andrei Belov <defan@nginx.com>"> 455 456<change> 457<para> 458NGINX Unit updated to 1.10.0. 459</para> 460</change> 461 462</changes> 463 464 465<changes apply="unit" ver="1.10.0" rev="1" 466 date="2019-08-22" time="18:00:00 +0300" 467 packager="Andrei Belov <defan@nginx.com>"> 468 469<change type="change"> 470<para> 471matching of cookies in routes made case sensitive. 472</para> 473</change> 474 475<change type="change"> 476<para> 477decreased log level of common errors when clients close connections. 478</para> 479</change> 480 481<change type="change"> 482<para> 483removed the Perl module's "--include=" ./configure option. 484</para> 485</change> 486 487<change type="feature"> 488<para> 489built-in WebSocket server implementation for Node.js module. 490</para> 491</change> 492 493<change type="feature"> 494<para> 495splitting PATH_INFO from request URI in PHP module. 496</para> 497</change> 498 499<change type="feature"> 500<para> 501request routing by scheme (HTTP or HTTPS). 502</para> 503</change> 504 505<change type="feature"> 506<para> 507support for multipart requests body in Java module. 508</para> 509</change> 510 511<change type="feature"> 512<para> 513improved API compatibility with Node.js 11.10 or later. 514</para> 515</change> 516 517<change type="bugfix"> 518<para> 519reconfiguration failed if "listeners" or "applications" objects were missing. 520</para> 521</change> 522 523<change type="bugfix"> 524<para> 525applying a large configuration might have failed. 526</para> 527</change> 528 529</changes> 530 531 532<changes apply="unit-go1.11" ver="1.9.0" rev="1" 533 date="2019-05-30" time="18:00:00 +0300" 534 packager="Andrei Belov <defan@nginx.com>"> 535 536<change> 537<para> 538Initial release of Go 1.11 module for NGINX Unit. 539</para> 540</change> 541 542</changes> 543 544 545<changes apply="unit-php 546 unit-python unit-python2.7 547 unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 548 unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 549 unit-perl 550 unit-ruby 551 unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11" 552 ver="1.9.0" rev="1" 553 date="2019-05-30" time="18:00:00 +0300" 554 packager="Andrei Belov <defan@nginx.com>"> 555 556<change> 557<para> 558NGINX Unit updated to 1.9.0. 559</para> 560</change> 561 562</changes> 563 564 565<changes apply="unit" ver="1.9.0" rev="1" 566 date="2019-05-30" time="18:00:00 +0300" 567 packager="Andrei Belov <defan@nginx.com>"> 568 569<change type="feature"> 570<para> 571request routing by arguments, headers, and cookies. 572</para> 573</change> 574 575<change type="feature"> 576<para> 577route matching patterns allow a wildcard in the middle. 578</para> 579</change> 580 581<change type="feature"> 582<para> 583POST operation for appending elements to arrays in configuration. 584</para> 585</change> 586 587<change type="feature"> 588<para> 589support for changing credentials using CAP_SETUID and CAP_SETGID capabilities 590on Linux without running main process as privileged user. 591</para> 592</change> 593 594<change type="bugfix"> 595<para> 596memory leak in the router process might have happened when a client 597prematurely closed the connection. 598</para> 599</change> 600 601<change type="bugfix"> 602<para> 603applying a large configuration might have failed. 604</para> 605</change> 606 607<change type="bugfix"> 608<para> 609PUT and DELETE operations on array elements in configuration did not work. 610</para> 611</change> 612 613<change type="bugfix"> 614<para> 615request schema in applications did not reflect TLS connections. 616</para> 617</change> 618 619<change type="bugfix"> 620<para> 621restored compatibility with Node.js applications that use 622ServerResponse._implicitHeader() function; the bug had appeared in 1.7. 623</para> 624</change> 625 626<change type="bugfix"> 627<para> 628various compatibility issues with Node.js applications. 629</para> 630</change> 631 632</changes> 633 634 635<changes apply="unit-jsc-common" ver="1.8.0" rev="1" 636 date="2019-03-01" time="18:00:00 +0300" 637 packager="Andrei Belov <defan@nginx.com>"> 638 639<change> 640<para> 641Initial release of Java common packages for NGINX Unit. 642</para> 643</change> 644 645</changes> 646 647 648<changes apply="unit-jsc8" ver="1.8.0" rev="1" 649 date="2019-03-01" time="18:00:00 +0300" 650 packager="Andrei Belov <defan@nginx.com>"> 651 652<change> 653<para> 654Initial release of Java 8 module for NGINX Unit. 655</para> 656</change> 657 658</changes> 659 660 661<changes apply="unit-jsc10" ver="1.8.0" rev="1" 662 date="2019-03-01" time="18:00:00 +0300" 663 packager="Andrei Belov <defan@nginx.com>"> 664 665<change> 666<para> 667Initial release of Java 10 module for NGINX Unit. 668</para> 669</change> 670 671</changes> 672 673 674<changes apply="unit-jsc11" ver="1.8.0" rev="1" 675 date="2019-03-01" time="18:00:00 +0300" 676 packager="Andrei Belov <defan@nginx.com>"> 677 678<change> 679<para> 680Initial release of Java 11 module for NGINX Unit. 681</para> 682</change> 683 684</changes> 685 686 687<changes apply="unit-php 688 unit-python unit-python2.7 689 unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 690 unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 691 unit-perl 692 unit-ruby" 693 ver="1.8.0" rev="1" 694 date="2019-03-01" time="18:00:00 +0300" 695 packager="Andrei Belov <defan@nginx.com>"> 696 697<change> 698<para> 699NGINX Unit updated to 1.8.0. 700</para> 701</change> 702 703</changes> 704 705 706<changes apply="unit" ver="1.8.0" rev="1" 707 date="2019-03-01" time="18:00:00 +0300" 708 packager="Andrei Belov <defan@nginx.com>"> 709 710<change type="change"> 711<para> 712now three numbers are always used for versioning: major, minor, 713and patch versions. 714</para> 715</change> 716 717<change type="change"> 718<para> 719now QUERY_STRING is always defined even if the request does not include 720the query component. 721</para> 722</change> 723 724<change type="feature"> 725<para> 726basic internal request routing by Host, URI, and method. 727</para> 728</change> 729 730<change type="feature"> 731<para> 732experimental support for Java Servlet Containers. 733</para> 734</change> 735 736<change type="bugfix"> 737<para> 738segmentation fault might have occurred in the router process. 739</para> 740</change> 741 742<change type="bugfix"> 743<para> 744various potential memory leaks. 745</para> 746</change> 747 748<change type="bugfix"> 749<para> 750TLS connections might have stalled. 751</para> 752</change> 753 754<change type="bugfix"> 755<para> 756some Perl applications might have failed to send the response body. 757</para> 758</change> 759 760<change type="bugfix"> 761<para> 762some compilers with specific flags might have produced non-functioning builds; 763the bug had appeared in 1.5. 764</para> 765</change> 766 767<change type="bugfix"> 768<para> 769Node.js package had wrong version number when installed from sources. 770</para> 771</change> 772 773</changes> 774 775 776<changes apply="unit-php 777 unit-python unit-python2.7 778 unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7 779 unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 780 unit-perl 781 unit-ruby" 782 ver="1.7.1" rev="1" 783 date="2019-02-07" time="18:00:00 +0300" 784 packager="Andrei Belov <defan@nginx.com>"> 785 786<change> 787<para> 788NGINX Unit updated to 1.7.1. 789</para> 790</change> 791 792</changes> 793 794 795<changes apply="unit" ver="1.7.1" rev="1" 796 date="2019-02-07" time="18:00:00 +0300" 797 packager="Andrei Belov <defan@nginx.com>"> 798 799<change type="security"> 800<para> 801a heap memory buffer overflow might have been caused in the router process by 802a specially crafted request, potentially resulting in a segmentation fault or 803other unspecified behavior (CVE-2019-7401). 804</para> 805</change> 806 807<change type="bugfix"> 808<para> 809install of Go module failed without prior building of Unit daemon; 810the bug had appeared in 1.7. 811</para> 812</change> 813 814</changes> 815 816 817<changes apply="unit-python3.7" ver="1.7" rev="1" 818 date="2018-12-25" time="10:30:00 +0300" 819 packager="Andrei Belov <defan@nginx.com>"> 820 821<change> 822<para> 823Initial release of Python 3.7 module for NGINX Unit. 824</para> 825</change> 826 827</changes> 828 829 830<changes apply="unit-php 831 unit-python unit-python2.7 832 unit-python3.4 unit-python3.5 unit-python3.6 833 unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 834 unit-perl 835 unit-ruby" 836 ver="1.7" rev="1" 837 date="2018-12-20" time="18:00:00 +0300" 838 packager="Andrei Belov <defan@nginx.com>"> 839 840<change> 841<para> 842NGINX Unit updated to 1.7. 843</para> 844</change> 845 846</changes> 847 848 849<changes apply="unit" ver="1.7" rev="1" 850 date="2018-12-20" time="18:00:00 +0300" 851 packager="Andrei Belov <defan@nginx.com>"> 852 853<change type="change"> 854<para> 855now rpath is set in Ruby module only if the library was not found in default 856search paths; this allows to meet packaging restrictions on some systems. 857</para> 858</change> 859 860<change type="bugfix"> 861<para> 862"disable_functions" and "disable_classes" PHP options set via Control API 863did not work. 864</para> 865</change> 866 867<change type="bugfix"> 868<para> 869Promises on request data in Node.js were not triggered. 870</para> 871</change> 872 873<change type="bugfix"> 874<para> 875various compatibility issues with Node.js applications. 876</para> 877</change> 878 879<change type="bugfix"> 880<para> 881a segmentation fault occurred in Node.js module if application tried to read 882request body after request.end() was called. 883</para> 884</change> 885 886<change type="bugfix"> 887<para> 888a segmentation fault occurred in Node.js module if application attempted to 889send header twice. 890</para> 891</change> 892 893<change type="bugfix"> 894<para> 895names of response header fields in Node.js module were erroneously treated as 896case-sensitive. 897</para> 898</change> 899 900<change type="bugfix"> 901<para> 902uncatched exceptions in Node.js were not logged. 903</para> 904</change> 905 906<change type="bugfix"> 907<para> 908global install of Node.js module from sources was broken on some systems; 909the bug had appeared in 1.6. 910</para> 911</change> 912 913<change type="bugfix"> 914<para> 915traceback for exceptions during initialization of Python applications might not 916be logged. 917</para> 918</change> 919 920<change type="bugfix"> 921<para> 922PHP module build failed if PHP interpreter was built with thread safety 923enabled. 924</para> 925</change> 926 927</changes> 928 929 930<changes apply="unit-php 931 unit-python unit-python2.7 932 unit-python3.4 unit-python3.5 unit-python3.6 933 unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 934 unit-perl 935 unit-ruby" 936 ver="1.6" rev="1" 937 date="2018-11-15" time="18:00:00 +0300" 938 packager="Konstantin Pavlov <thresh@nginx.com>"> 939 940<change> 941<para> 942NGINX Unit updated to 1.6. 943</para> 944</change> 945 946</changes> 947 948 949<changes apply="unit" ver="1.6" rev="1" 950 date="2018-11-15" time="18:00:00 +0300" 951 packager="Konstantin Pavlov <thresh@nginx.com>"> 952 953<change type="change"> 954<para> 955"make install" now installs Node.js module as well if it was configured. 956</para> 957</change> 958 959<change type="feature"> 960<para> 961"--local" ./configure option to install Node.js module locally. 962</para> 963</change> 964 965<change type="bugfix"> 966<para> 967Node.js module might have crashed due to broken reference counting. 968</para> 969</change> 970 971<change type="bugfix"> 972<para> 973asynchronous operations in Node.js might not have worked. 974</para> 975</change> 976 977<change type="bugfix"> 978<para> 979various compatibility issues with Node.js applications. 980</para> 981</change> 982 983<change type="bugfix"> 984<para> 985"freed pointer is out of pool" alerts might have appeared in log. 986</para> 987</change> 988 989<change type="bugfix"> 990<para> 991module discovery did not work on 64-bit big-endian systems like IBM/S390x. 992</para> 993</change> 994 995</changes> 996 997 998<changes apply="unit-php 999 unit-python unit-python2.7 1000 unit-python3.4 unit-python3.5 unit-python3.6 1001 unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 1002 unit-perl 1003 unit-ruby" 1004 ver="1.5" rev="1" 1005 date="2018-10-25" time="18:00:00 +0300" 1006 packager="Andrei Belov <defan@nginx.com>"> 1007 1008<change> 1009<para> 1010NGINX Unit updated to 1.5. 1011</para> 1012</change> 1013 1014</changes> 1015 1016 1017<changes apply="unit" ver="1.5" rev="1" 1018 date="2018-10-25" time="18:00:00 +0300" 1019 packager="Andrei Belov <defan@nginx.com>"> 1020 1021<change type="change"> 1022<para> 1023the "type" of application object for Go was changed to "external". 1024</para> 1025</change> 1026 1027<change type="feature"> 1028<para> 1029initial version of Node.js package with basic HTTP request-response support. 1030</para> 1031</change> 1032 1033<change type="feature"> 1034<para> 1035compatibility with LibreSSL. 1036</para> 1037</change> 1038 1039<change type="feature"> 1040<para> 1041--libdir and --incdir ./configure options to install libunit headers 1042and static library. 1043</para> 1044</change> 1045 1046<change type="bugfix"> 1047<para> 1048connection might be closed prematurely while sending response; 1049the bug had appeared in 1.3. 1050</para> 1051</change> 1052 1053<change type="bugfix"> 1054<para> 1055application processes might have stopped handling requests, producing 1056"last message send failed: Resource temporarily unavailable" alerts in log; 1057the bug had appeared in 1.4. 1058</para> 1059</change> 1060 1061<change type="bugfix"> 1062<para> 1063Go applications did not work when Unit was built with musl C library. 1064</para> 1065</change> 1066 1067</changes> 1068 1069 1070<changes apply="unit-php 1071 unit-python unit-python2.7 1072 unit-python3.4 unit-python3.5 unit-python3.6 1073 unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 1074 unit-perl 1075 unit-ruby" 1076 ver="1.4" rev="2" 1077 date="2018-09-27" time="13:30:00 +0300" 1078 packager="Andrei Belov <defan@nginx.com>"> 1079 1080<change type="bugfix"> 1081<para> 1082corrected instructions for launching sample application. 1083</para> 1084</change> 1085 1086</changes> 1087 1088 1089<changes apply="unit" ver="1.4" rev="2" 1090 date="2018-09-27" time="13:30:00 +0300" 1091 packager="Andrei Belov <defan@nginx.com>"> 1092 1093<change type="change"> 1094<para> 1095the "saveconfig" and "loadconfig" action scripts were removed. 1096</para> 1097</change> 1098 1099</changes> 1100 1101 1102<changes apply="unit-php 1103 unit-python unit-python2.7 1104 unit-python3.4 unit-python3.5 unit-python3.6 1105 unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 1106 unit-perl 1107 unit-ruby" 1108 ver="1.4" rev="1" 1109 date="2018-09-20" time="18:00:00 +0300" 1110 packager="Andrei Belov <defan@nginx.com>"> 1111 1112<change> 1113<para> 1114NGINX Unit updated to 1.4. 1115</para> 1116</change> 1117 1118</changes> 1119 1120 1121<changes apply="unit" ver="1.4" rev="1" 1122 date="2018-09-20" time="18:00:00 +0300" 1123 packager="Andrei Belov <defan@nginx.com>"> 1124 1125<change type="change"> 1126<para> 1127the control API maps the configuration object only at "/config/". 1128</para> 1129</change> 1130 1131<change type="feature"> 1132<para> 1133TLS support for client connections. 1134</para> 1135</change> 1136 1137<change type="feature"> 1138<para> 1139TLS certificates storage control API. 1140</para> 1141</change> 1142 1143<change type="feature"> 1144<para> 1145Unit library (libunit) to streamline language module integration. 1146</para> 1147</change> 1148 1149<change type="feature"> 1150<para> 1151"408 Request Timeout" responses while closing HTTP keep-alive connections. 1152</para> 1153</change> 1154 1155<change type="feature"> 1156<para> 1157improvements in OpenBSD support. 1158Thanks to David Carlier. 1159</para> 1160</change> 1161 1162<change type="bugfix"> 1163<para> 1164a segmentation fault might have occurred after reconfiguration. 1165</para> 1166</change> 1167 1168<change type="bugfix"> 1169<para> 1170building on systems with non-default locale might be broken. 1171</para> 1172</change> 1173 1174<change type="bugfix"> 1175<para> 1176"header_read_timeout" might not work properly. 1177</para> 1178</change> 1179 1180<change type="bugfix"> 1181<para> 1182header fields values with non-ASCII bytes might be handled incorrectly 1183in Python 3 module. 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 1193 unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 1194 unit-perl 1195 unit-ruby" 1196 ver="1.3" rev="1" 1197 date="2018-07-13" time="18:00:00 +0300" 1198 packager="Konstantin Pavlov <thresh@nginx.com>"> 1199 1200<change> 1201<para> 1202NGINX Unit updated to 1.3. 1203</para> 1204</change> 1205 1206</changes> 1207 1208 1209<changes apply="unit" ver="1.3" rev="1" 1210 date="2018-07-13" time="18:00:00 +0300" 1211 packager="Konstantin Pavlov <thresh@nginx.com>"> 1212 1213<change type="change"> 1214<para> 1215UTF-8 characters are now allowed in request header field values. 1216</para> 1217</change> 1218 1219<change type="feature"> 1220<para> 1221configuration of the request body size limit. 1222</para> 1223</change> 1224 1225<change type="feature"> 1226<para> 1227configuration of various HTTP connection timeouts. 1228</para> 1229</change> 1230 1231<change type="feature"> 1232<para> 1233Ruby module now automatically uses Bundler where possible. 1234</para> 1235</change> 1236 1237<change type="feature"> 1238<para> 1239http.Flusher interface in Go module. 1240</para> 1241</change> 1242 1243<change type="bugfix"> 1244<para> 1245various issues in HTTP connection errors handling. 1246</para> 1247</change> 1248 1249<change type="bugfix"> 1250<para> 1251requests with body data might be handled incorrectly in PHP module. 1252</para> 1253</change> 1254 1255<change type="bugfix"> 1256<para> 1257individual PHP configuration options specified via control API were reset 1258to previous values after the first request in application process. 1259</para> 1260</change> 1261 1262</changes> 1263 1264 1265<changes apply="unit-php 1266 unit-python unit-python2.7 1267 unit-python3.4 unit-python3.5 unit-python3.6 1268 unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 1269 unit-perl 1270 unit-ruby" 1271 ver="1.2" rev="1" 1272 date="2018-06-07" time="18:00:00 +0300" 1273 packager="Andrei Belov <defan@nginx.com>"> 1274 1275<change> 1276<para> 1277NGINX Unit updated to 1.2. 1278</para> 1279</change> 1280 1281</changes> 1282 1283 1284<changes apply="unit" ver="1.2" rev="1" 1285 date="2018-06-07" time="18:00:00 +0300" 1286 packager="Andrei Belov <defan@nginx.com>"> 1287 1288<change type="feature"> 1289<para> 1290configuration of environment variables for application processes. 1291</para> 1292</change> 1293 1294<change type="feature"> 1295<para> 1296customization of php.ini path. 1297</para> 1298</change> 1299 1300<change type="feature"> 1301<para> 1302setting of individual PHP configuration options. 1303</para> 1304</change> 1305 1306<change type="feature"> 1307<para> 1308configuration of execution arguments for Go applications. 1309</para> 1310</change> 1311 1312<change type="bugfix"> 1313<para> 1314keep-alive connections might hang after reconfiguration. 1315</para> 1316</change> 1317 1318</changes> 1319 1320 1321<changes apply="unit-go1.10" ver="1.1" rev="1" 1322 date="2018-05-14" time="18:00:00 +0300" 1323 packager="Andrei Belov <defan@nginx.com>"> 1324 1325<change> 1326<para> 1327Initial release of Go 1.10 module for NGINX Unit. 1328</para> 1329</change> 1330 1331</changes> 1332 1333 1334<changes apply="unit-php 1335 unit-python unit-python2.7 1336 unit-python3.4 unit-python3.5 unit-python3.6 1337 unit-go unit-go1.7 unit-go1.8 unit-go1.9 1338 unit-perl 1339 unit-ruby" 1340 ver="1.1" rev="1" 1341 date="2018-04-26" time="18:00:00 +0300" 1342 packager="Andrei Belov <defan@nginx.com>"> 1343 1344<change> 1345<para> 1346NGINX Unit updated to 1.1. 1347</para> 1348</change> 1349 1350</changes> 1351 1352 1353<changes apply="unit" ver="1.1" rev="1" 1354 date="2018-04-26" time="18:00:00 +0300" 1355 packager="Andrei Belov <defan@nginx.com>"> 1356 1357<change type="bugfix"> 1358<para> 1359Python applications that use the write() callable did not work. 1360</para> 1361</change> 1362 1363<change type="bugfix"> 1364<para> 1365virtual environments created with Python 3.3 or above might not have worked. 1366</para> 1367</change> 1368 1369<change type="bugfix"> 1370<para> 1371the request.Read() function in Go applications did not produce EOF 1372when the whole body was read. 1373</para> 1374</change> 1375 1376<change type="bugfix"> 1377<para> 1378a segmentation fault might have occurred while access log reopening. 1379</para> 1380</change> 1381 1382<change type="bugfix"> 1383<para> 1384in parsing of IPv6 control socket addresses. 1385</para> 1386</change> 1387 1388<change type="bugfix"> 1389<para> 1390loading of application modules was broken on OpenBSD. 1391</para> 1392</change> 1393 1394<change type="bugfix"> 1395<para> 1396a segmentation fault might have occurred when there were two modules 1397with the same type and version; the bug had appeared in 1.0. 1398</para> 1399</change> 1400 1401<change type="bugfix"> 1402<para> 1403alerts "freed pointer points to non-freeble page" might have appeared in log 1404on 32-bit platforms. 1405</para> 1406</change> 1407 1408</changes> 1409 1410 1411<changes apply="unit-php 1412 unit-python unit-python2.7 1413 unit-python3.4 unit-python3.5 unit-python3.6 1414 unit-go unit-go1.7 unit-go1.8 unit-go1.9 1415 unit-perl 1416 unit-ruby" 1417 ver="1.0" rev="1" 1418 date="2018-04-12" time="18:00:00 +0300" 1419 packager="Andrei Belov <defan@nginx.com>"> 1420 1421<change> 1422<para> 1423NGINX Unit updated to 1.0. 1424</para> 1425</change> 1426 1427</changes> 1428 1429 1430<changes apply="unit" ver="1.0" rev="1" 1431 date="2018-04-12" time="18:00:00 +0300" 1432 packager="Andrei Belov <defan@nginx.com>"> 1433 1434<change type="change"> 1435<para> 1436configuration object moved into "/config/" path. 1437</para> 1438</change> 1439 1440<change type="feature"> 1441<para> 1442basic access logging. 1443</para> 1444</change> 1445 1446<change type="bugfix"> 1447<para> 1448503 error occurred if Go application did not write response header or body. 1449</para> 1450</change> 1451 1452<change type="bugfix"> 1453<para> 1454Ruby applications that use encoding conversions might not have worked. 1455</para> 1456</change> 1457 1458<change type="bugfix"> 1459<para> 1460various stability issues. 1461</para> 1462</change> 1463 1464</changes> 1465 1466 1467<changes apply="unit-php 1468 unit-python unit-python2.7 1469 unit-python3.4 unit-python3.5 unit-python3.6 1470 unit-go unit-go1.7 unit-go1.8 unit-go1.9 1471 unit-perl" 1472 ver="0.7" rev="1" 1473 date="2018-03-22" time="18:00:00 +0300" 1474 packager="Andrei Belov <defan@nginx.com>"> 1475 1476<change> 1477<para> 1478NGINX Unit updated to 0.7. 1479</para> 1480</change> 1481 1482</changes> 1483 1484 1485<changes apply="unit-ruby" ver="0.7" rev="1" 1486 date="2018-04-02" time="15:40:00 +0300" 1487 packager="Andrei Belov <defan@nginx.com>"> 1488 1489<change> 1490<para> 1491Initial release of Ruby module for NGINX Unit. 1492</para> 1493</change> 1494 1495</changes> 1496 1497 1498<changes apply="unit" ver="0.7" rev="1" 1499 date="2018-03-22" time="18:00:00 +0300" 1500 packager="Andrei Belov <defan@nginx.com>"> 1501 1502<change type="feature"> 1503<para> 1504Ruby application module. 1505</para> 1506</change> 1507 1508<change type="bugfix"> 1509<para> 1510in discovering modules. 1511</para> 1512</change> 1513 1514<change type="bugfix"> 1515<para> 1516various race conditions on reconfiguration and during shutting down. 1517</para> 1518</change> 1519 1520<change type="bugfix"> 1521<para> 1522tabs and trailing spaces were not allowed in header fields values. 1523</para> 1524</change> 1525 1526<change type="bugfix"> 1527<para> 1528a segmentation fault occurred in Python module if start_response() was called 1529outside of WSGI callable. 1530</para> 1531</change> 1532 1533<change type="bugfix"> 1534<para> 1535a segmentation fault might have occurred in PHP module if there was an error 1536while initialization. 1537</para> 1538</change> 1539 1540</changes> 1541 1542 1543<changes apply="unit-php 1544 unit-python unit-python2.7 1545 unit-python3.4 unit-python3.5 unit-python3.6 1546 unit-go unit-go1.7 unit-go1.8 unit-go1.9 1547 unit-perl" 1548 ver="0.6" rev="1" 1549 date="2018-02-09" time="18:00:00 +0300" 1550 packager="Andrei Belov <defan@nginx.com>"> 1551 1552<change> 1553<para> 1554NGINX Unit updated to 0.6. 1555</para> 1556</change> 1557 1558</changes> 1559 1560 1561<changes apply="unit" ver="0.6" rev="1" 1562 date="2018-02-09" time="18:00:00 +0300" 1563 packager="Andrei Belov <defan@nginx.com>"> 1564 1565<change type="bugfix"> 1566<para> 1567the main process died when the "type" application option contained version; 1568the bug had appeared in 0.5. 1569</para> 1570</change> 1571 1572</changes> 1573 1574 1575<changes apply="unit-php 1576 unit-python unit-python2.7 1577 unit-python3.4 unit-python3.5 unit-python3.6 1578 unit-go unit-go1.7 unit-go1.8 unit-go1.9" 1579 ver="0.5" rev="1" 1580 date="2018-02-08" time="18:00:00 +0300" 1581 packager="Andrei Belov <defan@nginx.com>"> 1582 1583<change> 1584<para> 1585NGINX Unit updated to 0.5. 1586</para> 1587</change> 1588 1589</changes> 1590 1591 1592<changes apply="unit-perl" ver="0.5" rev="1" 1593 date="2018-02-08" time="18:00:00 +0300" 1594 packager="Andrei Belov <defan@nginx.com>"> 1595 1596<change> 1597<para> 1598Initial release of Perl module for NGINX Unit. 1599</para> 1600</change> 1601 1602</changes> 1603 1604 1605<changes apply="unit" ver="0.5" rev="1" 1606 date="2018-02-08" time="18:00:00 +0300" 1607 packager="Andrei Belov <defan@nginx.com>"> 1608 1609<change type="change"> 1610<para> 1611the "workers" application option was removed, the "processes" 1612application option should be used instead. 1613</para> 1614</change> 1615 1616<change type="feature"> 1617<para> 1618the "processes" application option with prefork and dynamic 1619process management support. 1620</para> 1621</change> 1622 1623<change type="feature"> 1624<para> 1625Perl application module. 1626</para> 1627</change> 1628 1629<change type="bugfix"> 1630<para> 1631in reading client request body; the bug had appeared in 0.3. 1632</para> 1633</change> 1634 1635<change type="bugfix"> 1636<para> 1637some Python applications might not have worked due to missing 1638"wsgi.errors" environ variable. 1639</para> 1640</change> 1641 1642<change type="bugfix"> 1643<para> 1644HTTP chunked responses might be encoded incorrectly on 32-bit 1645platforms. 1646</para> 1647</change> 1648 1649<change type="bugfix"> 1650<para> 1651infinite looping in HTTP parser. 1652</para> 1653</change> 1654 1655<change type="bugfix"> 1656<para> 1657segmentation fault in router. 1658</para> 1659</change> 1660 1661</changes> 1662 1663 1664<changes apply="unit-php 1665 unit-python unit-python2.7 1666 unit-python3.4 unit-python3.5 unit-python3.6 1667 unit-go unit-go1.7 unit-go1.8 unit-go1.9" 1668 ver="0.4" rev="1" 1669 date="2018-01-15" time="18:00:00 +0300" 1670 packager="Andrei Belov <defan@nginx.com>"> 1671 1672<change> 1673<para> 1674NGINX Unit updated to 0.4. 1675</para> 1676</change> 1677 1678</changes> 1679 1680 1681<changes apply="unit" ver="0.4" rev="1" 1682 date="2018-01-15" time="18:00:00 +0300" 1683 packager="Andrei Belov <defan@nginx.com>"> 1684 1685<change type="feature"> 1686<para> 1687compatibility with DragonFly BSD. 1688</para> 1689</change> 1690 1691<change type="feature"> 1692<para> 1693"configure php --lib-static" option. 1694</para> 1695</change> 1696 1697<change type="bugfix"> 1698<para> 1699HTTP request body was not passed to application; 1700the bug had appeared in 0.3. 1701</para> 1702</change> 1703 1704<change type="bugfix"> 1705<para> 1706HTTP large header buffers allocation and deallocation fixed; 1707the bug had appeared in 0.3. 1708</para> 1709</change> 1710 1711<change type="bugfix"> 1712<para> 1713some PHP applications might not have worked with relative "root" path. 1714</para> 1715</change> 1716 1717</changes> 1718 1719 1720<changes apply="unit-go1.9" ver="0.3" rev="1" 1721 date="2017-12-28" time="18:00:00 +0300" 1722 packager="Andrei Belov <defan@nginx.com>"> 1723 1724<change> 1725<para> 1726Initial release of Go 1.9 module for NGINX Unit. 1727</para> 1728</change> 1729 1730</changes> 1731 1732 1733<changes apply="unit-python3.6" ver="0.3" rev="1" 1734 date="2017-12-28" time="18:00:00 +0300" 1735 packager="Andrei Belov <defan@nginx.com>"> 1736 1737<change> 1738<para> 1739Initial release of Python 3.6 module for NGINX Unit. 1740</para> 1741</change> 1742 1743</changes> 1744 1745 1746<changes apply="unit-php 1747 unit-python unit-python2.7 unit-python3.4 unit-python3.5 1748 unit-go unit-go1.7 unit-go1.8" 1749 ver="0.3" rev="1" 1750 date="2017-12-28" time="18:00:00 +0300" 1751 packager="Andrei Belov <defan@nginx.com>"> 1752 1753<change> 1754<para> 1755NGINX Unit updated to 0.3. 1756</para> 1757</change> 1758 1759</changes> 1760 1761 1762<changes apply="unit" ver="0.3" rev="1" 1763 date="2017-12-28" time="18:00:00 +0300" 1764 packager="Andrei Belov <defan@nginx.com>"> 1765 1766<change type="change"> 1767<para> 1768the Go package name changed to "nginx/unit". 1769</para> 1770</change> 1771 1772<change type="change"> 1773<para> 1774in the "limits.timeout" application option: application start time and 1775time in queue now are not accounted. 1776</para> 1777</change> 1778 1779<change type="feature"> 1780<para> 1781the "limits.requests" application option. 1782</para> 1783</change> 1784 1785<change type="feature"> 1786<para> 1787application request processing latency optimization. 1788</para> 1789</change> 1790 1791<change type="feature"> 1792<para> 1793HTTP keep-alive connections support. 1794</para> 1795</change> 1796 1797<change type="feature"> 1798<para> 1799the "home" Python virtual environment configuration option. 1800</para> 1801</change> 1802 1803<change type="feature"> 1804<para> 1805Python atexit hook support. 1806</para> 1807</change> 1808 1809<change type="feature"> 1810<para> 1811various Go package improvements. 1812</para> 1813</change> 1814 1815<change type="bugfix"> 1816<para> 1817various crashes fixed. 1818</para> 1819</change> 1820 1821</changes> 1822 1823 1824<changes apply="unit-go" ver="0.2" rev="1" 1825 date="2017-10-19" time="18:00:00 +0300" 1826 packager="Andrei Belov <defan@nginx.com>"> 1827 1828<change> 1829<para> 1830Initial release of Go module for NGINX Unit. 1831</para> 1832</change> 1833 1834</changes> 1835 1836 1837<changes apply="unit-go1.7" ver="0.2" rev="1" 1838 date="2017-10-19" time="18:00:00 +0300" 1839 packager="Andrei Belov <defan@nginx.com>"> 1840 1841<change> 1842<para> 1843Initial release of Go 1.7 module for NGINX Unit. 1844</para> 1845</change> 1846 1847</changes> 1848 1849 1850<changes apply="unit-go1.8" ver="0.2" rev="1" 1851 date="2017-10-19" time="18:00:00 +0300" 1852 packager="Andrei Belov <defan@nginx.com>"> 1853 1854<change> 1855<para> 1856Initial release of Go 1.8 module for NGINX Unit. 1857</para> 1858</change> 1859 1860</changes> 1861 1862 1863<changes apply="unit-python" ver="0.2" rev="1" 1864 date="2017-10-19" time="18:00:00 +0300" 1865 packager="Andrei Belov <defan@nginx.com>"> 1866 1867<change> 1868<para> 1869Initial release of Python module for NGINX Unit. 1870</para> 1871</change> 1872 1873</changes> 1874 1875 1876<changes apply="unit-python2.7" ver="0.2" rev="1" 1877 date="2017-10-19" time="18:00:00 +0300" 1878 packager="Andrei Belov <defan@nginx.com>"> 1879 1880<change> 1881<para> 1882Initial release of Python 2.7 module for NGINX Unit. 1883</para> 1884</change> 1885 1886</changes> 1887 1888 1889<changes apply="unit-python3.4" ver="0.2" rev="1" 1890 date="2017-10-19" time="18:00:00 +0300" 1891 packager="Andrei Belov <defan@nginx.com>"> 1892 1893<change> 1894<para> 1895Initial release of Python 3.4 module for NGINX Unit. 1896</para> 1897</change> 1898 1899</changes> 1900 1901 1902<changes apply="unit-python3.5" ver="0.2" rev="1" 1903 date="2017-10-19" time="18:00:00 +0300" 1904 packager="Andrei Belov <defan@nginx.com>"> 1905 1906<change> 1907<para> 1908Initial release of Python 3.5 module for NGINX Unit. 1909</para> 1910</change> 1911 1912</changes> 1913 1914 1915<changes apply="unit-php" ver="0.2" rev="1" 1916 date="2017-10-19" time="18:00:00 +0300" 1917 packager="Andrei Belov <defan@nginx.com>"> 1918 1919<change> 1920<para> 1921Initial release of PHP module for NGINX Unit. 1922</para> 1923</change> 1924 1925</changes> 1926 1927 1928<changes apply="unit" ver="0.2" rev="1" 1929 date="2017-10-19" time="18:00:00 +0300" 1930 packager="Andrei Belov <defan@nginx.com>"> 1931 1932<change type="feature"> 1933<para> 1934configuration persistence. 1935</para> 1936</change> 1937 1938<change type="feature"> 1939<para> 1940improved handling of configuration errors. 1941</para> 1942</change> 1943 1944<change type="feature"> 1945<para> 1946application "timeout" property. 1947</para> 1948</change> 1949 1950<change type="bugfix"> 1951<para> 1952POST request for PHP were handled incorrectly. 1953</para> 1954</change> 1955 1956<change type="bugfix"> 1957<para> 1958the router exited abnormally if all listeners had been deleted. 1959</para> 1960</change> 1961 1962<change type="bugfix"> 1963<para> 1964the router crashed under load. 1965</para> 1966</change> 1967 1968<change type="bugfix"> 1969<para> 1970memory leak in the router. 1971</para> 1972</change> 1973 1974</changes> 1975 1976 1977<changes apply="unit" ver="0.1" rev="1" 1978 date="2017-09-06" time="19:14:28 +0300" 1979 packager="Andrei Belov <defan@nginx.com>"> 1980 1981<change> 1982<para> 1983First public release. 1984</para> 1985</change> 1986 1987</changes> 1988 1989 1990</change_log> 1991