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