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