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