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