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