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