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