1*1722Svbart@nginx.com 2*1722Svbart@nginx.comChanges with Unit 1.21.0 19 Nov 2020 3*1722Svbart@nginx.com 4*1722Svbart@nginx.com *) Change: procfs is mounted by default for all languages when "rootfs" 5*1722Svbart@nginx.com isolation is used. 6*1722Svbart@nginx.com 7*1722Svbart@nginx.com *) Change: any characters valid according to RFC 7230 are now allowed in 8*1722Svbart@nginx.com HTTP header field names. 9*1722Svbart@nginx.com 10*1722Svbart@nginx.com *) Change: HTTP header fields with underscores ("_") are now discarded 11*1722Svbart@nginx.com from requests by default. 12*1722Svbart@nginx.com 13*1722Svbart@nginx.com *) Feature: optional multithreaded request processing for Java, Python, 14*1722Svbart@nginx.com Perl, and Ruby apps. 15*1722Svbart@nginx.com 16*1722Svbart@nginx.com *) Feature: regular expressions in route matching patterns. 17*1722Svbart@nginx.com 18*1722Svbart@nginx.com *) Feature: compatibility with Python 3.9. 19*1722Svbart@nginx.com 20*1722Svbart@nginx.com *) Feature: the Python module now supports ASGI 2.0 legacy applications. 21*1722Svbart@nginx.com 22*1722Svbart@nginx.com *) Feature: the "protocol" option in Python applications aids choice 23*1722Svbart@nginx.com between ASGI and WSGI. 24*1722Svbart@nginx.com 25*1722Svbart@nginx.com *) Feature: the fastcgi_finish_request() PHP function that finalizes 26*1722Svbart@nginx.com request processing and continues code execution without holding onto 27*1722Svbart@nginx.com the client connection. 28*1722Svbart@nginx.com 29*1722Svbart@nginx.com *) Feature: the "discard_unsafe_fields" HTTP option that enables 30*1722Svbart@nginx.com discarding request header fields with irregular (but still valid) 31*1722Svbart@nginx.com characters in the field name. 32*1722Svbart@nginx.com 33*1722Svbart@nginx.com *) Feature: the "procfs" and "tmpfs" automount isolation options to 34*1722Svbart@nginx.com disable automatic mounting of eponymous filesystems. 35*1722Svbart@nginx.com 36*1722Svbart@nginx.com *) Bugfix: the router process could crash when running Go applications 37*1722Svbart@nginx.com under high load; the bug had appeared in 1.19.0. 38*1722Svbart@nginx.com 39*1722Svbart@nginx.com *) Bugfix: some language dependencies could remain mounted after using 40*1722Svbart@nginx.com "rootfs" isolation. 41*1722Svbart@nginx.com 42*1722Svbart@nginx.com *) Bugfix: various compatibility issues in Java applications. 43*1722Svbart@nginx.com 44*1722Svbart@nginx.com *) Bugfix: the Java module built with the musl C library couldn't run 45*1722Svbart@nginx.com applications that use "rootfs" isolation. 46*1722Svbart@nginx.com 471640Svbart@nginx.com 481640Svbart@nginx.comChanges with Unit 1.20.0 08 Oct 2020 491640Svbart@nginx.com 501640Svbart@nginx.com *) Change: the PHP module is now initialized before chrooting; this 511640Svbart@nginx.com enables loading all extensions from the host system. 521640Svbart@nginx.com 531640Svbart@nginx.com *) Change: AVIF and APNG image formats added to the default MIME type 541640Svbart@nginx.com list. 551640Svbart@nginx.com 561643Svbart@nginx.com *) Change: functional tests migrated to the pytest framework. 571643Svbart@nginx.com 581640Svbart@nginx.com *) Feature: the Python module now fully supports applications that use 591640Svbart@nginx.com the ASGI 3.0 server interface. 601640Svbart@nginx.com 611640Svbart@nginx.com *) Feature: the Python module now has a built-in WebSocket server 621640Svbart@nginx.com implementation for applications, compatible with the HTTP & WebSocket 631640Svbart@nginx.com ASGI Message Format 2.1 specification. 641640Svbart@nginx.com 651640Svbart@nginx.com *) Feature: automatic mounting of an isolated "/tmp" file system into 661640Svbart@nginx.com chrooted application environments. 671640Svbart@nginx.com 681640Svbart@nginx.com *) Feature: the $host variable contains a normalized "Host" request 691640Svbart@nginx.com value. 701640Svbart@nginx.com 711640Svbart@nginx.com *) Feature: the "callable" option sets Python application callable 721640Svbart@nginx.com names. 731640Svbart@nginx.com 741640Svbart@nginx.com *) Feature: compatibility with PHP 8 RC 1. Thanks to Remi Collet. 751640Svbart@nginx.com 761640Svbart@nginx.com *) Feature: the "automount" option in the "isolation" object allows to 771640Svbart@nginx.com turn off the automatic mounting of language module dependencies. 781640Svbart@nginx.com 791640Svbart@nginx.com *) Bugfix: "pass"-ing requests to upstreams from a route was broken; the 801640Svbart@nginx.com bug had appeared in 1.19.0. Thanks to 洪志道 (Hong Zhi Dao) for 811640Svbart@nginx.com discovering and fixing it. 821640Svbart@nginx.com 831640Svbart@nginx.com *) Bugfix: the router process could crash during reconfiguration. 841640Svbart@nginx.com 851640Svbart@nginx.com *) Bugfix: a memory leak occurring in the router process; the bug had 861640Svbart@nginx.com appeared in 1.18.0. 871640Svbart@nginx.com 881640Svbart@nginx.com *) Bugfix: the "!" (non-empty) pattern was matched incorrectly; the bug 891640Svbart@nginx.com had appeared in 1.19.0. 901640Svbart@nginx.com 911640Svbart@nginx.com *) Bugfix: fixed building on platforms without sendfile() support, 921640Svbart@nginx.com notably NetBSD; the bug had appeared in 1.16.0. 931640Svbart@nginx.com 941570Svbart@nginx.com 951570Svbart@nginx.comChanges with Unit 1.19.0 13 Aug 2020 961570Svbart@nginx.com 971570Svbart@nginx.com *) Feature: reworked IPC between the router process and the applications 981570Svbart@nginx.com to lower latencies, increase performance, and improve scalability. 991570Svbart@nginx.com 1001570Svbart@nginx.com *) Feature: support for an arbitrary number of wildcards in route 1011570Svbart@nginx.com matching patterns. 1021570Svbart@nginx.com 1031570Svbart@nginx.com *) Feature: chunked transfer encoding in proxy responses. 1041570Svbart@nginx.com 1051570Svbart@nginx.com *) Feature: basic variables support in the "pass" option. 1061570Svbart@nginx.com 1071570Svbart@nginx.com *) Feature: compatibility with PHP 8 Beta 1. Thanks to Remi Collet. 1081570Svbart@nginx.com 1091570Svbart@nginx.com *) Bugfix: the router process could crash while passing requests to an 1101570Svbart@nginx.com application under high load. 1111570Svbart@nginx.com 1121570Svbart@nginx.com *) Bugfix: a number of language modules failed to build on some systems; 1131570Svbart@nginx.com the bug had appeared in 1.18.0. 1141570Svbart@nginx.com 1151570Svbart@nginx.com *) Bugfix: time in error log messages from PHP applications could lag. 1161570Svbart@nginx.com 1171570Svbart@nginx.com *) Bugfix: reconfiguration requests could hang if an application had 1181570Svbart@nginx.com failed to start; the bug had appeared in 1.18.0. 1191570Svbart@nginx.com 1201570Svbart@nginx.com *) Bugfix: memory leak during reconfiguration. 1211570Svbart@nginx.com 1221570Svbart@nginx.com *) Bugfix: the daemon didn't start without language modules; the bug had 1231570Svbart@nginx.com appeared in 1.18.0. 1241570Svbart@nginx.com 1251570Svbart@nginx.com *) Bugfix: the router process could crash at exit. 1261570Svbart@nginx.com 1271570Svbart@nginx.com *) Bugfix: Node.js applications could crash at exit. 1281570Svbart@nginx.com 1291570Svbart@nginx.com *) Bugfix: the Ruby module could be linked against a wrong library 1301570Svbart@nginx.com version. 1311570Svbart@nginx.com 1321491Svbart@nginx.com 1331491Svbart@nginx.comChanges with Unit 1.18.0 28 May 2020 1341491Svbart@nginx.com 1351491Svbart@nginx.com *) Feature: the "rootfs" isolation option for changing root filesystem 1361491Svbart@nginx.com for an application. 1371491Svbart@nginx.com 1381491Svbart@nginx.com *) Feature: multiple "targets" in PHP applications. 1391491Svbart@nginx.com 1401491Svbart@nginx.com *) Feature: support for percent-encoding in the "uri" and "arguments" 1411491Svbart@nginx.com matching options and in the "pass" option. 1421491Svbart@nginx.com 1431460Svbart@nginx.com 1441460Svbart@nginx.comChanges with Unit 1.17.0 16 Apr 2020 1451460Svbart@nginx.com 1461460Svbart@nginx.com *) Feature: a "return" action with optional "location" for immediate 1471460Svbart@nginx.com responses and external redirection. 1481460Svbart@nginx.com 1491460Svbart@nginx.com *) Feature: fractional weights support for upstream servers. 1501460Svbart@nginx.com 1511460Svbart@nginx.com *) Bugfix: accidental 502 "Bad Gateway" errors might have occurred in 1521460Svbart@nginx.com applications under high load. 1531460Svbart@nginx.com 1541460Svbart@nginx.com *) Bugfix: memory leak in the router; the bug had appeared in 1.13.0. 1551460Svbart@nginx.com 1561460Svbart@nginx.com *) Bugfix: segmentation fault might have occurred in the router process 1571460Svbart@nginx.com when reaching open connections limit. 1581460Svbart@nginx.com 1591460Svbart@nginx.com *) Bugfix: "close() failed (9: Bad file descriptor)" alerts might have 1601460Svbart@nginx.com appeared in the log while processing large request bodies; the bug 1611460Svbart@nginx.com had appeared in 1.16.0. 1621460Svbart@nginx.com 1631460Svbart@nginx.com *) Bugfix: existing application processes didn't reopen the log file. 1641460Svbart@nginx.com 1651460Svbart@nginx.com *) Bugfix: incompatibility with some Node.js applications. 1661460Svbart@nginx.com 1671460Svbart@nginx.com *) Bugfix: broken build on DragonFly BSD; the bug had appeared in 1681460Svbart@nginx.com 1.16.0. 1691460Svbart@nginx.com 1701404Svbart@nginx.com 1711404Svbart@nginx.comChanges with Unit 1.16.0 12 Mar 2020 1721404Svbart@nginx.com 1731404Svbart@nginx.com *) Feature: basic load-balancing support with round-robin. 1741404Svbart@nginx.com 1751404Svbart@nginx.com *) Feature: a "fallback" option that performs an alternative action if a 1761404Svbart@nginx.com request can't be served from the "share" directory. 1771404Svbart@nginx.com 1781404Svbart@nginx.com *) Feature: reduced memory consumption by dumping large request bodies 1791404Svbart@nginx.com to disk. 1801404Svbart@nginx.com 1811404Svbart@nginx.com *) Feature: stripping UTF-8 BOM and JavaScript-style comments from 1821404Svbart@nginx.com uploaded JSON. 1831404Svbart@nginx.com 1841404Svbart@nginx.com *) Bugfix: negative address matching in router might work improperly in 1851404Svbart@nginx.com combination with non-negative patterns. 1861404Svbart@nginx.com 1871404Svbart@nginx.com *) Bugfix: Java Spring applications failed to run; the bug had appeared 1881404Svbart@nginx.com in 1.10.0. 1891404Svbart@nginx.com 1901404Svbart@nginx.com *) Bugfix: PHP 7.4 was broken if it was built with thread safety 1911404Svbart@nginx.com enabled. 1921404Svbart@nginx.com 1931404Svbart@nginx.com *) Bugfix: compatibility issues with some Python applications. 1941404Svbart@nginx.com 1951357Svbart@nginx.com 1961357Svbart@nginx.comChanges with Unit 1.15.0 06 Feb 2020 1971357Svbart@nginx.com 1981357Svbart@nginx.com *) Change: extensions of dynamically requested PHP scripts were 1991357Svbart@nginx.com restricted to ".php". 2001357Svbart@nginx.com 2011357Svbart@nginx.com *) Feature: compatibility with Ruby 2.7. 2021357Svbart@nginx.com 2031357Svbart@nginx.com *) Bugfix: segmentation fault might have occurred in the router process 2041357Svbart@nginx.com with multiple application processes under load; the bug had appeared 2051357Svbart@nginx.com in 1.14.0. 2061357Svbart@nginx.com 2071357Svbart@nginx.com *) Bugfix: receiving request body over TLS connection might have 2081357Svbart@nginx.com stalled. 2091357Svbart@nginx.com 2101330Svbart@nginx.com 2111330Svbart@nginx.comChanges with Unit 1.14.0 26 Dec 2019 2121330Svbart@nginx.com 2131330Svbart@nginx.com *) Change: the Go package import name changed to "unit.nginx.org/go". 2141330Svbart@nginx.com 2151330Svbart@nginx.com *) Change: Go package now links to libunit instead of including library 2161330Svbart@nginx.com sources. 2171330Svbart@nginx.com 2181330Svbart@nginx.com *) Feature: ability to change user and group for isolated applications 2191330Svbart@nginx.com when Unit daemon runs as an unprivileged user. 2201330Svbart@nginx.com 2211330Svbart@nginx.com *) Feature: request routing by source and destination addresses and 2221330Svbart@nginx.com ports. 2231330Svbart@nginx.com 2241330Svbart@nginx.com *) Bugfix: memory bloat on large responses. 2251330Svbart@nginx.com 2261284Svbart@nginx.com 2271284Svbart@nginx.comChanges with Unit 1.13.0 14 Nov 2019 2281284Svbart@nginx.com 2291284Svbart@nginx.com *) Feature: basic support for HTTP reverse proxying. 2301284Svbart@nginx.com 2311284Svbart@nginx.com *) Feature: compatibility with Python 3.8. 2321284Svbart@nginx.com 2331284Svbart@nginx.com *) Bugfix: memory leak in Python application processes when the close 2341284Svbart@nginx.com handler was used. 2351284Svbart@nginx.com 2361284Svbart@nginx.com *) Bugfix: threads in Python applications might not work correctly. 2371284Svbart@nginx.com 2381284Svbart@nginx.com *) Bugfix: Ruby on Rails applications might not work on Ruby 2.6. 2391284Svbart@nginx.com 2401284Svbart@nginx.com *) Bugfix: backtraces for uncaught exceptions in Python 3 might be 2411284Svbart@nginx.com logged with significant delays. 2421284Svbart@nginx.com 2431284Svbart@nginx.com *) Bugfix: explicit setting a namespaces isolation option to false might 2441284Svbart@nginx.com have enabled it. 2451284Svbart@nginx.com 2461222Svbart@nginx.com 2471222Svbart@nginx.comChanges with Unit 1.12.0 03 Oct 2019 2481222Svbart@nginx.com 2491222Svbart@nginx.com *) Feature: compatibility with PHP 7.4. 2501222Svbart@nginx.com 2511222Svbart@nginx.com *) Bugfix: descriptors leak on process creation; the bug had appeared in 2521222Svbart@nginx.com 1.11.0. 2531222Svbart@nginx.com 2541222Svbart@nginx.com *) Bugfix: TLS connection might be closed prematurely while sending 2551222Svbart@nginx.com response. 2561222Svbart@nginx.com 2571222Svbart@nginx.com *) Bugfix: segmentation fault might have occurred if an irregular file 2581222Svbart@nginx.com was requested. 2591222Svbart@nginx.com 2601185Svbart@nginx.com 2611185Svbart@nginx.comChanges with Unit 1.11.0 19 Sep 2019 2621185Svbart@nginx.com 2631185Svbart@nginx.com *) Feature: basic support for serving static files. 2641185Svbart@nginx.com 2651185Svbart@nginx.com *) Feature: isolation of application processes with Linux namespaces. 2661185Svbart@nginx.com 2671185Svbart@nginx.com *) Feature: built-in WebSocket server implementation for Java Servlet 2681185Svbart@nginx.com Containers. 2691185Svbart@nginx.com 2701185Svbart@nginx.com *) Feature: direct addressing of API configuration options containing 2711185Svbart@nginx.com slashes "/" using URI encoding (%2F). 2721185Svbart@nginx.com 2731185Svbart@nginx.com *) Bugfix: segmentation fault might have occurred in Go applications 2741185Svbart@nginx.com under high load. 2751185Svbart@nginx.com 2761185Svbart@nginx.com *) Bugfix: WebSocket support was broken if Unit was built with some 2771185Svbart@nginx.com linkers other than GNU ld (e.g. gold or LLD). 2781185Svbart@nginx.com 2791134Svbart@nginx.com 2801134Svbart@nginx.comChanges with Unit 1.10.0 22 Aug 2019 2811134Svbart@nginx.com 2821134Svbart@nginx.com *) Change: matching of cookies in routes made case sensitive. 2831134Svbart@nginx.com 2841134Svbart@nginx.com *) Change: decreased log level of common errors when clients close 2851134Svbart@nginx.com connections. 2861134Svbart@nginx.com 2871134Svbart@nginx.com *) Change: removed the Perl module's "--include=" ./configure option. 2881134Svbart@nginx.com 2891134Svbart@nginx.com *) Feature: built-in WebSocket server implementation for Node.js module. 2901134Svbart@nginx.com 2911134Svbart@nginx.com *) Feature: splitting PATH_INFO from request URI in PHP module. 2921134Svbart@nginx.com 2931134Svbart@nginx.com *) Feature: request routing by scheme (HTTP or HTTPS). 2941134Svbart@nginx.com 2951134Svbart@nginx.com *) Feature: support for multipart requests body in Java module. 2961134Svbart@nginx.com 2971134Svbart@nginx.com *) Feature: improved API compatibility with Node.js 11.10 or later. 2981134Svbart@nginx.com 2991134Svbart@nginx.com *) Bugfix: reconfiguration failed if "listeners" or "applications" 3001134Svbart@nginx.com objects were missing. 3011134Svbart@nginx.com 3021134Svbart@nginx.com *) Bugfix: applying a large configuration might have failed. 3031134Svbart@nginx.com 3041069Svbart@nginx.com 3051069Svbart@nginx.comChanges with Unit 1.9.0 30 May 2019 3061069Svbart@nginx.com 3071069Svbart@nginx.com *) Feature: request routing by arguments, headers, and cookies. 3081069Svbart@nginx.com 3091069Svbart@nginx.com *) Feature: route matching patterns allow a wildcard in the middle. 3101069Svbart@nginx.com 3111069Svbart@nginx.com *) Feature: POST operation for appending elements to arrays in 3121069Svbart@nginx.com configuration. 3131069Svbart@nginx.com 3141069Svbart@nginx.com *) Feature: support for changing credentials using CAP_SETUID and 3151069Svbart@nginx.com CAP_SETGID capabilities on Linux without running main process as 3161069Svbart@nginx.com privileged user. 3171069Svbart@nginx.com 3181069Svbart@nginx.com *) Bugfix: memory leak in the router process might have happened when a 3191069Svbart@nginx.com client prematurely closed the connection. 3201069Svbart@nginx.com 3211069Svbart@nginx.com *) Bugfix: applying a large configuration might have failed. 3221069Svbart@nginx.com 3231069Svbart@nginx.com *) Bugfix: PUT and DELETE operations on array elements in configuration 3241069Svbart@nginx.com did not work. 3251069Svbart@nginx.com 3261069Svbart@nginx.com *) Bugfix: request schema in applications did not reflect TLS 3271069Svbart@nginx.com connections. 3281069Svbart@nginx.com 3291069Svbart@nginx.com *) Bugfix: restored compatibility with Node.js applications that use 3301069Svbart@nginx.com ServerResponse._implicitHeader() function; the bug had appeared in 3311069Svbart@nginx.com 1.7. 3321069Svbart@nginx.com 3331069Svbart@nginx.com *) Bugfix: various compatibility issues with Node.js applications. 3341069Svbart@nginx.com 335991Svbart@nginx.com 336991Svbart@nginx.comChanges with Unit 1.8.0 01 Mar 2019 337991Svbart@nginx.com 338991Svbart@nginx.com *) Change: now three numbers are always used for versioning: major, 339991Svbart@nginx.com minor, and patch versions. 340991Svbart@nginx.com 341991Svbart@nginx.com *) Change: now QUERY_STRING is always defined even if the request does 342991Svbart@nginx.com not include the query component. 343991Svbart@nginx.com 344991Svbart@nginx.com *) Feature: basic internal request routing by Host, URI, and method. 345991Svbart@nginx.com 346991Svbart@nginx.com *) Feature: experimental support for Java Servlet Containers. 347991Svbart@nginx.com 348991Svbart@nginx.com *) Bugfix: segmentation fault might have occurred in the router process. 349991Svbart@nginx.com 350991Svbart@nginx.com *) Bugfix: various potential memory leaks. 351991Svbart@nginx.com 352991Svbart@nginx.com *) Bugfix: TLS connections might have stalled. 353991Svbart@nginx.com 354991Svbart@nginx.com *) Bugfix: some Perl applications might have failed to send the response 355991Svbart@nginx.com body. 356991Svbart@nginx.com 357991Svbart@nginx.com *) Bugfix: some compilers with specific flags might have produced 358991Svbart@nginx.com non-functioning builds; the bug had appeared in 1.5. 359991Svbart@nginx.com 360991Svbart@nginx.com *) Bugfix: Node.js package had wrong version number when installed from 361991Svbart@nginx.com sources. 362991Svbart@nginx.com 363926Svbart@nginx.com 364926Svbart@nginx.comChanges with Unit 1.7.1 07 Feb 2019 365926Svbart@nginx.com 366926Svbart@nginx.com *) Security: a heap memory buffer overflow might have been caused in the 367926Svbart@nginx.com router process by a specially crafted request, potentially resulting 368926Svbart@nginx.com in a segmentation fault or other unspecified behavior 369926Svbart@nginx.com (CVE-2019-7401). 370926Svbart@nginx.com 371926Svbart@nginx.com *) Bugfix: install of Go module failed without prior building of Unit 372926Svbart@nginx.com daemon; the bug had appeared in 1.7. 373926Svbart@nginx.com 374886Svbart@nginx.com 375886Svbart@nginx.comChanges with Unit 1.7 20 Dec 2018 376886Svbart@nginx.com 377886Svbart@nginx.com *) Change: now rpath is set in Ruby module only if the library was not 378886Svbart@nginx.com found in default search paths; this allows to meet packaging 379886Svbart@nginx.com restrictions on some systems. 380886Svbart@nginx.com 381886Svbart@nginx.com *) Bugfix: "disable_functions" and "disable_classes" PHP options set via 382886Svbart@nginx.com Control API did not work. 383886Svbart@nginx.com 384886Svbart@nginx.com *) Bugfix: Promises on request data in Node.js were not triggered. 385886Svbart@nginx.com 386886Svbart@nginx.com *) Bugfix: various compatibility issues with Node.js applications. 387886Svbart@nginx.com 388886Svbart@nginx.com *) Bugfix: a segmentation fault occurred in Node.js module if 389886Svbart@nginx.com application tried to read request body after request.end() was 390886Svbart@nginx.com called. 391886Svbart@nginx.com 392886Svbart@nginx.com *) Bugfix: a segmentation fault occurred in Node.js module if 393886Svbart@nginx.com application attempted to send header twice. 394886Svbart@nginx.com 395886Svbart@nginx.com *) Bugfix: names of response header fields in Node.js module were 396886Svbart@nginx.com erroneously treated as case-sensitive. 397886Svbart@nginx.com 398886Svbart@nginx.com *) Bugfix: uncatched exceptions in Node.js were not logged. 399886Svbart@nginx.com 400886Svbart@nginx.com *) Bugfix: global install of Node.js module from sources was broken on 401886Svbart@nginx.com some systems; the bug had appeared in 1.6. 402886Svbart@nginx.com 403886Svbart@nginx.com *) Bugfix: traceback for exceptions during initialization of Python 404886Svbart@nginx.com applications might not be logged. 405886Svbart@nginx.com 406886Svbart@nginx.com *) Bugfix: PHP module build failed if PHP interpreter was built with 407886Svbart@nginx.com thread safety enabled. 408886Svbart@nginx.com 409846Svbart@nginx.com 410846Svbart@nginx.comChanges with Unit 1.6 15 Nov 2018 411846Svbart@nginx.com 412846Svbart@nginx.com *) Change: "make install" now installs Node.js module as well if it was 413846Svbart@nginx.com configured. 414846Svbart@nginx.com 415846Svbart@nginx.com *) Feature: "--local" ./configure option to install Node.js module 416846Svbart@nginx.com locally. 417846Svbart@nginx.com 418846Svbart@nginx.com *) Bugfix: Node.js module might have crashed due to broken reference 419846Svbart@nginx.com counting. 420846Svbart@nginx.com 421846Svbart@nginx.com *) Bugfix: asynchronous operations in Node.js might not have worked. 422846Svbart@nginx.com 423846Svbart@nginx.com *) Bugfix: various compatibility issues with Node.js applications. 424846Svbart@nginx.com 425846Svbart@nginx.com *) Bugfix: "freed pointer is out of pool" alerts might have appeared in 426846Svbart@nginx.com log. 427846Svbart@nginx.com 428885Svbart@nginx.com *) Bugfix: module discovery did not work on 64-bit big-endian systems 429846Svbart@nginx.com like IBM/S390x. 430846Svbart@nginx.com 431820Svbart@nginx.com 432820Svbart@nginx.comChanges with Unit 1.5 25 Oct 2018 433820Svbart@nginx.com 434820Svbart@nginx.com *) Change: the "type" of application object for Go was changed to 435820Svbart@nginx.com "external". 436820Svbart@nginx.com 437820Svbart@nginx.com *) Feature: initial version of Node.js package with basic HTTP 438820Svbart@nginx.com request-response support. 439820Svbart@nginx.com 440820Svbart@nginx.com *) Feature: compatibility with LibreSSL. 441820Svbart@nginx.com 442820Svbart@nginx.com *) Feature: --libdir and --incdir ./configure options to install libunit 443820Svbart@nginx.com headers and static library. 444820Svbart@nginx.com 445820Svbart@nginx.com *) Bugfix: connection might be closed prematurely while sending 446820Svbart@nginx.com response; the bug had appeared in 1.3. 447820Svbart@nginx.com 448820Svbart@nginx.com *) Bugfix: application processes might have stopped handling requests, 449820Svbart@nginx.com producing "last message send failed: Resource temporarily 450820Svbart@nginx.com unavailable" alerts in log; the bug had appeared in 1.4. 451820Svbart@nginx.com 452885Svbart@nginx.com *) Bugfix: Go applications did not work when Unit was built with musl C 453820Svbart@nginx.com library. 454820Svbart@nginx.com 455783Svbart@nginx.com 456783Svbart@nginx.comChanges with Unit 1.4 20 Sep 2018 457783Svbart@nginx.com 458783Svbart@nginx.com *) Change: the control API maps the configuration object only at 459783Svbart@nginx.com "/config/". 460783Svbart@nginx.com 461783Svbart@nginx.com *) Feature: TLS support for client connections. 462783Svbart@nginx.com 463783Svbart@nginx.com *) Feature: TLS certificates storage control API. 464783Svbart@nginx.com 465783Svbart@nginx.com *) Feature: Unit library (libunit) to streamline language module 466783Svbart@nginx.com integration. 467783Svbart@nginx.com 468783Svbart@nginx.com *) Feature: "408 Request Timeout" responses while closing HTTP 469783Svbart@nginx.com keep-alive connections. 470783Svbart@nginx.com 471783Svbart@nginx.com *) Feature: improvements in OpenBSD support. Thanks to David Carlier. 472783Svbart@nginx.com 473783Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred after 474783Svbart@nginx.com reconfiguration. 475783Svbart@nginx.com 476783Svbart@nginx.com *) Bugfix: building on systems with non-default locale might be broken. 477783Svbart@nginx.com 478783Svbart@nginx.com *) Bugfix: "header_read_timeout" might not work properly. 479783Svbart@nginx.com 480783Svbart@nginx.com *) Bugfix: header fields values with non-ASCII bytes might be handled 481783Svbart@nginx.com incorrectly in Python 3 module. 482783Svbart@nginx.com 483727Svbart@nginx.com 484727Svbart@nginx.comChanges with Unit 1.3 13 Jul 2018 485727Svbart@nginx.com 486727Svbart@nginx.com *) Change: UTF-8 characters are now allowed in request header field 487727Svbart@nginx.com values. 488727Svbart@nginx.com 489727Svbart@nginx.com *) Feature: configuration of the request body size limit. 490727Svbart@nginx.com 491727Svbart@nginx.com *) Feature: configuration of various HTTP connection timeouts. 492727Svbart@nginx.com 493727Svbart@nginx.com *) Feature: Ruby module now automatically uses Bundler where possible. 494727Svbart@nginx.com 495727Svbart@nginx.com *) Feature: http.Flusher interface in Go module. 496727Svbart@nginx.com 497727Svbart@nginx.com *) Bugfix: various issues in HTTP connection errors handling. 498727Svbart@nginx.com 499727Svbart@nginx.com *) Bugfix: requests with body data might be handled incorrectly in PHP 500727Svbart@nginx.com module. 501727Svbart@nginx.com 502727Svbart@nginx.com *) Bugfix: individual PHP configuration options specified via control 503727Svbart@nginx.com API were reset to previous values after the first request in 504727Svbart@nginx.com application process. 505727Svbart@nginx.com 506689Svbart@nginx.com 507689Svbart@nginx.comChanges with Unit 1.2 07 Jun 2018 508689Svbart@nginx.com 509689Svbart@nginx.com *) Feature: configuration of environment variables for application 510689Svbart@nginx.com processes. 511689Svbart@nginx.com 512689Svbart@nginx.com *) Feature: customization of php.ini path. 513689Svbart@nginx.com 514689Svbart@nginx.com *) Feature: setting of individual PHP configuration options. 515689Svbart@nginx.com 516689Svbart@nginx.com *) Feature: configuration of execution arguments for Go applications. 517689Svbart@nginx.com 518689Svbart@nginx.com *) Bugfix: keep-alive connections might hang after reconfiguration. 519689Svbart@nginx.com 520666Svbart@nginx.com 521666Svbart@nginx.comChanges with Unit 1.1 26 Apr 2018 522666Svbart@nginx.com 523666Svbart@nginx.com *) Bugfix: Python applications that use the write() callable did not 524666Svbart@nginx.com work. 525666Svbart@nginx.com 526666Svbart@nginx.com *) Bugfix: virtual environments created with Python 3.3 or above might 527666Svbart@nginx.com not have worked. 528666Svbart@nginx.com 529666Svbart@nginx.com *) Bugfix: the request.Read() function in Go applications did not 530666Svbart@nginx.com produce EOF when the whole body was read. 531666Svbart@nginx.com 532666Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred while access log 533666Svbart@nginx.com reopening. 534666Svbart@nginx.com 535666Svbart@nginx.com *) Bugfix: in parsing of IPv6 control socket addresses. 536666Svbart@nginx.com 537666Svbart@nginx.com *) Bugfix: loading of application modules was broken on OpenBSD. 538666Svbart@nginx.com 539666Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred when there were two 540666Svbart@nginx.com modules with the same type and version; the bug had appeared in 1.0. 541666Svbart@nginx.com 542666Svbart@nginx.com *) Bugfix: alerts "freed pointer points to non-freeble page" might have 543666Svbart@nginx.com appeared in log on 32-bit platforms. 544666Svbart@nginx.com 545639Svbart@nginx.com 546639Svbart@nginx.comChanges with Unit 1.0 12 Apr 2018 547639Svbart@nginx.com 548639Svbart@nginx.com *) Change: configuration object moved into "/config/" path. 549639Svbart@nginx.com 550639Svbart@nginx.com *) Feature: basic access logging. 551639Svbart@nginx.com 552639Svbart@nginx.com *) Bugfix: 503 error occurred if Go application did not write response 553639Svbart@nginx.com header or body. 554639Svbart@nginx.com 555639Svbart@nginx.com *) Bugfix: Ruby applications that use encoding conversions might not 556663Svbart@nginx.com have worked. 557639Svbart@nginx.com 558639Svbart@nginx.com *) Bugfix: various stability issues. 559639Svbart@nginx.com 560586Svbart@nginx.com 561586Svbart@nginx.comChanges with Unit 0.7 22 Mar 2018 562586Svbart@nginx.com 563586Svbart@nginx.com *) Feature: Ruby application module. 564586Svbart@nginx.com 565586Svbart@nginx.com *) Bugfix: in discovering modules. 566586Svbart@nginx.com 567586Svbart@nginx.com *) Bugfix: various race conditions on reconfiguration and during 568586Svbart@nginx.com shutting down. 569586Svbart@nginx.com 570586Svbart@nginx.com *) Bugfix: tabs and trailing spaces were not allowed in header fields 571586Svbart@nginx.com values. 572586Svbart@nginx.com 573586Svbart@nginx.com *) Bugfix: a segmentation fault occurred in Python module if 574586Svbart@nginx.com start_response() was called outside of WSGI callable. 575586Svbart@nginx.com 576663Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred in PHP module if 577663Svbart@nginx.com there was an error while initialization. 578586Svbart@nginx.com 579539Svbart@nginx.com 580539Svbart@nginx.comChanges with Unit 0.6 09 Feb 2018 581539Svbart@nginx.com 582539Svbart@nginx.com *) Bugfix: the main process died when the "type" application option 583539Svbart@nginx.com contained version; the bug had appeared in 0.5. 584539Svbart@nginx.com 585531Svbart@nginx.com 586531Svbart@nginx.comChanges with Unit 0.5 08 Feb 2018 587531Svbart@nginx.com 588531Svbart@nginx.com *) Change: the "workers" application option was removed, the "processes" 589531Svbart@nginx.com application option should be used instead. 590531Svbart@nginx.com 591531Svbart@nginx.com *) Feature: the "processes" application option with prefork and dynamic 592531Svbart@nginx.com process management support. 593531Svbart@nginx.com 594531Svbart@nginx.com *) Feature: Perl application module. 595531Svbart@nginx.com 596531Svbart@nginx.com *) Bugfix: in reading client request body; the bug had appeared in 0.3. 597531Svbart@nginx.com 598663Svbart@nginx.com *) Bugfix: some Python applications might not have worked due to missing 599531Svbart@nginx.com "wsgi.errors" environ variable. 600531Svbart@nginx.com 601531Svbart@nginx.com *) Bugfix: HTTP chunked responses might be encoded incorrectly on 32-bit 602531Svbart@nginx.com platforms. 603531Svbart@nginx.com 604531Svbart@nginx.com *) Bugfix: infinite looping in HTTP parser. 605531Svbart@nginx.com 606531Svbart@nginx.com *) Bugfix: segmentation fault in router. 607531Svbart@nginx.com 608469Sigor@sysoev.ru 609469Sigor@sysoev.ruChanges with Unit 0.4 15 Jan 2018 610469Sigor@sysoev.ru 611469Sigor@sysoev.ru *) Feature: compatibility with DragonFly BSD. 612469Sigor@sysoev.ru 613469Sigor@sysoev.ru *) Feature: "configure php --lib-static" option. 614469Sigor@sysoev.ru 615469Sigor@sysoev.ru *) Bugfix: HTTP request body was not passed to application; the bug had 616469Sigor@sysoev.ru appeared in 0.3. 617469Sigor@sysoev.ru 618469Sigor@sysoev.ru *) Bugfix: HTTP large header buffers allocation and deallocation fixed; 619469Sigor@sysoev.ru the bug had appeared in 0.3. 620469Sigor@sysoev.ru 621663Svbart@nginx.com *) Bugfix: some PHP applications might not have worked with relative 622663Svbart@nginx.com "root" path. 623469Sigor@sysoev.ru 624432Sigor@sysoev.ru 625432Sigor@sysoev.ruChanges with Unit 0.3 28 Dec 2017 626432Sigor@sysoev.ru 627432Sigor@sysoev.ru *) Change: the Go package name changed to "nginx/unit". 628432Sigor@sysoev.ru 629432Sigor@sysoev.ru *) Change: in the "limits.timeout" application option: application start 630432Sigor@sysoev.ru time and time in queue now are not accounted. 631432Sigor@sysoev.ru 632432Sigor@sysoev.ru *) Feature: the "limits.requests" application option. 633432Sigor@sysoev.ru 634432Sigor@sysoev.ru *) Feature: application request processing latency optimization. 635432Sigor@sysoev.ru 636432Sigor@sysoev.ru *) Feature: HTTP keep-alive connections support. 637432Sigor@sysoev.ru 638432Sigor@sysoev.ru *) Feature: the "home" Python virtual environment configuration option. 639432Sigor@sysoev.ru 640432Sigor@sysoev.ru *) Feature: Python atexit hook support. 641432Sigor@sysoev.ru 642432Sigor@sysoev.ru *) Feature: various Go package improvements. 643432Sigor@sysoev.ru 644432Sigor@sysoev.ru *) Bugfix: various crashes fixed. 645432Sigor@sysoev.ru 646286Sigor@sysoev.ru 647370Sigor@sysoev.ruChanges with Unit 0.2 19 Oct 2017 648370Sigor@sysoev.ru 649370Sigor@sysoev.ru *) Feature: configuration persistence. 650370Sigor@sysoev.ru 651370Sigor@sysoev.ru *) Feature: improved handling of configuration errors. 652370Sigor@sysoev.ru 653370Sigor@sysoev.ru *) Feature: application "timeout" property. 654370Sigor@sysoev.ru 655370Sigor@sysoev.ru *) Bugfix: POST request for PHP were handled incorrectly. 656370Sigor@sysoev.ru 657370Sigor@sysoev.ru *) Bugfix: the router exited abnormally if all listeners had been 658370Sigor@sysoev.ru deleted. 659370Sigor@sysoev.ru 660370Sigor@sysoev.ru *) Bugfix: the router crashed under load. 661370Sigor@sysoev.ru 662370Sigor@sysoev.ru *) Bugfix: memory leak in the router. 663370Sigor@sysoev.ru 664370Sigor@sysoev.ru 665370Sigor@sysoev.ruChanges with Unit 0.1 06 Sep 2017 666286Sigor@sysoev.ru 667286Sigor@sysoev.ru *) First public release. 668286Sigor@sysoev.ru 669