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