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