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