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