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