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