1*2707Szelenkov@nginx.com 2*2707Szelenkov@nginx.comChanges with Unit 1.32.0 27 Feb 2024 3*2707Szelenkov@nginx.com 4*2707Szelenkov@nginx.com *) Feature: WebAssembly Components using WASI interfaces defined in 5*2707Szelenkov@nginx.com wasi:http/proxy@0.2.0. 6*2707Szelenkov@nginx.com 7*2707Szelenkov@nginx.com *) Feature: conditional access logging. 8*2707Szelenkov@nginx.com 9*2707Szelenkov@nginx.com *) Feature: NJS variables access. 10*2707Szelenkov@nginx.com 11*2707Szelenkov@nginx.com *) Feature: $request_id variable contains a string that is formed using 12*2707Szelenkov@nginx.com random data and can be used as a unique request identifier. 13*2707Szelenkov@nginx.com 14*2707Szelenkov@nginx.com *) Feature: options to set control socket permissions. 15*2707Szelenkov@nginx.com 16*2707Szelenkov@nginx.com *) Feature: Ruby arrays in response headers, improving compatibility 17*2707Szelenkov@nginx.com with Rack v3.0. 18*2707Szelenkov@nginx.com 19*2707Szelenkov@nginx.com *) Feature: Python bytearray response bodies for ASGI applications. 20*2707Szelenkov@nginx.com 21*2707Szelenkov@nginx.com *) Bugfix: router could crash while sending large files. Thanks to 22*2707Szelenkov@nginx.com rustedsword. 23*2707Szelenkov@nginx.com 24*2707Szelenkov@nginx.com *) Bugfix: serving static files from a network filesystem could lead to 25*2707Szelenkov@nginx.com error. 26*2707Szelenkov@nginx.com 27*2707Szelenkov@nginx.com *) Bugfix: "uidmap" and "gidmap" isolation options validation. 28*2707Szelenkov@nginx.com 29*2707Szelenkov@nginx.com *) Bugfix: abstract UNIX socket name could be corrupted during 30*2707Szelenkov@nginx.com configuration validation. Thanks to Alejandro Colomar. 31*2707Szelenkov@nginx.com 32*2707Szelenkov@nginx.com *) Bugfix: HTTP header field value encoding could be misinterpreted in 33*2707Szelenkov@nginx.com Python module. 34*2707Szelenkov@nginx.com 35*2707Szelenkov@nginx.com *) Bugfix: Node.js http.createServer() accepts and ignores the "options" 36*2707Szelenkov@nginx.com argument, improving compatibility with strapi applications, among 37*2707Szelenkov@nginx.com others. 38*2707Szelenkov@nginx.com 39*2707Szelenkov@nginx.com *) Bugfix: ServerRequest.flushHeaders() implemented in Node.js module to 40*2707Szelenkov@nginx.com make it compatible with Next.js. 41*2707Szelenkov@nginx.com 42*2707Szelenkov@nginx.com *) Bugfix: ServerRequest.httpVersion variable format in Node.js module. 43*2707Szelenkov@nginx.com 44*2707Szelenkov@nginx.com *) Bugfix: Node.js module handles standard library imports prefixed with 45*2707Szelenkov@nginx.com "node:", making it possible to run newer Nuxt applications, among 46*2707Szelenkov@nginx.com others. 47*2707Szelenkov@nginx.com 48*2707Szelenkov@nginx.com *) Bugfix: Node.js tarball location changed to avoid build/install 49*2707Szelenkov@nginx.com errors. 50*2707Szelenkov@nginx.com 51*2707Szelenkov@nginx.com *) Bugfix: Go module sets environment variables necessary for building 52*2707Szelenkov@nginx.com on macOS/arm64 systems. 53*2707Szelenkov@nginx.com 542582Szelenkov@nginx.com 552582Szelenkov@nginx.comChanges with Unit 1.31.1 19 Oct 2023 562582Szelenkov@nginx.com 572582Szelenkov@nginx.com *) Feature: allow to set the HTTP response status in Wasm module. 582582Szelenkov@nginx.com 592582Szelenkov@nginx.com *) Feature: allow uploads larger than 4GiB in Wasm module. 602582Szelenkov@nginx.com 612582Szelenkov@nginx.com *) Bugfix: application process could crash while rewriting URLs with 622582Szelenkov@nginx.com query strings. 632582Szelenkov@nginx.com 642582Szelenkov@nginx.com *) Bugfix: requests larger than about 64MiB could cause error in Wasm 652582Szelenkov@nginx.com module. 662582Szelenkov@nginx.com 672582Szelenkov@nginx.com *) Bugfix: when using many headers in Java module some of them could be 682582Szelenkov@nginx.com corrupted due to memory realocation issue. 692582Szelenkov@nginx.com 702582Szelenkov@nginx.com *) Bugfix: ServerRequest.destroy() implemented in Node.js module to make 712582Szelenkov@nginx.com it compatible with some frameworks that might use it. 722582Szelenkov@nginx.com 732582Szelenkov@nginx.com *) Bugfix: chunk argument of ServerResponse.write() can now be a 742582Szelenkov@nginx.com Uint8Array to improve compatibility with Node.js 15.0.0 and above. 752582Szelenkov@nginx.com 762582Szelenkov@nginx.com *) Bugfix: Node.JS unit-http NPM module now has appropriate default 772582Szelenkov@nginx.com paths for macOS/arm64 systems. 782582Szelenkov@nginx.com 792582Szelenkov@nginx.com *) Bugfix: build on musl libc with clang. 802582Szelenkov@nginx.com 812545Szelenkov@nginx.com 822545Szelenkov@nginx.comChanges with Unit 1.31.0 31 Aug 2023 832545Szelenkov@nginx.com 842545Szelenkov@nginx.com *) Change: if building with njs, version 0.8.0 or later is now required. 852545Szelenkov@nginx.com 862545Szelenkov@nginx.com *) Feature: technology preview of WebAssembly application module. 872545Szelenkov@nginx.com 882545Szelenkov@nginx.com *) Feature: "response_headers" option to manage headers in the action 892545Szelenkov@nginx.com and fallback. 902545Szelenkov@nginx.com 912545Szelenkov@nginx.com *) Feature: HTTP response header variables. 922545Szelenkov@nginx.com 932545Szelenkov@nginx.com *) Feature: ASGI lifespan state support. Thanks to synodriver. 942545Szelenkov@nginx.com 952545Szelenkov@nginx.com *) Bugfix: ensure that $uri variable is not cached. 962545Szelenkov@nginx.com 972545Szelenkov@nginx.com *) Bugfix: deprecated options were unavailable. 982545Szelenkov@nginx.com 992545Szelenkov@nginx.com *) Bugfix: ASGI applications inaccessible over IPv6. 1002545Szelenkov@nginx.com 1012461Szelenkov@nginx.com 1022461Szelenkov@nginx.comChanges with Unit 1.30.0 10 May 2023 1032461Szelenkov@nginx.com 1042461Szelenkov@nginx.com *) Change: remove Unix domain listen sockets upon reconfiguration. 1052461Szelenkov@nginx.com 1062461Szelenkov@nginx.com *) Feature: basic URI rewrite support. 1072461Szelenkov@nginx.com 1082461Szelenkov@nginx.com *) Feature: NJS loadable modules support. 1092461Szelenkov@nginx.com 1102461Szelenkov@nginx.com *) Feature: per-application logging. 1112461Szelenkov@nginx.com 1122461Szelenkov@nginx.com *) Feature: conditional logging of route selection. 1132461Szelenkov@nginx.com 1142461Szelenkov@nginx.com *) Feature: support the keys API on the request objects in NJS. 1152461Szelenkov@nginx.com 1162461Szelenkov@nginx.com *) Feature: default values for 'make install' pathnames such as prefix; 1172461Szelenkov@nginx.com this allows to './configure && make && sudo make install'. 1182461Szelenkov@nginx.com 1192461Szelenkov@nginx.com *) Feature: "server_version" setting to omit the version token from 1202461Szelenkov@nginx.com "Server" header field. 1212461Szelenkov@nginx.com 1222461Szelenkov@nginx.com *) Bugfix: request header field values could be corrupted in some cases; 1232461Szelenkov@nginx.com the bug had appeared in 1.29.0. 1242461Szelenkov@nginx.com 1252461Szelenkov@nginx.com *) Bugfix: PHP error handling (added missing 403 and 404 errors). 1262461Szelenkov@nginx.com 1272461Szelenkov@nginx.com *) Bugfix: Perl applications crash on second responder call. 1282461Szelenkov@nginx.com 1292361Szelenkov@nginx.com 1302361Szelenkov@nginx.comChanges with Unit 1.29.1 28 Feb 2023 1312361Szelenkov@nginx.com 1322361Szelenkov@nginx.com *) Bugfix: stop creating world-writeable directories. 1332361Szelenkov@nginx.com 1342361Szelenkov@nginx.com *) Bugfix: memory leak related to NJS. 1352361Szelenkov@nginx.com 1362361Szelenkov@nginx.com *) Bugfix: path parsing in PHP applications. 1372361Szelenkov@nginx.com 1382361Szelenkov@nginx.com *) Bugfix: enabled UTF-8 for Python config by default to avoid 1392361Szelenkov@nginx.com applications failing in some cases. 1402361Szelenkov@nginx.com 1412361Szelenkov@nginx.com *) Bugfix: using asyncio.get_running_loop() instead of 1422361Szelenkov@nginx.com asyncio.get_event_loop() when it's available to prevent errors in 1432361Szelenkov@nginx.com some Python ASGI applications. 1442361Szelenkov@nginx.com 1452361Szelenkov@nginx.com *) Bugfix: applications that make use of various low level APIs such as 1462361Szelenkov@nginx.com pthreads could fail to work correctly. 1472361Szelenkov@nginx.com 1482361Szelenkov@nginx.com *) Bugfix: websocket endianness detection for obscure operating systems. 1492361Szelenkov@nginx.com 1502282Szelenkov@nginx.com 1512282Szelenkov@nginx.comChanges with Unit 1.29.0 15 Dec 2022 1522282Szelenkov@nginx.com 1532282Szelenkov@nginx.com *) Change: removed $uri auto-append for "share" when loading 1542282Szelenkov@nginx.com configuration. 1552282Szelenkov@nginx.com 1562282Szelenkov@nginx.com *) Change: prefer system crypto policy instead of hardcoding a default. 1572282Szelenkov@nginx.com 1582282Szelenkov@nginx.com *) Feature: njs support with the basic syntax of JS template literals. 1592282Szelenkov@nginx.com 1602282Szelenkov@nginx.com *) Feature: support per-application cgroups on Linux. 1612282Szelenkov@nginx.com 1622282Szelenkov@nginx.com *) Feature: the $request_time variable contains the request processing 1632282Szelenkov@nginx.com time. 1642282Szelenkov@nginx.com 1652282Szelenkov@nginx.com *) Feature: "prefix" option in Python applications to set WSGI 1662282Szelenkov@nginx.com "SCRIPT_NAME" and ASGI root-path variables. 1672282Szelenkov@nginx.com 1682282Szelenkov@nginx.com *) Feature: compatibility with Python 3.11. 1692282Szelenkov@nginx.com 1702282Szelenkov@nginx.com *) Feature: compatibility with OpenSSL 3. 1712282Szelenkov@nginx.com 1722282Szelenkov@nginx.com *) Feature: compatibility with PHP 8.2. 1732282Szelenkov@nginx.com 1742282Szelenkov@nginx.com *) Feature: compatibility with Node.js 19.0. 1752282Szelenkov@nginx.com 1762282Szelenkov@nginx.com *) Feature: Ruby Rack v3 support. 1772282Szelenkov@nginx.com 1782282Szelenkov@nginx.com *) Bugfix: fix error in connection statistics when using proxy. 1792282Szelenkov@nginx.com 1802282Szelenkov@nginx.com *) Bugfix: fix HTTP cookie parsing when the value contains an equals 1812282Szelenkov@nginx.com sign. 1822282Szelenkov@nginx.com 1832282Szelenkov@nginx.com *) Bugfix: PHP directory URLs without a trailing '/' would give a 503 1842282Szelenkov@nginx.com error (fixed with a 301 re-direct). 1852282Szelenkov@nginx.com 1862282Szelenkov@nginx.com *) Bugfix: missing error checks in the C API. 1872282Szelenkov@nginx.com 1882282Szelenkov@nginx.com *) Bugfix: report the regex status in configure summary. 1892282Szelenkov@nginx.com 1902197Szelenkov@nginx.com 1912197Szelenkov@nginx.comChanges with Unit 1.28.0 13 Sep 2022 1922197Szelenkov@nginx.com 1932197Szelenkov@nginx.com *) Change: increased the applications' startup timeout. 1942197Szelenkov@nginx.com 1952197Szelenkov@nginx.com *) Change: disallowed abstract Unix domain socket syntax in non-Linux 1962197Szelenkov@nginx.com systems. 1972197Szelenkov@nginx.com 1982197Szelenkov@nginx.com *) Feature: basic statistics API. 1992197Szelenkov@nginx.com 2002197Szelenkov@nginx.com *) Feature: customizable access log format. 2012197Szelenkov@nginx.com 2022197Szelenkov@nginx.com *) Feature: more HTTP variables support. 2032197Szelenkov@nginx.com 2042197Szelenkov@nginx.com *) Feature: forwarded header to replace client address and protocol. 2052197Szelenkov@nginx.com 2062197Szelenkov@nginx.com *) Feature: ability to get dynamic variables. 2072197Szelenkov@nginx.com 2082197Szelenkov@nginx.com *) Feature: support for abstract Unix sockets. 2092197Szelenkov@nginx.com 2102197Szelenkov@nginx.com *) Feature: support for Unix sockets in address matching. 2112197Szelenkov@nginx.com 2122197Szelenkov@nginx.com *) Feature: the $dollar variable translates to a literal "$" during 2132197Szelenkov@nginx.com variable substitution. 2142197Szelenkov@nginx.com 2152197Szelenkov@nginx.com *) Bugfix: router process could crash if index file didn't contain an 2162197Szelenkov@nginx.com extension. 2172197Szelenkov@nginx.com 2182197Szelenkov@nginx.com *) Bugfix: force SCRIPT_NAME in Ruby to always be an empty string. 2192197Szelenkov@nginx.com 2202197Szelenkov@nginx.com *) Bugfix: when isolated PID numbers reach the prototype process host 2212197Szelenkov@nginx.com PID, the prototype crashed. 2222197Szelenkov@nginx.com 2232197Szelenkov@nginx.com *) Bugfix: the Ruby application process could crash on SIGTERM. 2242197Szelenkov@nginx.com 2252197Szelenkov@nginx.com *) Bugfix: the Ruby application process could crash on SIGINT. 2262197Szelenkov@nginx.com 2272197Szelenkov@nginx.com *) Bugfix: mutex leak in the C API. 2282197Szelenkov@nginx.com 2292118Szelenkov@nginx.com 2302118Szelenkov@nginx.comChanges with Unit 1.27.0 02 Jun 2022 2312118Szelenkov@nginx.com 2322118Szelenkov@nginx.com *) Feature: ability to specify a custom index file name when serving 2332118Szelenkov@nginx.com static files. 2342118Szelenkov@nginx.com 2352118Szelenkov@nginx.com *) Feature: variables support in the "location" option of the "return" 2362118Szelenkov@nginx.com action. 2372118Szelenkov@nginx.com 2382118Szelenkov@nginx.com *) Feature: support empty strings in the "location" option of the 2392118Szelenkov@nginx.com "return" action. 2402118Szelenkov@nginx.com 2412118Szelenkov@nginx.com *) Feature: added a new variable, $request_uri, that includes both the 2422118Szelenkov@nginx.com path and the query parts as per RFC 3986, sections 3-4. 2432118Szelenkov@nginx.com 2442118Szelenkov@nginx.com *) Feature: Ruby Rack environment parameter "SCRIPT_NAME" support. 2452118Szelenkov@nginx.com 2462118Szelenkov@nginx.com *) Feature: compatibility with GCC 12. 2472118Szelenkov@nginx.com 2482118Szelenkov@nginx.com *) Bugfix: Ruby Sinatra applications don't work without custom logging. 2492118Szelenkov@nginx.com 2502118Szelenkov@nginx.com *) Bugfix: the controller process could crash when a chain of more than 2512118Szelenkov@nginx.com four certificates was uploaded. 2522118Szelenkov@nginx.com 2532118Szelenkov@nginx.com *) Bugfix: some Perl applications failed to process the request body, 2542118Szelenkov@nginx.com notably with Plack. 2552118Szelenkov@nginx.com 2562118Szelenkov@nginx.com *) Bugfix: some Spring Boot applications failed to start, notably with 2572118Szelenkov@nginx.com Grails. 2582118Szelenkov@nginx.com 2592118Szelenkov@nginx.com *) Bugfix: incorrect Python protocol auto detection (ASGI or WSGI) for 2602118Szelenkov@nginx.com native callable object, notably with Falcon. 2612118Szelenkov@nginx.com 2622118Szelenkov@nginx.com *) Bugfix: ECMAScript modules did not work with the recent Node.js 2632118Szelenkov@nginx.com versions. 2642118Szelenkov@nginx.com 2652045Svbart@nginx.com 2662045Svbart@nginx.comChanges with Unit 1.26.1 02 Dec 2021 2672045Svbart@nginx.com 2682045Svbart@nginx.com *) Bugfix: occasionally, the Unit daemon was unable to fully terminate; 2692045Svbart@nginx.com the bug had appeared in 1.26.0. 2702045Svbart@nginx.com 2712045Svbart@nginx.com *) Bugfix: a prototype process could crash on an application process 2722045Svbart@nginx.com exit; the bug had appeared in 1.26.0. 2732045Svbart@nginx.com 2742045Svbart@nginx.com *) Bugfix: the router process crashed on reconfiguration if "access_log" 2752045Svbart@nginx.com was configured without listeners. 2762045Svbart@nginx.com 2772045Svbart@nginx.com *) Bugfix: a segmentation fault occurred in the PHP module if chdir() or 2782045Svbart@nginx.com fastcgi_finish_request() was called in the OPcache preloading script. 2792045Svbart@nginx.com 2802045Svbart@nginx.com *) Bugfix: fatal errors on DragonFly BSD; the bug had appeared in 2812045Svbart@nginx.com 1.26.0. 2822045Svbart@nginx.com 2832007Svbart@nginx.com 2842007Svbart@nginx.comChanges with Unit 1.26.0 18 Nov 2021 2852007Svbart@nginx.com 2862007Svbart@nginx.com *) Change: the "share" option now specifies the entire path to the files 2872007Svbart@nginx.com it serves, rather than a document root directory to be prepended to 2882007Svbart@nginx.com the request URI. 2892007Svbart@nginx.com 2902007Svbart@nginx.com *) Feature: automatic adjustment of existing configurations to the new 2912007Svbart@nginx.com "share" behavior when updating from previous versions. 2922007Svbart@nginx.com 2932007Svbart@nginx.com *) Feature: variables support in the "share" option. 2942007Svbart@nginx.com 2952007Svbart@nginx.com *) Feature: multiple paths in the "share" option. 2962007Svbart@nginx.com 2972007Svbart@nginx.com *) Feature: variables support in the "chroot" option. 2982007Svbart@nginx.com 2992007Svbart@nginx.com *) Feature: PHP opcache is shared between application processes. 3002007Svbart@nginx.com 3012007Svbart@nginx.com *) Feature: request routing by the query string. 3022007Svbart@nginx.com 3032007Svbart@nginx.com *) Bugfix: the router and app processes could crash when the requests 3042007Svbart@nginx.com limit was reached by asynchronous or multithreaded apps. 3052007Svbart@nginx.com 3062007Svbart@nginx.com *) Bugfix: established WebSocket connections could stop reading frames 3072007Svbart@nginx.com from the client after the corresponding listener had been 3082007Svbart@nginx.com reconfigured. 3092007Svbart@nginx.com 3102007Svbart@nginx.com *) Bugfix: fixed building with glibc 2.34, notably Fedora 35. 3112007Svbart@nginx.com 3121945Svbart@nginx.com 3131945Svbart@nginx.comChanges with Unit 1.25.0 19 Aug 2021 3141945Svbart@nginx.com 3151945Svbart@nginx.com *) Feature: client IP address replacement from a specified HTTP header 3161945Svbart@nginx.com field. 3171945Svbart@nginx.com 3181945Svbart@nginx.com *) Feature: TLS sessions cache. 3191945Svbart@nginx.com 3201945Svbart@nginx.com *) Feature: TLS session tickets. 3211945Svbart@nginx.com 3221945Svbart@nginx.com *) Feature: application restart control. 3231945Svbart@nginx.com 3241945Svbart@nginx.com *) Feature: process and thread lifecycle hooks in Ruby. 3251945Svbart@nginx.com 3261945Svbart@nginx.com *) Bugfix: the router process could crash on TLS connection open when 3271945Svbart@nginx.com multiple listeners with TLS certificates were configured; the bug had 3281945Svbart@nginx.com appeared in 1.23.0. 3291945Svbart@nginx.com 3301945Svbart@nginx.com *) Bugfix: TLS connections were rejected for configurations with 3311945Svbart@nginx.com multiple certificate bundles in a listener if the client did not use 3321945Svbart@nginx.com SNI. 3331945Svbart@nginx.com 3342007Svbart@nginx.com *) Bugfix: the router process could crash with frequent multithreaded 3351945Svbart@nginx.com application reconfiguration. 3361945Svbart@nginx.com 3371945Svbart@nginx.com *) Bugfix: compatibility issues with some Python ASGI apps, notably 3381945Svbart@nginx.com based on the Starlette framework. 3391945Svbart@nginx.com 3401945Svbart@nginx.com *) Bugfix: a descriptor and memory leak occurred in the router process 3411945Svbart@nginx.com when an app process stopped or crashed. 3421945Svbart@nginx.com 3431945Svbart@nginx.com *) Bugfix: the controller or router process could crash if the 3441945Svbart@nginx.com configuration contained a full-form IPv6 in a listener address. 3451945Svbart@nginx.com 3461945Svbart@nginx.com *) Bugfix: the router process crashed when a request was passed to an 3471945Svbart@nginx.com empty "routes" or "upstreams" using a variable "pass" option. 3481945Svbart@nginx.com 3491945Svbart@nginx.com *) Bugfix: the router process crashed while matching a request to an 3501945Svbart@nginx.com empty array of source or destination address patterns. 3511945Svbart@nginx.com 3521891Svbart@nginx.com 3531891Svbart@nginx.comChanges with Unit 1.24.0 27 May 2021 3541891Svbart@nginx.com 3551891Svbart@nginx.com *) Change: PHP added to the default MIME type list. 3561891Svbart@nginx.com 3571891Svbart@nginx.com *) Feature: arbitrary configuration of TLS connections via OpenSSL 3581891Svbart@nginx.com commands. 3591891Svbart@nginx.com 3601891Svbart@nginx.com *) Feature: the ability to limit static file serving by MIME types. 3611891Svbart@nginx.com 3621891Svbart@nginx.com *) Feature: support for chrooting, rejecting symlinks, and rejecting 3631891Svbart@nginx.com mount point traversal on a per-request basis when serving static 3641891Svbart@nginx.com files. 3651891Svbart@nginx.com 3661891Svbart@nginx.com *) Feature: a loader for automatically overriding the "http" and 3671891Svbart@nginx.com "websocket" modules in Node.js. 3681891Svbart@nginx.com 3691891Svbart@nginx.com *) Feature: multiple "targets" in Python applications. 3701891Svbart@nginx.com 3711891Svbart@nginx.com *) Feature: compatibility with Ruby 3.0. 3721891Svbart@nginx.com 3731891Svbart@nginx.com *) Bugfix: the router process could crash while closing a TLS 3741891Svbart@nginx.com connection. 3751891Svbart@nginx.com 3761891Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred in the PHP module if 3771891Svbart@nginx.com fastcgi_finish_request() was used with the "auto_globals_jit" option 3781891Svbart@nginx.com enabled. 3791891Svbart@nginx.com 3801834Svbart@nginx.com 3811834Svbart@nginx.comChanges with Unit 1.23.0 25 Mar 2021 3821834Svbart@nginx.com 3831834Svbart@nginx.com *) Feature: support for multiple certificate bundles on a listener via 3841834Svbart@nginx.com the Server Name Indication (SNI) TLS extension. 3851834Svbart@nginx.com 3861834Svbart@nginx.com *) Feature: "--mandir" ./configure option to specify the directory for 3871834Svbart@nginx.com man page installation. 3881834Svbart@nginx.com 3891834Svbart@nginx.com *) Bugfix: the router process could crash on premature TLS connection 3901834Svbart@nginx.com close; the bug had appeared in 1.17.0. 3911834Svbart@nginx.com 3921834Svbart@nginx.com *) Bugfix: a connection leak occurred on premature TLS connection close; 3931834Svbart@nginx.com the bug had appeared in 1.6. 3941834Svbart@nginx.com 3951834Svbart@nginx.com *) Bugfix: a descriptor and memory leak occurred in the router process 3961834Svbart@nginx.com when processing small WebSocket frames from a client; the bug had 3971834Svbart@nginx.com appeared in 1.19.0. 3981834Svbart@nginx.com 3991834Svbart@nginx.com *) Bugfix: a descriptor leak occurred in the router process when 4001834Svbart@nginx.com removing or reconfiguring an application; the bug had appeared in 4011834Svbart@nginx.com 1.19.0. 4021834Svbart@nginx.com 4031834Svbart@nginx.com *) Bugfix: persistent storage of certificates might've not worked with 4041834Svbart@nginx.com some filesystems in Linux, and all uploaded certificate bundles were 4051834Svbart@nginx.com forgotten after restart. 4061834Svbart@nginx.com 4071834Svbart@nginx.com *) Bugfix: the controller process could crash while requesting 4081834Svbart@nginx.com information about a certificate with a non-DNS SAN entry. 4091834Svbart@nginx.com 4101834Svbart@nginx.com *) Bugfix: the controller process could crash on manipulations with a 4111834Svbart@nginx.com certificate containing a SAN and no standard name attributes in 4121834Svbart@nginx.com subject or issuer. 4131834Svbart@nginx.com 4141834Svbart@nginx.com *) Bugfix: the Ruby module didn't respect the user locale for defaults 4151834Svbart@nginx.com in the Encoding class. 4161834Svbart@nginx.com 4171834Svbart@nginx.com *) Bugfix: the PHP 5 module failed to build with thread safety enabled; 4181834Svbart@nginx.com the bug had appeared in 1.22.0. 4191834Svbart@nginx.com 4201793Svbart@nginx.com 4211793Svbart@nginx.comChanges with Unit 1.22.0 04 Feb 2021 4221793Svbart@nginx.com 4231793Svbart@nginx.com *) Feature: the ServerRequest and ServerResponse objects of Node.js 4241793Svbart@nginx.com module are now compliant with Stream API. 4251793Svbart@nginx.com 4261793Svbart@nginx.com *) Feature: support for specifying multiple directories in the "path" 4271793Svbart@nginx.com option of Python apps. 4281793Svbart@nginx.com 4291793Svbart@nginx.com *) Bugfix: a memory leak occurred in the router process when serving 4301793Svbart@nginx.com files larger than 128K; the bug had appeared in 1.13.0. 4311793Svbart@nginx.com 4321793Svbart@nginx.com *) Bugfix: apps could stop processing new requests under high load; the 4331793Svbart@nginx.com bug had appeared in 1.19.0. 4341793Svbart@nginx.com 4351793Svbart@nginx.com *) Bugfix: app processes could terminate unexpectedly under high load; 4361793Svbart@nginx.com the bug had appeared in 1.19.0. 4371793Svbart@nginx.com 4381793Svbart@nginx.com *) Bugfix: invalid HTTP responses were generated for some unusual status 4391793Svbart@nginx.com codes. 4401793Svbart@nginx.com 4411793Svbart@nginx.com *) Bugfix: the PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server 4421793Svbart@nginx.com variables were missing in the PHP module. 4431793Svbart@nginx.com 4441793Svbart@nginx.com *) Bugfix: the router process could crash with multithreaded apps under 4451793Svbart@nginx.com high load. 4461793Svbart@nginx.com 4471793Svbart@nginx.com *) Bugfix: Ruby apps with multithreading configured could crash on start 4481793Svbart@nginx.com under load. 4491793Svbart@nginx.com 4501793Svbart@nginx.com *) Bugfix: mount points weren't unmounted when the "mount" namespace 4511793Svbart@nginx.com isolation was used; the bug had appeared in 1.21.0. 4521793Svbart@nginx.com 4531793Svbart@nginx.com *) Bugfix: the router process could crash while removing or 4541793Svbart@nginx.com reconfiguring an app that used WebSocket. 4551793Svbart@nginx.com 4561793Svbart@nginx.com *) Bugfix: a memory leak occurring in the router process when removing 4571793Svbart@nginx.com or reconfiguring an application; the bug had appeared in 1.19.0. 4581793Svbart@nginx.com 4591722Svbart@nginx.com 4601722Svbart@nginx.comChanges with Unit 1.21.0 19 Nov 2020 4611722Svbart@nginx.com 4621722Svbart@nginx.com *) Change: procfs is mounted by default for all languages when "rootfs" 4631722Svbart@nginx.com isolation is used. 4641722Svbart@nginx.com 4651722Svbart@nginx.com *) Change: any characters valid according to RFC 7230 are now allowed in 4661722Svbart@nginx.com HTTP header field names. 4671722Svbart@nginx.com 4681722Svbart@nginx.com *) Change: HTTP header fields with underscores ("_") are now discarded 4691722Svbart@nginx.com from requests by default. 4701722Svbart@nginx.com 4711722Svbart@nginx.com *) Feature: optional multithreaded request processing for Java, Python, 4721722Svbart@nginx.com Perl, and Ruby apps. 4731722Svbart@nginx.com 4741722Svbart@nginx.com *) Feature: regular expressions in route matching patterns. 4751722Svbart@nginx.com 4761722Svbart@nginx.com *) Feature: compatibility with Python 3.9. 4771722Svbart@nginx.com 4781722Svbart@nginx.com *) Feature: the Python module now supports ASGI 2.0 legacy applications. 4791722Svbart@nginx.com 4801722Svbart@nginx.com *) Feature: the "protocol" option in Python applications aids choice 4811722Svbart@nginx.com between ASGI and WSGI. 4821722Svbart@nginx.com 4831722Svbart@nginx.com *) Feature: the fastcgi_finish_request() PHP function that finalizes 4841722Svbart@nginx.com request processing and continues code execution without holding onto 4851722Svbart@nginx.com the client connection. 4861722Svbart@nginx.com 4871722Svbart@nginx.com *) Feature: the "discard_unsafe_fields" HTTP option that enables 4881722Svbart@nginx.com discarding request header fields with irregular (but still valid) 4891722Svbart@nginx.com characters in the field name. 4901722Svbart@nginx.com 4911722Svbart@nginx.com *) Feature: the "procfs" and "tmpfs" automount isolation options to 4921722Svbart@nginx.com disable automatic mounting of eponymous filesystems. 4931722Svbart@nginx.com 4941722Svbart@nginx.com *) Bugfix: the router process could crash when running Go applications 4951722Svbart@nginx.com under high load; the bug had appeared in 1.19.0. 4961722Svbart@nginx.com 4971722Svbart@nginx.com *) Bugfix: some language dependencies could remain mounted after using 4981722Svbart@nginx.com "rootfs" isolation. 4991722Svbart@nginx.com 5001722Svbart@nginx.com *) Bugfix: various compatibility issues in Java applications. 5011722Svbart@nginx.com 5021722Svbart@nginx.com *) Bugfix: the Java module built with the musl C library couldn't run 5031722Svbart@nginx.com applications that use "rootfs" isolation. 5041722Svbart@nginx.com 5051640Svbart@nginx.com 5061640Svbart@nginx.comChanges with Unit 1.20.0 08 Oct 2020 5071640Svbart@nginx.com 5081640Svbart@nginx.com *) Change: the PHP module is now initialized before chrooting; this 5091640Svbart@nginx.com enables loading all extensions from the host system. 5101640Svbart@nginx.com 5111640Svbart@nginx.com *) Change: AVIF and APNG image formats added to the default MIME type 5121640Svbart@nginx.com list. 5131640Svbart@nginx.com 5141643Svbart@nginx.com *) Change: functional tests migrated to the pytest framework. 5151643Svbart@nginx.com 5161640Svbart@nginx.com *) Feature: the Python module now fully supports applications that use 5171640Svbart@nginx.com the ASGI 3.0 server interface. 5181640Svbart@nginx.com 5191640Svbart@nginx.com *) Feature: the Python module now has a built-in WebSocket server 5201640Svbart@nginx.com implementation for applications, compatible with the HTTP & WebSocket 5211640Svbart@nginx.com ASGI Message Format 2.1 specification. 5221640Svbart@nginx.com 5231640Svbart@nginx.com *) Feature: automatic mounting of an isolated "/tmp" file system into 5241640Svbart@nginx.com chrooted application environments. 5251640Svbart@nginx.com 5261640Svbart@nginx.com *) Feature: the $host variable contains a normalized "Host" request 5271640Svbart@nginx.com value. 5281640Svbart@nginx.com 5291640Svbart@nginx.com *) Feature: the "callable" option sets Python application callable 5301640Svbart@nginx.com names. 5311640Svbart@nginx.com 5321640Svbart@nginx.com *) Feature: compatibility with PHP 8 RC 1. Thanks to Remi Collet. 5331640Svbart@nginx.com 5341640Svbart@nginx.com *) Feature: the "automount" option in the "isolation" object allows to 5351640Svbart@nginx.com turn off the automatic mounting of language module dependencies. 5361640Svbart@nginx.com 5371640Svbart@nginx.com *) Bugfix: "pass"-ing requests to upstreams from a route was broken; the 5381640Svbart@nginx.com bug had appeared in 1.19.0. Thanks to 洪志道 (Hong Zhi Dao) for 5391640Svbart@nginx.com discovering and fixing it. 5401640Svbart@nginx.com 5411640Svbart@nginx.com *) Bugfix: the router process could crash during reconfiguration. 5421640Svbart@nginx.com 5431640Svbart@nginx.com *) Bugfix: a memory leak occurring in the router process; the bug had 5441640Svbart@nginx.com appeared in 1.18.0. 5451640Svbart@nginx.com 5461640Svbart@nginx.com *) Bugfix: the "!" (non-empty) pattern was matched incorrectly; the bug 5471640Svbart@nginx.com had appeared in 1.19.0. 5481640Svbart@nginx.com 5491640Svbart@nginx.com *) Bugfix: fixed building on platforms without sendfile() support, 5501640Svbart@nginx.com notably NetBSD; the bug had appeared in 1.16.0. 5511640Svbart@nginx.com 5521570Svbart@nginx.com 5531570Svbart@nginx.comChanges with Unit 1.19.0 13 Aug 2020 5541570Svbart@nginx.com 5551570Svbart@nginx.com *) Feature: reworked IPC between the router process and the applications 5561570Svbart@nginx.com to lower latencies, increase performance, and improve scalability. 5571570Svbart@nginx.com 5581570Svbart@nginx.com *) Feature: support for an arbitrary number of wildcards in route 5591570Svbart@nginx.com matching patterns. 5601570Svbart@nginx.com 5611570Svbart@nginx.com *) Feature: chunked transfer encoding in proxy responses. 5621570Svbart@nginx.com 5631570Svbart@nginx.com *) Feature: basic variables support in the "pass" option. 5641570Svbart@nginx.com 5651570Svbart@nginx.com *) Feature: compatibility with PHP 8 Beta 1. Thanks to Remi Collet. 5661570Svbart@nginx.com 5671570Svbart@nginx.com *) Bugfix: the router process could crash while passing requests to an 5681570Svbart@nginx.com application under high load. 5691570Svbart@nginx.com 5701570Svbart@nginx.com *) Bugfix: a number of language modules failed to build on some systems; 5711570Svbart@nginx.com the bug had appeared in 1.18.0. 5721570Svbart@nginx.com 5731570Svbart@nginx.com *) Bugfix: time in error log messages from PHP applications could lag. 5741570Svbart@nginx.com 5751570Svbart@nginx.com *) Bugfix: reconfiguration requests could hang if an application had 5761570Svbart@nginx.com failed to start; the bug had appeared in 1.18.0. 5771570Svbart@nginx.com 5781570Svbart@nginx.com *) Bugfix: memory leak during reconfiguration. 5791570Svbart@nginx.com 5801570Svbart@nginx.com *) Bugfix: the daemon didn't start without language modules; the bug had 5811570Svbart@nginx.com appeared in 1.18.0. 5821570Svbart@nginx.com 5831570Svbart@nginx.com *) Bugfix: the router process could crash at exit. 5841570Svbart@nginx.com 5851570Svbart@nginx.com *) Bugfix: Node.js applications could crash at exit. 5861570Svbart@nginx.com 5871570Svbart@nginx.com *) Bugfix: the Ruby module could be linked against a wrong library 5881570Svbart@nginx.com version. 5891570Svbart@nginx.com 5901491Svbart@nginx.com 5911491Svbart@nginx.comChanges with Unit 1.18.0 28 May 2020 5921491Svbart@nginx.com 5931491Svbart@nginx.com *) Feature: the "rootfs" isolation option for changing root filesystem 5941491Svbart@nginx.com for an application. 5951491Svbart@nginx.com 5961491Svbart@nginx.com *) Feature: multiple "targets" in PHP applications. 5971491Svbart@nginx.com 5981491Svbart@nginx.com *) Feature: support for percent-encoding in the "uri" and "arguments" 5991491Svbart@nginx.com matching options and in the "pass" option. 6001491Svbart@nginx.com 6011460Svbart@nginx.com 6021460Svbart@nginx.comChanges with Unit 1.17.0 16 Apr 2020 6031460Svbart@nginx.com 6041460Svbart@nginx.com *) Feature: a "return" action with optional "location" for immediate 6051460Svbart@nginx.com responses and external redirection. 6061460Svbart@nginx.com 6071460Svbart@nginx.com *) Feature: fractional weights support for upstream servers. 6081460Svbart@nginx.com 6091460Svbart@nginx.com *) Bugfix: accidental 502 "Bad Gateway" errors might have occurred in 6101460Svbart@nginx.com applications under high load. 6111460Svbart@nginx.com 6121460Svbart@nginx.com *) Bugfix: memory leak in the router; the bug had appeared in 1.13.0. 6131460Svbart@nginx.com 6141460Svbart@nginx.com *) Bugfix: segmentation fault might have occurred in the router process 6151460Svbart@nginx.com when reaching open connections limit. 6161460Svbart@nginx.com 6171460Svbart@nginx.com *) Bugfix: "close() failed (9: Bad file descriptor)" alerts might have 6181460Svbart@nginx.com appeared in the log while processing large request bodies; the bug 6191460Svbart@nginx.com had appeared in 1.16.0. 6201460Svbart@nginx.com 6211460Svbart@nginx.com *) Bugfix: existing application processes didn't reopen the log file. 6221460Svbart@nginx.com 6231460Svbart@nginx.com *) Bugfix: incompatibility with some Node.js applications. 6241460Svbart@nginx.com 6251460Svbart@nginx.com *) Bugfix: broken build on DragonFly BSD; the bug had appeared in 6261460Svbart@nginx.com 1.16.0. 6271460Svbart@nginx.com 6281404Svbart@nginx.com 6291404Svbart@nginx.comChanges with Unit 1.16.0 12 Mar 2020 6301404Svbart@nginx.com 6311404Svbart@nginx.com *) Feature: basic load-balancing support with round-robin. 6321404Svbart@nginx.com 6331404Svbart@nginx.com *) Feature: a "fallback" option that performs an alternative action if a 6341404Svbart@nginx.com request can't be served from the "share" directory. 6351404Svbart@nginx.com 6361404Svbart@nginx.com *) Feature: reduced memory consumption by dumping large request bodies 6371404Svbart@nginx.com to disk. 6381404Svbart@nginx.com 6391404Svbart@nginx.com *) Feature: stripping UTF-8 BOM and JavaScript-style comments from 6401404Svbart@nginx.com uploaded JSON. 6411404Svbart@nginx.com 6421404Svbart@nginx.com *) Bugfix: negative address matching in router might work improperly in 6431404Svbart@nginx.com combination with non-negative patterns. 6441404Svbart@nginx.com 6451404Svbart@nginx.com *) Bugfix: Java Spring applications failed to run; the bug had appeared 6461404Svbart@nginx.com in 1.10.0. 6471404Svbart@nginx.com 6481404Svbart@nginx.com *) Bugfix: PHP 7.4 was broken if it was built with thread safety 6491404Svbart@nginx.com enabled. 6501404Svbart@nginx.com 6511404Svbart@nginx.com *) Bugfix: compatibility issues with some Python applications. 6521404Svbart@nginx.com 6531357Svbart@nginx.com 6541357Svbart@nginx.comChanges with Unit 1.15.0 06 Feb 2020 6551357Svbart@nginx.com 6561357Svbart@nginx.com *) Change: extensions of dynamically requested PHP scripts were 6571357Svbart@nginx.com restricted to ".php". 6581357Svbart@nginx.com 6591357Svbart@nginx.com *) Feature: compatibility with Ruby 2.7. 6601357Svbart@nginx.com 6611357Svbart@nginx.com *) Bugfix: segmentation fault might have occurred in the router process 6621357Svbart@nginx.com with multiple application processes under load; the bug had appeared 6631357Svbart@nginx.com in 1.14.0. 6641357Svbart@nginx.com 6651357Svbart@nginx.com *) Bugfix: receiving request body over TLS connection might have 6661357Svbart@nginx.com stalled. 6671357Svbart@nginx.com 6681330Svbart@nginx.com 6691330Svbart@nginx.comChanges with Unit 1.14.0 26 Dec 2019 6701330Svbart@nginx.com 6711330Svbart@nginx.com *) Change: the Go package import name changed to "unit.nginx.org/go". 6721330Svbart@nginx.com 6731330Svbart@nginx.com *) Change: Go package now links to libunit instead of including library 6741330Svbart@nginx.com sources. 6751330Svbart@nginx.com 6761330Svbart@nginx.com *) Feature: ability to change user and group for isolated applications 6771330Svbart@nginx.com when Unit daemon runs as an unprivileged user. 6781330Svbart@nginx.com 6791330Svbart@nginx.com *) Feature: request routing by source and destination addresses and 6801330Svbart@nginx.com ports. 6811330Svbart@nginx.com 6821330Svbart@nginx.com *) Bugfix: memory bloat on large responses. 6831330Svbart@nginx.com 6841284Svbart@nginx.com 6851284Svbart@nginx.comChanges with Unit 1.13.0 14 Nov 2019 6861284Svbart@nginx.com 6871284Svbart@nginx.com *) Feature: basic support for HTTP reverse proxying. 6881284Svbart@nginx.com 6891284Svbart@nginx.com *) Feature: compatibility with Python 3.8. 6901284Svbart@nginx.com 6911284Svbart@nginx.com *) Bugfix: memory leak in Python application processes when the close 6921284Svbart@nginx.com handler was used. 6931284Svbart@nginx.com 6941284Svbart@nginx.com *) Bugfix: threads in Python applications might not work correctly. 6951284Svbart@nginx.com 6961284Svbart@nginx.com *) Bugfix: Ruby on Rails applications might not work on Ruby 2.6. 6971284Svbart@nginx.com 6981284Svbart@nginx.com *) Bugfix: backtraces for uncaught exceptions in Python 3 might be 6991284Svbart@nginx.com logged with significant delays. 7001284Svbart@nginx.com 7011284Svbart@nginx.com *) Bugfix: explicit setting a namespaces isolation option to false might 7021284Svbart@nginx.com have enabled it. 7031284Svbart@nginx.com 7041222Svbart@nginx.com 7051222Svbart@nginx.comChanges with Unit 1.12.0 03 Oct 2019 7061222Svbart@nginx.com 7071222Svbart@nginx.com *) Feature: compatibility with PHP 7.4. 7081222Svbart@nginx.com 7091222Svbart@nginx.com *) Bugfix: descriptors leak on process creation; the bug had appeared in 7101222Svbart@nginx.com 1.11.0. 7111222Svbart@nginx.com 7121222Svbart@nginx.com *) Bugfix: TLS connection might be closed prematurely while sending 7131222Svbart@nginx.com response. 7141222Svbart@nginx.com 7151222Svbart@nginx.com *) Bugfix: segmentation fault might have occurred if an irregular file 7161222Svbart@nginx.com was requested. 7171222Svbart@nginx.com 7181185Svbart@nginx.com 7191185Svbart@nginx.comChanges with Unit 1.11.0 19 Sep 2019 7201185Svbart@nginx.com 7211185Svbart@nginx.com *) Feature: basic support for serving static files. 7221185Svbart@nginx.com 7231185Svbart@nginx.com *) Feature: isolation of application processes with Linux namespaces. 7241185Svbart@nginx.com 7251185Svbart@nginx.com *) Feature: built-in WebSocket server implementation for Java Servlet 7261185Svbart@nginx.com Containers. 7271185Svbart@nginx.com 7281185Svbart@nginx.com *) Feature: direct addressing of API configuration options containing 7291185Svbart@nginx.com slashes "/" using URI encoding (%2F). 7301185Svbart@nginx.com 7311185Svbart@nginx.com *) Bugfix: segmentation fault might have occurred in Go applications 7321185Svbart@nginx.com under high load. 7331185Svbart@nginx.com 7341185Svbart@nginx.com *) Bugfix: WebSocket support was broken if Unit was built with some 7351185Svbart@nginx.com linkers other than GNU ld (e.g. gold or LLD). 7361185Svbart@nginx.com 7371134Svbart@nginx.com 7381134Svbart@nginx.comChanges with Unit 1.10.0 22 Aug 2019 7391134Svbart@nginx.com 7401134Svbart@nginx.com *) Change: matching of cookies in routes made case sensitive. 7411134Svbart@nginx.com 7421134Svbart@nginx.com *) Change: decreased log level of common errors when clients close 7431134Svbart@nginx.com connections. 7441134Svbart@nginx.com 7451134Svbart@nginx.com *) Change: removed the Perl module's "--include=" ./configure option. 7461134Svbart@nginx.com 7471134Svbart@nginx.com *) Feature: built-in WebSocket server implementation for Node.js module. 7481134Svbart@nginx.com 7491134Svbart@nginx.com *) Feature: splitting PATH_INFO from request URI in PHP module. 7501134Svbart@nginx.com 7511134Svbart@nginx.com *) Feature: request routing by scheme (HTTP or HTTPS). 7521134Svbart@nginx.com 7531134Svbart@nginx.com *) Feature: support for multipart requests body in Java module. 7541134Svbart@nginx.com 7551134Svbart@nginx.com *) Feature: improved API compatibility with Node.js 11.10 or later. 7561134Svbart@nginx.com 7571134Svbart@nginx.com *) Bugfix: reconfiguration failed if "listeners" or "applications" 7581134Svbart@nginx.com objects were missing. 7591134Svbart@nginx.com 7601134Svbart@nginx.com *) Bugfix: applying a large configuration might have failed. 7611134Svbart@nginx.com 7621069Svbart@nginx.com 7631069Svbart@nginx.comChanges with Unit 1.9.0 30 May 2019 7641069Svbart@nginx.com 7651069Svbart@nginx.com *) Feature: request routing by arguments, headers, and cookies. 7661069Svbart@nginx.com 7671069Svbart@nginx.com *) Feature: route matching patterns allow a wildcard in the middle. 7681069Svbart@nginx.com 7691069Svbart@nginx.com *) Feature: POST operation for appending elements to arrays in 7701069Svbart@nginx.com configuration. 7711069Svbart@nginx.com 7721069Svbart@nginx.com *) Feature: support for changing credentials using CAP_SETUID and 7731069Svbart@nginx.com CAP_SETGID capabilities on Linux without running main process as 7741069Svbart@nginx.com privileged user. 7751069Svbart@nginx.com 7761069Svbart@nginx.com *) Bugfix: memory leak in the router process might have happened when a 7771069Svbart@nginx.com client prematurely closed the connection. 7781069Svbart@nginx.com 7791069Svbart@nginx.com *) Bugfix: applying a large configuration might have failed. 7801069Svbart@nginx.com 7811069Svbart@nginx.com *) Bugfix: PUT and DELETE operations on array elements in configuration 7821069Svbart@nginx.com did not work. 7831069Svbart@nginx.com 7841069Svbart@nginx.com *) Bugfix: request schema in applications did not reflect TLS 7851069Svbart@nginx.com connections. 7861069Svbart@nginx.com 7871069Svbart@nginx.com *) Bugfix: restored compatibility with Node.js applications that use 7881069Svbart@nginx.com ServerResponse._implicitHeader() function; the bug had appeared in 7891069Svbart@nginx.com 1.7. 7901069Svbart@nginx.com 7911069Svbart@nginx.com *) Bugfix: various compatibility issues with Node.js applications. 7921069Svbart@nginx.com 793991Svbart@nginx.com 794991Svbart@nginx.comChanges with Unit 1.8.0 01 Mar 2019 795991Svbart@nginx.com 796991Svbart@nginx.com *) Change: now three numbers are always used for versioning: major, 797991Svbart@nginx.com minor, and patch versions. 798991Svbart@nginx.com 799991Svbart@nginx.com *) Change: now QUERY_STRING is always defined even if the request does 800991Svbart@nginx.com not include the query component. 801991Svbart@nginx.com 802991Svbart@nginx.com *) Feature: basic internal request routing by Host, URI, and method. 803991Svbart@nginx.com 804991Svbart@nginx.com *) Feature: experimental support for Java Servlet Containers. 805991Svbart@nginx.com 806991Svbart@nginx.com *) Bugfix: segmentation fault might have occurred in the router process. 807991Svbart@nginx.com 808991Svbart@nginx.com *) Bugfix: various potential memory leaks. 809991Svbart@nginx.com 810991Svbart@nginx.com *) Bugfix: TLS connections might have stalled. 811991Svbart@nginx.com 812991Svbart@nginx.com *) Bugfix: some Perl applications might have failed to send the response 813991Svbart@nginx.com body. 814991Svbart@nginx.com 815991Svbart@nginx.com *) Bugfix: some compilers with specific flags might have produced 816991Svbart@nginx.com non-functioning builds; the bug had appeared in 1.5. 817991Svbart@nginx.com 818991Svbart@nginx.com *) Bugfix: Node.js package had wrong version number when installed from 819991Svbart@nginx.com sources. 820991Svbart@nginx.com 821926Svbart@nginx.com 822926Svbart@nginx.comChanges with Unit 1.7.1 07 Feb 2019 823926Svbart@nginx.com 824926Svbart@nginx.com *) Security: a heap memory buffer overflow might have been caused in the 825926Svbart@nginx.com router process by a specially crafted request, potentially resulting 826926Svbart@nginx.com in a segmentation fault or other unspecified behavior 827926Svbart@nginx.com (CVE-2019-7401). 828926Svbart@nginx.com 829926Svbart@nginx.com *) Bugfix: install of Go module failed without prior building of Unit 830926Svbart@nginx.com daemon; the bug had appeared in 1.7. 831926Svbart@nginx.com 832886Svbart@nginx.com 833886Svbart@nginx.comChanges with Unit 1.7 20 Dec 2018 834886Svbart@nginx.com 835886Svbart@nginx.com *) Change: now rpath is set in Ruby module only if the library was not 836886Svbart@nginx.com found in default search paths; this allows to meet packaging 837886Svbart@nginx.com restrictions on some systems. 838886Svbart@nginx.com 839886Svbart@nginx.com *) Bugfix: "disable_functions" and "disable_classes" PHP options set via 840886Svbart@nginx.com Control API did not work. 841886Svbart@nginx.com 842886Svbart@nginx.com *) Bugfix: Promises on request data in Node.js were not triggered. 843886Svbart@nginx.com 844886Svbart@nginx.com *) Bugfix: various compatibility issues with Node.js applications. 845886Svbart@nginx.com 846886Svbart@nginx.com *) Bugfix: a segmentation fault occurred in Node.js module if 847886Svbart@nginx.com application tried to read request body after request.end() was 848886Svbart@nginx.com called. 849886Svbart@nginx.com 850886Svbart@nginx.com *) Bugfix: a segmentation fault occurred in Node.js module if 851886Svbart@nginx.com application attempted to send header twice. 852886Svbart@nginx.com 853886Svbart@nginx.com *) Bugfix: names of response header fields in Node.js module were 854886Svbart@nginx.com erroneously treated as case-sensitive. 855886Svbart@nginx.com 856886Svbart@nginx.com *) Bugfix: uncatched exceptions in Node.js were not logged. 857886Svbart@nginx.com 858886Svbart@nginx.com *) Bugfix: global install of Node.js module from sources was broken on 859886Svbart@nginx.com some systems; the bug had appeared in 1.6. 860886Svbart@nginx.com 861886Svbart@nginx.com *) Bugfix: traceback for exceptions during initialization of Python 862886Svbart@nginx.com applications might not be logged. 863886Svbart@nginx.com 864886Svbart@nginx.com *) Bugfix: PHP module build failed if PHP interpreter was built with 865886Svbart@nginx.com thread safety enabled. 866886Svbart@nginx.com 867846Svbart@nginx.com 868846Svbart@nginx.comChanges with Unit 1.6 15 Nov 2018 869846Svbart@nginx.com 870846Svbart@nginx.com *) Change: "make install" now installs Node.js module as well if it was 871846Svbart@nginx.com configured. 872846Svbart@nginx.com 873846Svbart@nginx.com *) Feature: "--local" ./configure option to install Node.js module 874846Svbart@nginx.com locally. 875846Svbart@nginx.com 876846Svbart@nginx.com *) Bugfix: Node.js module might have crashed due to broken reference 877846Svbart@nginx.com counting. 878846Svbart@nginx.com 879846Svbart@nginx.com *) Bugfix: asynchronous operations in Node.js might not have worked. 880846Svbart@nginx.com 881846Svbart@nginx.com *) Bugfix: various compatibility issues with Node.js applications. 882846Svbart@nginx.com 883846Svbart@nginx.com *) Bugfix: "freed pointer is out of pool" alerts might have appeared in 884846Svbart@nginx.com log. 885846Svbart@nginx.com 886885Svbart@nginx.com *) Bugfix: module discovery did not work on 64-bit big-endian systems 887846Svbart@nginx.com like IBM/S390x. 888846Svbart@nginx.com 889820Svbart@nginx.com 890820Svbart@nginx.comChanges with Unit 1.5 25 Oct 2018 891820Svbart@nginx.com 892820Svbart@nginx.com *) Change: the "type" of application object for Go was changed to 893820Svbart@nginx.com "external". 894820Svbart@nginx.com 895820Svbart@nginx.com *) Feature: initial version of Node.js package with basic HTTP 896820Svbart@nginx.com request-response support. 897820Svbart@nginx.com 898820Svbart@nginx.com *) Feature: compatibility with LibreSSL. 899820Svbart@nginx.com 900820Svbart@nginx.com *) Feature: --libdir and --incdir ./configure options to install libunit 901820Svbart@nginx.com headers and static library. 902820Svbart@nginx.com 903820Svbart@nginx.com *) Bugfix: connection might be closed prematurely while sending 904820Svbart@nginx.com response; the bug had appeared in 1.3. 905820Svbart@nginx.com 906820Svbart@nginx.com *) Bugfix: application processes might have stopped handling requests, 907820Svbart@nginx.com producing "last message send failed: Resource temporarily 908820Svbart@nginx.com unavailable" alerts in log; the bug had appeared in 1.4. 909820Svbart@nginx.com 910885Svbart@nginx.com *) Bugfix: Go applications did not work when Unit was built with musl C 911820Svbart@nginx.com library. 912820Svbart@nginx.com 913783Svbart@nginx.com 914783Svbart@nginx.comChanges with Unit 1.4 20 Sep 2018 915783Svbart@nginx.com 916783Svbart@nginx.com *) Change: the control API maps the configuration object only at 917783Svbart@nginx.com "/config/". 918783Svbart@nginx.com 919783Svbart@nginx.com *) Feature: TLS support for client connections. 920783Svbart@nginx.com 921783Svbart@nginx.com *) Feature: TLS certificates storage control API. 922783Svbart@nginx.com 923783Svbart@nginx.com *) Feature: Unit library (libunit) to streamline language module 924783Svbart@nginx.com integration. 925783Svbart@nginx.com 926783Svbart@nginx.com *) Feature: "408 Request Timeout" responses while closing HTTP 927783Svbart@nginx.com keep-alive connections. 928783Svbart@nginx.com 929783Svbart@nginx.com *) Feature: improvements in OpenBSD support. Thanks to David Carlier. 930783Svbart@nginx.com 931783Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred after 932783Svbart@nginx.com reconfiguration. 933783Svbart@nginx.com 934783Svbart@nginx.com *) Bugfix: building on systems with non-default locale might be broken. 935783Svbart@nginx.com 936783Svbart@nginx.com *) Bugfix: "header_read_timeout" might not work properly. 937783Svbart@nginx.com 938783Svbart@nginx.com *) Bugfix: header fields values with non-ASCII bytes might be handled 939783Svbart@nginx.com incorrectly in Python 3 module. 940783Svbart@nginx.com 941727Svbart@nginx.com 942727Svbart@nginx.comChanges with Unit 1.3 13 Jul 2018 943727Svbart@nginx.com 944727Svbart@nginx.com *) Change: UTF-8 characters are now allowed in request header field 945727Svbart@nginx.com values. 946727Svbart@nginx.com 947727Svbart@nginx.com *) Feature: configuration of the request body size limit. 948727Svbart@nginx.com 949727Svbart@nginx.com *) Feature: configuration of various HTTP connection timeouts. 950727Svbart@nginx.com 951727Svbart@nginx.com *) Feature: Ruby module now automatically uses Bundler where possible. 952727Svbart@nginx.com 953727Svbart@nginx.com *) Feature: http.Flusher interface in Go module. 954727Svbart@nginx.com 955727Svbart@nginx.com *) Bugfix: various issues in HTTP connection errors handling. 956727Svbart@nginx.com 957727Svbart@nginx.com *) Bugfix: requests with body data might be handled incorrectly in PHP 958727Svbart@nginx.com module. 959727Svbart@nginx.com 960727Svbart@nginx.com *) Bugfix: individual PHP configuration options specified via control 961727Svbart@nginx.com API were reset to previous values after the first request in 962727Svbart@nginx.com application process. 963727Svbart@nginx.com 964689Svbart@nginx.com 965689Svbart@nginx.comChanges with Unit 1.2 07 Jun 2018 966689Svbart@nginx.com 967689Svbart@nginx.com *) Feature: configuration of environment variables for application 968689Svbart@nginx.com processes. 969689Svbart@nginx.com 970689Svbart@nginx.com *) Feature: customization of php.ini path. 971689Svbart@nginx.com 972689Svbart@nginx.com *) Feature: setting of individual PHP configuration options. 973689Svbart@nginx.com 974689Svbart@nginx.com *) Feature: configuration of execution arguments for Go applications. 975689Svbart@nginx.com 976689Svbart@nginx.com *) Bugfix: keep-alive connections might hang after reconfiguration. 977689Svbart@nginx.com 978666Svbart@nginx.com 979666Svbart@nginx.comChanges with Unit 1.1 26 Apr 2018 980666Svbart@nginx.com 981666Svbart@nginx.com *) Bugfix: Python applications that use the write() callable did not 982666Svbart@nginx.com work. 983666Svbart@nginx.com 984666Svbart@nginx.com *) Bugfix: virtual environments created with Python 3.3 or above might 985666Svbart@nginx.com not have worked. 986666Svbart@nginx.com 987666Svbart@nginx.com *) Bugfix: the request.Read() function in Go applications did not 988666Svbart@nginx.com produce EOF when the whole body was read. 989666Svbart@nginx.com 990666Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred while access log 991666Svbart@nginx.com reopening. 992666Svbart@nginx.com 993666Svbart@nginx.com *) Bugfix: in parsing of IPv6 control socket addresses. 994666Svbart@nginx.com 995666Svbart@nginx.com *) Bugfix: loading of application modules was broken on OpenBSD. 996666Svbart@nginx.com 997666Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred when there were two 998666Svbart@nginx.com modules with the same type and version; the bug had appeared in 1.0. 999666Svbart@nginx.com 1000666Svbart@nginx.com *) Bugfix: alerts "freed pointer points to non-freeble page" might have 1001666Svbart@nginx.com appeared in log on 32-bit platforms. 1002666Svbart@nginx.com 1003639Svbart@nginx.com 1004639Svbart@nginx.comChanges with Unit 1.0 12 Apr 2018 1005639Svbart@nginx.com 1006639Svbart@nginx.com *) Change: configuration object moved into "/config/" path. 1007639Svbart@nginx.com 1008639Svbart@nginx.com *) Feature: basic access logging. 1009639Svbart@nginx.com 1010639Svbart@nginx.com *) Bugfix: 503 error occurred if Go application did not write response 1011639Svbart@nginx.com header or body. 1012639Svbart@nginx.com 1013639Svbart@nginx.com *) Bugfix: Ruby applications that use encoding conversions might not 1014663Svbart@nginx.com have worked. 1015639Svbart@nginx.com 1016639Svbart@nginx.com *) Bugfix: various stability issues. 1017639Svbart@nginx.com 1018586Svbart@nginx.com 1019586Svbart@nginx.comChanges with Unit 0.7 22 Mar 2018 1020586Svbart@nginx.com 1021586Svbart@nginx.com *) Feature: Ruby application module. 1022586Svbart@nginx.com 1023586Svbart@nginx.com *) Bugfix: in discovering modules. 1024586Svbart@nginx.com 1025586Svbart@nginx.com *) Bugfix: various race conditions on reconfiguration and during 1026586Svbart@nginx.com shutting down. 1027586Svbart@nginx.com 1028586Svbart@nginx.com *) Bugfix: tabs and trailing spaces were not allowed in header fields 1029586Svbart@nginx.com values. 1030586Svbart@nginx.com 1031586Svbart@nginx.com *) Bugfix: a segmentation fault occurred in Python module if 1032586Svbart@nginx.com start_response() was called outside of WSGI callable. 1033586Svbart@nginx.com 1034663Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred in PHP module if 1035663Svbart@nginx.com there was an error while initialization. 1036586Svbart@nginx.com 1037539Svbart@nginx.com 1038539Svbart@nginx.comChanges with Unit 0.6 09 Feb 2018 1039539Svbart@nginx.com 1040539Svbart@nginx.com *) Bugfix: the main process died when the "type" application option 1041539Svbart@nginx.com contained version; the bug had appeared in 0.5. 1042539Svbart@nginx.com 1043531Svbart@nginx.com 1044531Svbart@nginx.comChanges with Unit 0.5 08 Feb 2018 1045531Svbart@nginx.com 1046531Svbart@nginx.com *) Change: the "workers" application option was removed, the "processes" 1047531Svbart@nginx.com application option should be used instead. 1048531Svbart@nginx.com 1049531Svbart@nginx.com *) Feature: the "processes" application option with prefork and dynamic 1050531Svbart@nginx.com process management support. 1051531Svbart@nginx.com 1052531Svbart@nginx.com *) Feature: Perl application module. 1053531Svbart@nginx.com 1054531Svbart@nginx.com *) Bugfix: in reading client request body; the bug had appeared in 0.3. 1055531Svbart@nginx.com 1056663Svbart@nginx.com *) Bugfix: some Python applications might not have worked due to missing 1057531Svbart@nginx.com "wsgi.errors" environ variable. 1058531Svbart@nginx.com 1059531Svbart@nginx.com *) Bugfix: HTTP chunked responses might be encoded incorrectly on 32-bit 1060531Svbart@nginx.com platforms. 1061531Svbart@nginx.com 1062531Svbart@nginx.com *) Bugfix: infinite looping in HTTP parser. 1063531Svbart@nginx.com 1064531Svbart@nginx.com *) Bugfix: segmentation fault in router. 1065531Svbart@nginx.com 1066469Sigor@sysoev.ru 1067469Sigor@sysoev.ruChanges with Unit 0.4 15 Jan 2018 1068469Sigor@sysoev.ru 1069469Sigor@sysoev.ru *) Feature: compatibility with DragonFly BSD. 1070469Sigor@sysoev.ru 1071469Sigor@sysoev.ru *) Feature: "configure php --lib-static" option. 1072469Sigor@sysoev.ru 1073469Sigor@sysoev.ru *) Bugfix: HTTP request body was not passed to application; the bug had 1074469Sigor@sysoev.ru appeared in 0.3. 1075469Sigor@sysoev.ru 1076469Sigor@sysoev.ru *) Bugfix: HTTP large header buffers allocation and deallocation fixed; 1077469Sigor@sysoev.ru the bug had appeared in 0.3. 1078469Sigor@sysoev.ru 1079663Svbart@nginx.com *) Bugfix: some PHP applications might not have worked with relative 1080663Svbart@nginx.com "root" path. 1081469Sigor@sysoev.ru 1082432Sigor@sysoev.ru 1083432Sigor@sysoev.ruChanges with Unit 0.3 28 Dec 2017 1084432Sigor@sysoev.ru 1085432Sigor@sysoev.ru *) Change: the Go package name changed to "nginx/unit". 1086432Sigor@sysoev.ru 1087432Sigor@sysoev.ru *) Change: in the "limits.timeout" application option: application start 1088432Sigor@sysoev.ru time and time in queue now are not accounted. 1089432Sigor@sysoev.ru 1090432Sigor@sysoev.ru *) Feature: the "limits.requests" application option. 1091432Sigor@sysoev.ru 1092432Sigor@sysoev.ru *) Feature: application request processing latency optimization. 1093432Sigor@sysoev.ru 1094432Sigor@sysoev.ru *) Feature: HTTP keep-alive connections support. 1095432Sigor@sysoev.ru 1096432Sigor@sysoev.ru *) Feature: the "home" Python virtual environment configuration option. 1097432Sigor@sysoev.ru 1098432Sigor@sysoev.ru *) Feature: Python atexit hook support. 1099432Sigor@sysoev.ru 1100432Sigor@sysoev.ru *) Feature: various Go package improvements. 1101432Sigor@sysoev.ru 1102432Sigor@sysoev.ru *) Bugfix: various crashes fixed. 1103432Sigor@sysoev.ru 1104286Sigor@sysoev.ru 1105370Sigor@sysoev.ruChanges with Unit 0.2 19 Oct 2017 1106370Sigor@sysoev.ru 1107370Sigor@sysoev.ru *) Feature: configuration persistence. 1108370Sigor@sysoev.ru 1109370Sigor@sysoev.ru *) Feature: improved handling of configuration errors. 1110370Sigor@sysoev.ru 1111370Sigor@sysoev.ru *) Feature: application "timeout" property. 1112370Sigor@sysoev.ru 1113370Sigor@sysoev.ru *) Bugfix: POST request for PHP were handled incorrectly. 1114370Sigor@sysoev.ru 1115370Sigor@sysoev.ru *) Bugfix: the router exited abnormally if all listeners had been 1116370Sigor@sysoev.ru deleted. 1117370Sigor@sysoev.ru 1118370Sigor@sysoev.ru *) Bugfix: the router crashed under load. 1119370Sigor@sysoev.ru 1120370Sigor@sysoev.ru *) Bugfix: memory leak in the router. 1121370Sigor@sysoev.ru 1122370Sigor@sysoev.ru 1123370Sigor@sysoev.ruChanges with Unit 0.1 06 Sep 2017 1124286Sigor@sysoev.ru 1125286Sigor@sysoev.ru *) First public release. 1126286Sigor@sysoev.ru 1127