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