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