1*2118Szelenkov@nginx.com 2*2118Szelenkov@nginx.comChanges with Unit 1.27.0 02 Jun 2022 3*2118Szelenkov@nginx.com 4*2118Szelenkov@nginx.com *) Feature: ability to specify a custom index file name when serving 5*2118Szelenkov@nginx.com static files. 6*2118Szelenkov@nginx.com 7*2118Szelenkov@nginx.com *) Feature: variables support in the "location" option of the "return" 8*2118Szelenkov@nginx.com action. 9*2118Szelenkov@nginx.com 10*2118Szelenkov@nginx.com *) Feature: support empty strings in the "location" option of the 11*2118Szelenkov@nginx.com "return" action. 12*2118Szelenkov@nginx.com 13*2118Szelenkov@nginx.com *) Feature: added a new variable, $request_uri, that includes both the 14*2118Szelenkov@nginx.com path and the query parts as per RFC 3986, sections 3-4. 15*2118Szelenkov@nginx.com 16*2118Szelenkov@nginx.com *) Feature: Ruby Rack environment parameter "SCRIPT_NAME" support. 17*2118Szelenkov@nginx.com 18*2118Szelenkov@nginx.com *) Feature: compatibility with GCC 12. 19*2118Szelenkov@nginx.com 20*2118Szelenkov@nginx.com *) Bugfix: Ruby Sinatra applications don't work without custom logging. 21*2118Szelenkov@nginx.com 22*2118Szelenkov@nginx.com *) Bugfix: the controller process could crash when a chain of more than 23*2118Szelenkov@nginx.com four certificates was uploaded. 24*2118Szelenkov@nginx.com 25*2118Szelenkov@nginx.com *) Bugfix: some Perl applications failed to process the request body, 26*2118Szelenkov@nginx.com notably with Plack. 27*2118Szelenkov@nginx.com 28*2118Szelenkov@nginx.com *) Bugfix: some Spring Boot applications failed to start, notably with 29*2118Szelenkov@nginx.com Grails. 30*2118Szelenkov@nginx.com 31*2118Szelenkov@nginx.com *) Bugfix: incorrect Python protocol auto detection (ASGI or WSGI) for 32*2118Szelenkov@nginx.com native callable object, notably with Falcon. 33*2118Szelenkov@nginx.com 34*2118Szelenkov@nginx.com *) Bugfix: ECMAScript modules did not work with the recent Node.js 35*2118Szelenkov@nginx.com versions. 36*2118Szelenkov@nginx.com 372045Svbart@nginx.com 382045Svbart@nginx.comChanges with Unit 1.26.1 02 Dec 2021 392045Svbart@nginx.com 402045Svbart@nginx.com *) Bugfix: occasionally, the Unit daemon was unable to fully terminate; 412045Svbart@nginx.com the bug had appeared in 1.26.0. 422045Svbart@nginx.com 432045Svbart@nginx.com *) Bugfix: a prototype process could crash on an application process 442045Svbart@nginx.com exit; the bug had appeared in 1.26.0. 452045Svbart@nginx.com 462045Svbart@nginx.com *) Bugfix: the router process crashed on reconfiguration if "access_log" 472045Svbart@nginx.com was configured without listeners. 482045Svbart@nginx.com 492045Svbart@nginx.com *) Bugfix: a segmentation fault occurred in the PHP module if chdir() or 502045Svbart@nginx.com fastcgi_finish_request() was called in the OPcache preloading script. 512045Svbart@nginx.com 522045Svbart@nginx.com *) Bugfix: fatal errors on DragonFly BSD; the bug had appeared in 532045Svbart@nginx.com 1.26.0. 542045Svbart@nginx.com 552007Svbart@nginx.com 562007Svbart@nginx.comChanges with Unit 1.26.0 18 Nov 2021 572007Svbart@nginx.com 582007Svbart@nginx.com *) Change: the "share" option now specifies the entire path to the files 592007Svbart@nginx.com it serves, rather than a document root directory to be prepended to 602007Svbart@nginx.com the request URI. 612007Svbart@nginx.com 622007Svbart@nginx.com *) Feature: automatic adjustment of existing configurations to the new 632007Svbart@nginx.com "share" behavior when updating from previous versions. 642007Svbart@nginx.com 652007Svbart@nginx.com *) Feature: variables support in the "share" option. 662007Svbart@nginx.com 672007Svbart@nginx.com *) Feature: multiple paths in the "share" option. 682007Svbart@nginx.com 692007Svbart@nginx.com *) Feature: variables support in the "chroot" option. 702007Svbart@nginx.com 712007Svbart@nginx.com *) Feature: PHP opcache is shared between application processes. 722007Svbart@nginx.com 732007Svbart@nginx.com *) Feature: request routing by the query string. 742007Svbart@nginx.com 752007Svbart@nginx.com *) Bugfix: the router and app processes could crash when the requests 762007Svbart@nginx.com limit was reached by asynchronous or multithreaded apps. 772007Svbart@nginx.com 782007Svbart@nginx.com *) Bugfix: established WebSocket connections could stop reading frames 792007Svbart@nginx.com from the client after the corresponding listener had been 802007Svbart@nginx.com reconfigured. 812007Svbart@nginx.com 822007Svbart@nginx.com *) Bugfix: fixed building with glibc 2.34, notably Fedora 35. 832007Svbart@nginx.com 841945Svbart@nginx.com 851945Svbart@nginx.comChanges with Unit 1.25.0 19 Aug 2021 861945Svbart@nginx.com 871945Svbart@nginx.com *) Feature: client IP address replacement from a specified HTTP header 881945Svbart@nginx.com field. 891945Svbart@nginx.com 901945Svbart@nginx.com *) Feature: TLS sessions cache. 911945Svbart@nginx.com 921945Svbart@nginx.com *) Feature: TLS session tickets. 931945Svbart@nginx.com 941945Svbart@nginx.com *) Feature: application restart control. 951945Svbart@nginx.com 961945Svbart@nginx.com *) Feature: process and thread lifecycle hooks in Ruby. 971945Svbart@nginx.com 981945Svbart@nginx.com *) Bugfix: the router process could crash on TLS connection open when 991945Svbart@nginx.com multiple listeners with TLS certificates were configured; the bug had 1001945Svbart@nginx.com appeared in 1.23.0. 1011945Svbart@nginx.com 1021945Svbart@nginx.com *) Bugfix: TLS connections were rejected for configurations with 1031945Svbart@nginx.com multiple certificate bundles in a listener if the client did not use 1041945Svbart@nginx.com SNI. 1051945Svbart@nginx.com 1062007Svbart@nginx.com *) Bugfix: the router process could crash with frequent multithreaded 1071945Svbart@nginx.com application reconfiguration. 1081945Svbart@nginx.com 1091945Svbart@nginx.com *) Bugfix: compatibility issues with some Python ASGI apps, notably 1101945Svbart@nginx.com based on the Starlette framework. 1111945Svbart@nginx.com 1121945Svbart@nginx.com *) Bugfix: a descriptor and memory leak occurred in the router process 1131945Svbart@nginx.com when an app process stopped or crashed. 1141945Svbart@nginx.com 1151945Svbart@nginx.com *) Bugfix: the controller or router process could crash if the 1161945Svbart@nginx.com configuration contained a full-form IPv6 in a listener address. 1171945Svbart@nginx.com 1181945Svbart@nginx.com *) Bugfix: the router process crashed when a request was passed to an 1191945Svbart@nginx.com empty "routes" or "upstreams" using a variable "pass" option. 1201945Svbart@nginx.com 1211945Svbart@nginx.com *) Bugfix: the router process crashed while matching a request to an 1221945Svbart@nginx.com empty array of source or destination address patterns. 1231945Svbart@nginx.com 1241891Svbart@nginx.com 1251891Svbart@nginx.comChanges with Unit 1.24.0 27 May 2021 1261891Svbart@nginx.com 1271891Svbart@nginx.com *) Change: PHP added to the default MIME type list. 1281891Svbart@nginx.com 1291891Svbart@nginx.com *) Feature: arbitrary configuration of TLS connections via OpenSSL 1301891Svbart@nginx.com commands. 1311891Svbart@nginx.com 1321891Svbart@nginx.com *) Feature: the ability to limit static file serving by MIME types. 1331891Svbart@nginx.com 1341891Svbart@nginx.com *) Feature: support for chrooting, rejecting symlinks, and rejecting 1351891Svbart@nginx.com mount point traversal on a per-request basis when serving static 1361891Svbart@nginx.com files. 1371891Svbart@nginx.com 1381891Svbart@nginx.com *) Feature: a loader for automatically overriding the "http" and 1391891Svbart@nginx.com "websocket" modules in Node.js. 1401891Svbart@nginx.com 1411891Svbart@nginx.com *) Feature: multiple "targets" in Python applications. 1421891Svbart@nginx.com 1431891Svbart@nginx.com *) Feature: compatibility with Ruby 3.0. 1441891Svbart@nginx.com 1451891Svbart@nginx.com *) Bugfix: the router process could crash while closing a TLS 1461891Svbart@nginx.com connection. 1471891Svbart@nginx.com 1481891Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred in the PHP module if 1491891Svbart@nginx.com fastcgi_finish_request() was used with the "auto_globals_jit" option 1501891Svbart@nginx.com enabled. 1511891Svbart@nginx.com 1521834Svbart@nginx.com 1531834Svbart@nginx.comChanges with Unit 1.23.0 25 Mar 2021 1541834Svbart@nginx.com 1551834Svbart@nginx.com *) Feature: support for multiple certificate bundles on a listener via 1561834Svbart@nginx.com the Server Name Indication (SNI) TLS extension. 1571834Svbart@nginx.com 1581834Svbart@nginx.com *) Feature: "--mandir" ./configure option to specify the directory for 1591834Svbart@nginx.com man page installation. 1601834Svbart@nginx.com 1611834Svbart@nginx.com *) Bugfix: the router process could crash on premature TLS connection 1621834Svbart@nginx.com close; the bug had appeared in 1.17.0. 1631834Svbart@nginx.com 1641834Svbart@nginx.com *) Bugfix: a connection leak occurred on premature TLS connection close; 1651834Svbart@nginx.com the bug had appeared in 1.6. 1661834Svbart@nginx.com 1671834Svbart@nginx.com *) Bugfix: a descriptor and memory leak occurred in the router process 1681834Svbart@nginx.com when processing small WebSocket frames from a client; the bug had 1691834Svbart@nginx.com appeared in 1.19.0. 1701834Svbart@nginx.com 1711834Svbart@nginx.com *) Bugfix: a descriptor leak occurred in the router process when 1721834Svbart@nginx.com removing or reconfiguring an application; the bug had appeared in 1731834Svbart@nginx.com 1.19.0. 1741834Svbart@nginx.com 1751834Svbart@nginx.com *) Bugfix: persistent storage of certificates might've not worked with 1761834Svbart@nginx.com some filesystems in Linux, and all uploaded certificate bundles were 1771834Svbart@nginx.com forgotten after restart. 1781834Svbart@nginx.com 1791834Svbart@nginx.com *) Bugfix: the controller process could crash while requesting 1801834Svbart@nginx.com information about a certificate with a non-DNS SAN entry. 1811834Svbart@nginx.com 1821834Svbart@nginx.com *) Bugfix: the controller process could crash on manipulations with a 1831834Svbart@nginx.com certificate containing a SAN and no standard name attributes in 1841834Svbart@nginx.com subject or issuer. 1851834Svbart@nginx.com 1861834Svbart@nginx.com *) Bugfix: the Ruby module didn't respect the user locale for defaults 1871834Svbart@nginx.com in the Encoding class. 1881834Svbart@nginx.com 1891834Svbart@nginx.com *) Bugfix: the PHP 5 module failed to build with thread safety enabled; 1901834Svbart@nginx.com the bug had appeared in 1.22.0. 1911834Svbart@nginx.com 1921793Svbart@nginx.com 1931793Svbart@nginx.comChanges with Unit 1.22.0 04 Feb 2021 1941793Svbart@nginx.com 1951793Svbart@nginx.com *) Feature: the ServerRequest and ServerResponse objects of Node.js 1961793Svbart@nginx.com module are now compliant with Stream API. 1971793Svbart@nginx.com 1981793Svbart@nginx.com *) Feature: support for specifying multiple directories in the "path" 1991793Svbart@nginx.com option of Python apps. 2001793Svbart@nginx.com 2011793Svbart@nginx.com *) Bugfix: a memory leak occurred in the router process when serving 2021793Svbart@nginx.com files larger than 128K; the bug had appeared in 1.13.0. 2031793Svbart@nginx.com 2041793Svbart@nginx.com *) Bugfix: apps could stop processing new requests under high load; the 2051793Svbart@nginx.com bug had appeared in 1.19.0. 2061793Svbart@nginx.com 2071793Svbart@nginx.com *) Bugfix: app processes could terminate unexpectedly under high load; 2081793Svbart@nginx.com the bug had appeared in 1.19.0. 2091793Svbart@nginx.com 2101793Svbart@nginx.com *) Bugfix: invalid HTTP responses were generated for some unusual status 2111793Svbart@nginx.com codes. 2121793Svbart@nginx.com 2131793Svbart@nginx.com *) Bugfix: the PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server 2141793Svbart@nginx.com variables were missing in the PHP module. 2151793Svbart@nginx.com 2161793Svbart@nginx.com *) Bugfix: the router process could crash with multithreaded apps under 2171793Svbart@nginx.com high load. 2181793Svbart@nginx.com 2191793Svbart@nginx.com *) Bugfix: Ruby apps with multithreading configured could crash on start 2201793Svbart@nginx.com under load. 2211793Svbart@nginx.com 2221793Svbart@nginx.com *) Bugfix: mount points weren't unmounted when the "mount" namespace 2231793Svbart@nginx.com isolation was used; the bug had appeared in 1.21.0. 2241793Svbart@nginx.com 2251793Svbart@nginx.com *) Bugfix: the router process could crash while removing or 2261793Svbart@nginx.com reconfiguring an app that used WebSocket. 2271793Svbart@nginx.com 2281793Svbart@nginx.com *) Bugfix: a memory leak occurring in the router process when removing 2291793Svbart@nginx.com or reconfiguring an application; the bug had appeared in 1.19.0. 2301793Svbart@nginx.com 2311722Svbart@nginx.com 2321722Svbart@nginx.comChanges with Unit 1.21.0 19 Nov 2020 2331722Svbart@nginx.com 2341722Svbart@nginx.com *) Change: procfs is mounted by default for all languages when "rootfs" 2351722Svbart@nginx.com isolation is used. 2361722Svbart@nginx.com 2371722Svbart@nginx.com *) Change: any characters valid according to RFC 7230 are now allowed in 2381722Svbart@nginx.com HTTP header field names. 2391722Svbart@nginx.com 2401722Svbart@nginx.com *) Change: HTTP header fields with underscores ("_") are now discarded 2411722Svbart@nginx.com from requests by default. 2421722Svbart@nginx.com 2431722Svbart@nginx.com *) Feature: optional multithreaded request processing for Java, Python, 2441722Svbart@nginx.com Perl, and Ruby apps. 2451722Svbart@nginx.com 2461722Svbart@nginx.com *) Feature: regular expressions in route matching patterns. 2471722Svbart@nginx.com 2481722Svbart@nginx.com *) Feature: compatibility with Python 3.9. 2491722Svbart@nginx.com 2501722Svbart@nginx.com *) Feature: the Python module now supports ASGI 2.0 legacy applications. 2511722Svbart@nginx.com 2521722Svbart@nginx.com *) Feature: the "protocol" option in Python applications aids choice 2531722Svbart@nginx.com between ASGI and WSGI. 2541722Svbart@nginx.com 2551722Svbart@nginx.com *) Feature: the fastcgi_finish_request() PHP function that finalizes 2561722Svbart@nginx.com request processing and continues code execution without holding onto 2571722Svbart@nginx.com the client connection. 2581722Svbart@nginx.com 2591722Svbart@nginx.com *) Feature: the "discard_unsafe_fields" HTTP option that enables 2601722Svbart@nginx.com discarding request header fields with irregular (but still valid) 2611722Svbart@nginx.com characters in the field name. 2621722Svbart@nginx.com 2631722Svbart@nginx.com *) Feature: the "procfs" and "tmpfs" automount isolation options to 2641722Svbart@nginx.com disable automatic mounting of eponymous filesystems. 2651722Svbart@nginx.com 2661722Svbart@nginx.com *) Bugfix: the router process could crash when running Go applications 2671722Svbart@nginx.com under high load; the bug had appeared in 1.19.0. 2681722Svbart@nginx.com 2691722Svbart@nginx.com *) Bugfix: some language dependencies could remain mounted after using 2701722Svbart@nginx.com "rootfs" isolation. 2711722Svbart@nginx.com 2721722Svbart@nginx.com *) Bugfix: various compatibility issues in Java applications. 2731722Svbart@nginx.com 2741722Svbart@nginx.com *) Bugfix: the Java module built with the musl C library couldn't run 2751722Svbart@nginx.com applications that use "rootfs" isolation. 2761722Svbart@nginx.com 2771640Svbart@nginx.com 2781640Svbart@nginx.comChanges with Unit 1.20.0 08 Oct 2020 2791640Svbart@nginx.com 2801640Svbart@nginx.com *) Change: the PHP module is now initialized before chrooting; this 2811640Svbart@nginx.com enables loading all extensions from the host system. 2821640Svbart@nginx.com 2831640Svbart@nginx.com *) Change: AVIF and APNG image formats added to the default MIME type 2841640Svbart@nginx.com list. 2851640Svbart@nginx.com 2861643Svbart@nginx.com *) Change: functional tests migrated to the pytest framework. 2871643Svbart@nginx.com 2881640Svbart@nginx.com *) Feature: the Python module now fully supports applications that use 2891640Svbart@nginx.com the ASGI 3.0 server interface. 2901640Svbart@nginx.com 2911640Svbart@nginx.com *) Feature: the Python module now has a built-in WebSocket server 2921640Svbart@nginx.com implementation for applications, compatible with the HTTP & WebSocket 2931640Svbart@nginx.com ASGI Message Format 2.1 specification. 2941640Svbart@nginx.com 2951640Svbart@nginx.com *) Feature: automatic mounting of an isolated "/tmp" file system into 2961640Svbart@nginx.com chrooted application environments. 2971640Svbart@nginx.com 2981640Svbart@nginx.com *) Feature: the $host variable contains a normalized "Host" request 2991640Svbart@nginx.com value. 3001640Svbart@nginx.com 3011640Svbart@nginx.com *) Feature: the "callable" option sets Python application callable 3021640Svbart@nginx.com names. 3031640Svbart@nginx.com 3041640Svbart@nginx.com *) Feature: compatibility with PHP 8 RC 1. Thanks to Remi Collet. 3051640Svbart@nginx.com 3061640Svbart@nginx.com *) Feature: the "automount" option in the "isolation" object allows to 3071640Svbart@nginx.com turn off the automatic mounting of language module dependencies. 3081640Svbart@nginx.com 3091640Svbart@nginx.com *) Bugfix: "pass"-ing requests to upstreams from a route was broken; the 3101640Svbart@nginx.com bug had appeared in 1.19.0. Thanks to 洪志道 (Hong Zhi Dao) for 3111640Svbart@nginx.com discovering and fixing it. 3121640Svbart@nginx.com 3131640Svbart@nginx.com *) Bugfix: the router process could crash during reconfiguration. 3141640Svbart@nginx.com 3151640Svbart@nginx.com *) Bugfix: a memory leak occurring in the router process; the bug had 3161640Svbart@nginx.com appeared in 1.18.0. 3171640Svbart@nginx.com 3181640Svbart@nginx.com *) Bugfix: the "!" (non-empty) pattern was matched incorrectly; the bug 3191640Svbart@nginx.com had appeared in 1.19.0. 3201640Svbart@nginx.com 3211640Svbart@nginx.com *) Bugfix: fixed building on platforms without sendfile() support, 3221640Svbart@nginx.com notably NetBSD; the bug had appeared in 1.16.0. 3231640Svbart@nginx.com 3241570Svbart@nginx.com 3251570Svbart@nginx.comChanges with Unit 1.19.0 13 Aug 2020 3261570Svbart@nginx.com 3271570Svbart@nginx.com *) Feature: reworked IPC between the router process and the applications 3281570Svbart@nginx.com to lower latencies, increase performance, and improve scalability. 3291570Svbart@nginx.com 3301570Svbart@nginx.com *) Feature: support for an arbitrary number of wildcards in route 3311570Svbart@nginx.com matching patterns. 3321570Svbart@nginx.com 3331570Svbart@nginx.com *) Feature: chunked transfer encoding in proxy responses. 3341570Svbart@nginx.com 3351570Svbart@nginx.com *) Feature: basic variables support in the "pass" option. 3361570Svbart@nginx.com 3371570Svbart@nginx.com *) Feature: compatibility with PHP 8 Beta 1. Thanks to Remi Collet. 3381570Svbart@nginx.com 3391570Svbart@nginx.com *) Bugfix: the router process could crash while passing requests to an 3401570Svbart@nginx.com application under high load. 3411570Svbart@nginx.com 3421570Svbart@nginx.com *) Bugfix: a number of language modules failed to build on some systems; 3431570Svbart@nginx.com the bug had appeared in 1.18.0. 3441570Svbart@nginx.com 3451570Svbart@nginx.com *) Bugfix: time in error log messages from PHP applications could lag. 3461570Svbart@nginx.com 3471570Svbart@nginx.com *) Bugfix: reconfiguration requests could hang if an application had 3481570Svbart@nginx.com failed to start; the bug had appeared in 1.18.0. 3491570Svbart@nginx.com 3501570Svbart@nginx.com *) Bugfix: memory leak during reconfiguration. 3511570Svbart@nginx.com 3521570Svbart@nginx.com *) Bugfix: the daemon didn't start without language modules; the bug had 3531570Svbart@nginx.com appeared in 1.18.0. 3541570Svbart@nginx.com 3551570Svbart@nginx.com *) Bugfix: the router process could crash at exit. 3561570Svbart@nginx.com 3571570Svbart@nginx.com *) Bugfix: Node.js applications could crash at exit. 3581570Svbart@nginx.com 3591570Svbart@nginx.com *) Bugfix: the Ruby module could be linked against a wrong library 3601570Svbart@nginx.com version. 3611570Svbart@nginx.com 3621491Svbart@nginx.com 3631491Svbart@nginx.comChanges with Unit 1.18.0 28 May 2020 3641491Svbart@nginx.com 3651491Svbart@nginx.com *) Feature: the "rootfs" isolation option for changing root filesystem 3661491Svbart@nginx.com for an application. 3671491Svbart@nginx.com 3681491Svbart@nginx.com *) Feature: multiple "targets" in PHP applications. 3691491Svbart@nginx.com 3701491Svbart@nginx.com *) Feature: support for percent-encoding in the "uri" and "arguments" 3711491Svbart@nginx.com matching options and in the "pass" option. 3721491Svbart@nginx.com 3731460Svbart@nginx.com 3741460Svbart@nginx.comChanges with Unit 1.17.0 16 Apr 2020 3751460Svbart@nginx.com 3761460Svbart@nginx.com *) Feature: a "return" action with optional "location" for immediate 3771460Svbart@nginx.com responses and external redirection. 3781460Svbart@nginx.com 3791460Svbart@nginx.com *) Feature: fractional weights support for upstream servers. 3801460Svbart@nginx.com 3811460Svbart@nginx.com *) Bugfix: accidental 502 "Bad Gateway" errors might have occurred in 3821460Svbart@nginx.com applications under high load. 3831460Svbart@nginx.com 3841460Svbart@nginx.com *) Bugfix: memory leak in the router; the bug had appeared in 1.13.0. 3851460Svbart@nginx.com 3861460Svbart@nginx.com *) Bugfix: segmentation fault might have occurred in the router process 3871460Svbart@nginx.com when reaching open connections limit. 3881460Svbart@nginx.com 3891460Svbart@nginx.com *) Bugfix: "close() failed (9: Bad file descriptor)" alerts might have 3901460Svbart@nginx.com appeared in the log while processing large request bodies; the bug 3911460Svbart@nginx.com had appeared in 1.16.0. 3921460Svbart@nginx.com 3931460Svbart@nginx.com *) Bugfix: existing application processes didn't reopen the log file. 3941460Svbart@nginx.com 3951460Svbart@nginx.com *) Bugfix: incompatibility with some Node.js applications. 3961460Svbart@nginx.com 3971460Svbart@nginx.com *) Bugfix: broken build on DragonFly BSD; the bug had appeared in 3981460Svbart@nginx.com 1.16.0. 3991460Svbart@nginx.com 4001404Svbart@nginx.com 4011404Svbart@nginx.comChanges with Unit 1.16.0 12 Mar 2020 4021404Svbart@nginx.com 4031404Svbart@nginx.com *) Feature: basic load-balancing support with round-robin. 4041404Svbart@nginx.com 4051404Svbart@nginx.com *) Feature: a "fallback" option that performs an alternative action if a 4061404Svbart@nginx.com request can't be served from the "share" directory. 4071404Svbart@nginx.com 4081404Svbart@nginx.com *) Feature: reduced memory consumption by dumping large request bodies 4091404Svbart@nginx.com to disk. 4101404Svbart@nginx.com 4111404Svbart@nginx.com *) Feature: stripping UTF-8 BOM and JavaScript-style comments from 4121404Svbart@nginx.com uploaded JSON. 4131404Svbart@nginx.com 4141404Svbart@nginx.com *) Bugfix: negative address matching in router might work improperly in 4151404Svbart@nginx.com combination with non-negative patterns. 4161404Svbart@nginx.com 4171404Svbart@nginx.com *) Bugfix: Java Spring applications failed to run; the bug had appeared 4181404Svbart@nginx.com in 1.10.0. 4191404Svbart@nginx.com 4201404Svbart@nginx.com *) Bugfix: PHP 7.4 was broken if it was built with thread safety 4211404Svbart@nginx.com enabled. 4221404Svbart@nginx.com 4231404Svbart@nginx.com *) Bugfix: compatibility issues with some Python applications. 4241404Svbart@nginx.com 4251357Svbart@nginx.com 4261357Svbart@nginx.comChanges with Unit 1.15.0 06 Feb 2020 4271357Svbart@nginx.com 4281357Svbart@nginx.com *) Change: extensions of dynamically requested PHP scripts were 4291357Svbart@nginx.com restricted to ".php". 4301357Svbart@nginx.com 4311357Svbart@nginx.com *) Feature: compatibility with Ruby 2.7. 4321357Svbart@nginx.com 4331357Svbart@nginx.com *) Bugfix: segmentation fault might have occurred in the router process 4341357Svbart@nginx.com with multiple application processes under load; the bug had appeared 4351357Svbart@nginx.com in 1.14.0. 4361357Svbart@nginx.com 4371357Svbart@nginx.com *) Bugfix: receiving request body over TLS connection might have 4381357Svbart@nginx.com stalled. 4391357Svbart@nginx.com 4401330Svbart@nginx.com 4411330Svbart@nginx.comChanges with Unit 1.14.0 26 Dec 2019 4421330Svbart@nginx.com 4431330Svbart@nginx.com *) Change: the Go package import name changed to "unit.nginx.org/go". 4441330Svbart@nginx.com 4451330Svbart@nginx.com *) Change: Go package now links to libunit instead of including library 4461330Svbart@nginx.com sources. 4471330Svbart@nginx.com 4481330Svbart@nginx.com *) Feature: ability to change user and group for isolated applications 4491330Svbart@nginx.com when Unit daemon runs as an unprivileged user. 4501330Svbart@nginx.com 4511330Svbart@nginx.com *) Feature: request routing by source and destination addresses and 4521330Svbart@nginx.com ports. 4531330Svbart@nginx.com 4541330Svbart@nginx.com *) Bugfix: memory bloat on large responses. 4551330Svbart@nginx.com 4561284Svbart@nginx.com 4571284Svbart@nginx.comChanges with Unit 1.13.0 14 Nov 2019 4581284Svbart@nginx.com 4591284Svbart@nginx.com *) Feature: basic support for HTTP reverse proxying. 4601284Svbart@nginx.com 4611284Svbart@nginx.com *) Feature: compatibility with Python 3.8. 4621284Svbart@nginx.com 4631284Svbart@nginx.com *) Bugfix: memory leak in Python application processes when the close 4641284Svbart@nginx.com handler was used. 4651284Svbart@nginx.com 4661284Svbart@nginx.com *) Bugfix: threads in Python applications might not work correctly. 4671284Svbart@nginx.com 4681284Svbart@nginx.com *) Bugfix: Ruby on Rails applications might not work on Ruby 2.6. 4691284Svbart@nginx.com 4701284Svbart@nginx.com *) Bugfix: backtraces for uncaught exceptions in Python 3 might be 4711284Svbart@nginx.com logged with significant delays. 4721284Svbart@nginx.com 4731284Svbart@nginx.com *) Bugfix: explicit setting a namespaces isolation option to false might 4741284Svbart@nginx.com have enabled it. 4751284Svbart@nginx.com 4761222Svbart@nginx.com 4771222Svbart@nginx.comChanges with Unit 1.12.0 03 Oct 2019 4781222Svbart@nginx.com 4791222Svbart@nginx.com *) Feature: compatibility with PHP 7.4. 4801222Svbart@nginx.com 4811222Svbart@nginx.com *) Bugfix: descriptors leak on process creation; the bug had appeared in 4821222Svbart@nginx.com 1.11.0. 4831222Svbart@nginx.com 4841222Svbart@nginx.com *) Bugfix: TLS connection might be closed prematurely while sending 4851222Svbart@nginx.com response. 4861222Svbart@nginx.com 4871222Svbart@nginx.com *) Bugfix: segmentation fault might have occurred if an irregular file 4881222Svbart@nginx.com was requested. 4891222Svbart@nginx.com 4901185Svbart@nginx.com 4911185Svbart@nginx.comChanges with Unit 1.11.0 19 Sep 2019 4921185Svbart@nginx.com 4931185Svbart@nginx.com *) Feature: basic support for serving static files. 4941185Svbart@nginx.com 4951185Svbart@nginx.com *) Feature: isolation of application processes with Linux namespaces. 4961185Svbart@nginx.com 4971185Svbart@nginx.com *) Feature: built-in WebSocket server implementation for Java Servlet 4981185Svbart@nginx.com Containers. 4991185Svbart@nginx.com 5001185Svbart@nginx.com *) Feature: direct addressing of API configuration options containing 5011185Svbart@nginx.com slashes "/" using URI encoding (%2F). 5021185Svbart@nginx.com 5031185Svbart@nginx.com *) Bugfix: segmentation fault might have occurred in Go applications 5041185Svbart@nginx.com under high load. 5051185Svbart@nginx.com 5061185Svbart@nginx.com *) Bugfix: WebSocket support was broken if Unit was built with some 5071185Svbart@nginx.com linkers other than GNU ld (e.g. gold or LLD). 5081185Svbart@nginx.com 5091134Svbart@nginx.com 5101134Svbart@nginx.comChanges with Unit 1.10.0 22 Aug 2019 5111134Svbart@nginx.com 5121134Svbart@nginx.com *) Change: matching of cookies in routes made case sensitive. 5131134Svbart@nginx.com 5141134Svbart@nginx.com *) Change: decreased log level of common errors when clients close 5151134Svbart@nginx.com connections. 5161134Svbart@nginx.com 5171134Svbart@nginx.com *) Change: removed the Perl module's "--include=" ./configure option. 5181134Svbart@nginx.com 5191134Svbart@nginx.com *) Feature: built-in WebSocket server implementation for Node.js module. 5201134Svbart@nginx.com 5211134Svbart@nginx.com *) Feature: splitting PATH_INFO from request URI in PHP module. 5221134Svbart@nginx.com 5231134Svbart@nginx.com *) Feature: request routing by scheme (HTTP or HTTPS). 5241134Svbart@nginx.com 5251134Svbart@nginx.com *) Feature: support for multipart requests body in Java module. 5261134Svbart@nginx.com 5271134Svbart@nginx.com *) Feature: improved API compatibility with Node.js 11.10 or later. 5281134Svbart@nginx.com 5291134Svbart@nginx.com *) Bugfix: reconfiguration failed if "listeners" or "applications" 5301134Svbart@nginx.com objects were missing. 5311134Svbart@nginx.com 5321134Svbart@nginx.com *) Bugfix: applying a large configuration might have failed. 5331134Svbart@nginx.com 5341069Svbart@nginx.com 5351069Svbart@nginx.comChanges with Unit 1.9.0 30 May 2019 5361069Svbart@nginx.com 5371069Svbart@nginx.com *) Feature: request routing by arguments, headers, and cookies. 5381069Svbart@nginx.com 5391069Svbart@nginx.com *) Feature: route matching patterns allow a wildcard in the middle. 5401069Svbart@nginx.com 5411069Svbart@nginx.com *) Feature: POST operation for appending elements to arrays in 5421069Svbart@nginx.com configuration. 5431069Svbart@nginx.com 5441069Svbart@nginx.com *) Feature: support for changing credentials using CAP_SETUID and 5451069Svbart@nginx.com CAP_SETGID capabilities on Linux without running main process as 5461069Svbart@nginx.com privileged user. 5471069Svbart@nginx.com 5481069Svbart@nginx.com *) Bugfix: memory leak in the router process might have happened when a 5491069Svbart@nginx.com client prematurely closed the connection. 5501069Svbart@nginx.com 5511069Svbart@nginx.com *) Bugfix: applying a large configuration might have failed. 5521069Svbart@nginx.com 5531069Svbart@nginx.com *) Bugfix: PUT and DELETE operations on array elements in configuration 5541069Svbart@nginx.com did not work. 5551069Svbart@nginx.com 5561069Svbart@nginx.com *) Bugfix: request schema in applications did not reflect TLS 5571069Svbart@nginx.com connections. 5581069Svbart@nginx.com 5591069Svbart@nginx.com *) Bugfix: restored compatibility with Node.js applications that use 5601069Svbart@nginx.com ServerResponse._implicitHeader() function; the bug had appeared in 5611069Svbart@nginx.com 1.7. 5621069Svbart@nginx.com 5631069Svbart@nginx.com *) Bugfix: various compatibility issues with Node.js applications. 5641069Svbart@nginx.com 565991Svbart@nginx.com 566991Svbart@nginx.comChanges with Unit 1.8.0 01 Mar 2019 567991Svbart@nginx.com 568991Svbart@nginx.com *) Change: now three numbers are always used for versioning: major, 569991Svbart@nginx.com minor, and patch versions. 570991Svbart@nginx.com 571991Svbart@nginx.com *) Change: now QUERY_STRING is always defined even if the request does 572991Svbart@nginx.com not include the query component. 573991Svbart@nginx.com 574991Svbart@nginx.com *) Feature: basic internal request routing by Host, URI, and method. 575991Svbart@nginx.com 576991Svbart@nginx.com *) Feature: experimental support for Java Servlet Containers. 577991Svbart@nginx.com 578991Svbart@nginx.com *) Bugfix: segmentation fault might have occurred in the router process. 579991Svbart@nginx.com 580991Svbart@nginx.com *) Bugfix: various potential memory leaks. 581991Svbart@nginx.com 582991Svbart@nginx.com *) Bugfix: TLS connections might have stalled. 583991Svbart@nginx.com 584991Svbart@nginx.com *) Bugfix: some Perl applications might have failed to send the response 585991Svbart@nginx.com body. 586991Svbart@nginx.com 587991Svbart@nginx.com *) Bugfix: some compilers with specific flags might have produced 588991Svbart@nginx.com non-functioning builds; the bug had appeared in 1.5. 589991Svbart@nginx.com 590991Svbart@nginx.com *) Bugfix: Node.js package had wrong version number when installed from 591991Svbart@nginx.com sources. 592991Svbart@nginx.com 593926Svbart@nginx.com 594926Svbart@nginx.comChanges with Unit 1.7.1 07 Feb 2019 595926Svbart@nginx.com 596926Svbart@nginx.com *) Security: a heap memory buffer overflow might have been caused in the 597926Svbart@nginx.com router process by a specially crafted request, potentially resulting 598926Svbart@nginx.com in a segmentation fault or other unspecified behavior 599926Svbart@nginx.com (CVE-2019-7401). 600926Svbart@nginx.com 601926Svbart@nginx.com *) Bugfix: install of Go module failed without prior building of Unit 602926Svbart@nginx.com daemon; the bug had appeared in 1.7. 603926Svbart@nginx.com 604886Svbart@nginx.com 605886Svbart@nginx.comChanges with Unit 1.7 20 Dec 2018 606886Svbart@nginx.com 607886Svbart@nginx.com *) Change: now rpath is set in Ruby module only if the library was not 608886Svbart@nginx.com found in default search paths; this allows to meet packaging 609886Svbart@nginx.com restrictions on some systems. 610886Svbart@nginx.com 611886Svbart@nginx.com *) Bugfix: "disable_functions" and "disable_classes" PHP options set via 612886Svbart@nginx.com Control API did not work. 613886Svbart@nginx.com 614886Svbart@nginx.com *) Bugfix: Promises on request data in Node.js were not triggered. 615886Svbart@nginx.com 616886Svbart@nginx.com *) Bugfix: various compatibility issues with Node.js applications. 617886Svbart@nginx.com 618886Svbart@nginx.com *) Bugfix: a segmentation fault occurred in Node.js module if 619886Svbart@nginx.com application tried to read request body after request.end() was 620886Svbart@nginx.com called. 621886Svbart@nginx.com 622886Svbart@nginx.com *) Bugfix: a segmentation fault occurred in Node.js module if 623886Svbart@nginx.com application attempted to send header twice. 624886Svbart@nginx.com 625886Svbart@nginx.com *) Bugfix: names of response header fields in Node.js module were 626886Svbart@nginx.com erroneously treated as case-sensitive. 627886Svbart@nginx.com 628886Svbart@nginx.com *) Bugfix: uncatched exceptions in Node.js were not logged. 629886Svbart@nginx.com 630886Svbart@nginx.com *) Bugfix: global install of Node.js module from sources was broken on 631886Svbart@nginx.com some systems; the bug had appeared in 1.6. 632886Svbart@nginx.com 633886Svbart@nginx.com *) Bugfix: traceback for exceptions during initialization of Python 634886Svbart@nginx.com applications might not be logged. 635886Svbart@nginx.com 636886Svbart@nginx.com *) Bugfix: PHP module build failed if PHP interpreter was built with 637886Svbart@nginx.com thread safety enabled. 638886Svbart@nginx.com 639846Svbart@nginx.com 640846Svbart@nginx.comChanges with Unit 1.6 15 Nov 2018 641846Svbart@nginx.com 642846Svbart@nginx.com *) Change: "make install" now installs Node.js module as well if it was 643846Svbart@nginx.com configured. 644846Svbart@nginx.com 645846Svbart@nginx.com *) Feature: "--local" ./configure option to install Node.js module 646846Svbart@nginx.com locally. 647846Svbart@nginx.com 648846Svbart@nginx.com *) Bugfix: Node.js module might have crashed due to broken reference 649846Svbart@nginx.com counting. 650846Svbart@nginx.com 651846Svbart@nginx.com *) Bugfix: asynchronous operations in Node.js might not have worked. 652846Svbart@nginx.com 653846Svbart@nginx.com *) Bugfix: various compatibility issues with Node.js applications. 654846Svbart@nginx.com 655846Svbart@nginx.com *) Bugfix: "freed pointer is out of pool" alerts might have appeared in 656846Svbart@nginx.com log. 657846Svbart@nginx.com 658885Svbart@nginx.com *) Bugfix: module discovery did not work on 64-bit big-endian systems 659846Svbart@nginx.com like IBM/S390x. 660846Svbart@nginx.com 661820Svbart@nginx.com 662820Svbart@nginx.comChanges with Unit 1.5 25 Oct 2018 663820Svbart@nginx.com 664820Svbart@nginx.com *) Change: the "type" of application object for Go was changed to 665820Svbart@nginx.com "external". 666820Svbart@nginx.com 667820Svbart@nginx.com *) Feature: initial version of Node.js package with basic HTTP 668820Svbart@nginx.com request-response support. 669820Svbart@nginx.com 670820Svbart@nginx.com *) Feature: compatibility with LibreSSL. 671820Svbart@nginx.com 672820Svbart@nginx.com *) Feature: --libdir and --incdir ./configure options to install libunit 673820Svbart@nginx.com headers and static library. 674820Svbart@nginx.com 675820Svbart@nginx.com *) Bugfix: connection might be closed prematurely while sending 676820Svbart@nginx.com response; the bug had appeared in 1.3. 677820Svbart@nginx.com 678820Svbart@nginx.com *) Bugfix: application processes might have stopped handling requests, 679820Svbart@nginx.com producing "last message send failed: Resource temporarily 680820Svbart@nginx.com unavailable" alerts in log; the bug had appeared in 1.4. 681820Svbart@nginx.com 682885Svbart@nginx.com *) Bugfix: Go applications did not work when Unit was built with musl C 683820Svbart@nginx.com library. 684820Svbart@nginx.com 685783Svbart@nginx.com 686783Svbart@nginx.comChanges with Unit 1.4 20 Sep 2018 687783Svbart@nginx.com 688783Svbart@nginx.com *) Change: the control API maps the configuration object only at 689783Svbart@nginx.com "/config/". 690783Svbart@nginx.com 691783Svbart@nginx.com *) Feature: TLS support for client connections. 692783Svbart@nginx.com 693783Svbart@nginx.com *) Feature: TLS certificates storage control API. 694783Svbart@nginx.com 695783Svbart@nginx.com *) Feature: Unit library (libunit) to streamline language module 696783Svbart@nginx.com integration. 697783Svbart@nginx.com 698783Svbart@nginx.com *) Feature: "408 Request Timeout" responses while closing HTTP 699783Svbart@nginx.com keep-alive connections. 700783Svbart@nginx.com 701783Svbart@nginx.com *) Feature: improvements in OpenBSD support. Thanks to David Carlier. 702783Svbart@nginx.com 703783Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred after 704783Svbart@nginx.com reconfiguration. 705783Svbart@nginx.com 706783Svbart@nginx.com *) Bugfix: building on systems with non-default locale might be broken. 707783Svbart@nginx.com 708783Svbart@nginx.com *) Bugfix: "header_read_timeout" might not work properly. 709783Svbart@nginx.com 710783Svbart@nginx.com *) Bugfix: header fields values with non-ASCII bytes might be handled 711783Svbart@nginx.com incorrectly in Python 3 module. 712783Svbart@nginx.com 713727Svbart@nginx.com 714727Svbart@nginx.comChanges with Unit 1.3 13 Jul 2018 715727Svbart@nginx.com 716727Svbart@nginx.com *) Change: UTF-8 characters are now allowed in request header field 717727Svbart@nginx.com values. 718727Svbart@nginx.com 719727Svbart@nginx.com *) Feature: configuration of the request body size limit. 720727Svbart@nginx.com 721727Svbart@nginx.com *) Feature: configuration of various HTTP connection timeouts. 722727Svbart@nginx.com 723727Svbart@nginx.com *) Feature: Ruby module now automatically uses Bundler where possible. 724727Svbart@nginx.com 725727Svbart@nginx.com *) Feature: http.Flusher interface in Go module. 726727Svbart@nginx.com 727727Svbart@nginx.com *) Bugfix: various issues in HTTP connection errors handling. 728727Svbart@nginx.com 729727Svbart@nginx.com *) Bugfix: requests with body data might be handled incorrectly in PHP 730727Svbart@nginx.com module. 731727Svbart@nginx.com 732727Svbart@nginx.com *) Bugfix: individual PHP configuration options specified via control 733727Svbart@nginx.com API were reset to previous values after the first request in 734727Svbart@nginx.com application process. 735727Svbart@nginx.com 736689Svbart@nginx.com 737689Svbart@nginx.comChanges with Unit 1.2 07 Jun 2018 738689Svbart@nginx.com 739689Svbart@nginx.com *) Feature: configuration of environment variables for application 740689Svbart@nginx.com processes. 741689Svbart@nginx.com 742689Svbart@nginx.com *) Feature: customization of php.ini path. 743689Svbart@nginx.com 744689Svbart@nginx.com *) Feature: setting of individual PHP configuration options. 745689Svbart@nginx.com 746689Svbart@nginx.com *) Feature: configuration of execution arguments for Go applications. 747689Svbart@nginx.com 748689Svbart@nginx.com *) Bugfix: keep-alive connections might hang after reconfiguration. 749689Svbart@nginx.com 750666Svbart@nginx.com 751666Svbart@nginx.comChanges with Unit 1.1 26 Apr 2018 752666Svbart@nginx.com 753666Svbart@nginx.com *) Bugfix: Python applications that use the write() callable did not 754666Svbart@nginx.com work. 755666Svbart@nginx.com 756666Svbart@nginx.com *) Bugfix: virtual environments created with Python 3.3 or above might 757666Svbart@nginx.com not have worked. 758666Svbart@nginx.com 759666Svbart@nginx.com *) Bugfix: the request.Read() function in Go applications did not 760666Svbart@nginx.com produce EOF when the whole body was read. 761666Svbart@nginx.com 762666Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred while access log 763666Svbart@nginx.com reopening. 764666Svbart@nginx.com 765666Svbart@nginx.com *) Bugfix: in parsing of IPv6 control socket addresses. 766666Svbart@nginx.com 767666Svbart@nginx.com *) Bugfix: loading of application modules was broken on OpenBSD. 768666Svbart@nginx.com 769666Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred when there were two 770666Svbart@nginx.com modules with the same type and version; the bug had appeared in 1.0. 771666Svbart@nginx.com 772666Svbart@nginx.com *) Bugfix: alerts "freed pointer points to non-freeble page" might have 773666Svbart@nginx.com appeared in log on 32-bit platforms. 774666Svbart@nginx.com 775639Svbart@nginx.com 776639Svbart@nginx.comChanges with Unit 1.0 12 Apr 2018 777639Svbart@nginx.com 778639Svbart@nginx.com *) Change: configuration object moved into "/config/" path. 779639Svbart@nginx.com 780639Svbart@nginx.com *) Feature: basic access logging. 781639Svbart@nginx.com 782639Svbart@nginx.com *) Bugfix: 503 error occurred if Go application did not write response 783639Svbart@nginx.com header or body. 784639Svbart@nginx.com 785639Svbart@nginx.com *) Bugfix: Ruby applications that use encoding conversions might not 786663Svbart@nginx.com have worked. 787639Svbart@nginx.com 788639Svbart@nginx.com *) Bugfix: various stability issues. 789639Svbart@nginx.com 790586Svbart@nginx.com 791586Svbart@nginx.comChanges with Unit 0.7 22 Mar 2018 792586Svbart@nginx.com 793586Svbart@nginx.com *) Feature: Ruby application module. 794586Svbart@nginx.com 795586Svbart@nginx.com *) Bugfix: in discovering modules. 796586Svbart@nginx.com 797586Svbart@nginx.com *) Bugfix: various race conditions on reconfiguration and during 798586Svbart@nginx.com shutting down. 799586Svbart@nginx.com 800586Svbart@nginx.com *) Bugfix: tabs and trailing spaces were not allowed in header fields 801586Svbart@nginx.com values. 802586Svbart@nginx.com 803586Svbart@nginx.com *) Bugfix: a segmentation fault occurred in Python module if 804586Svbart@nginx.com start_response() was called outside of WSGI callable. 805586Svbart@nginx.com 806663Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred in PHP module if 807663Svbart@nginx.com there was an error while initialization. 808586Svbart@nginx.com 809539Svbart@nginx.com 810539Svbart@nginx.comChanges with Unit 0.6 09 Feb 2018 811539Svbart@nginx.com 812539Svbart@nginx.com *) Bugfix: the main process died when the "type" application option 813539Svbart@nginx.com contained version; the bug had appeared in 0.5. 814539Svbart@nginx.com 815531Svbart@nginx.com 816531Svbart@nginx.comChanges with Unit 0.5 08 Feb 2018 817531Svbart@nginx.com 818531Svbart@nginx.com *) Change: the "workers" application option was removed, the "processes" 819531Svbart@nginx.com application option should be used instead. 820531Svbart@nginx.com 821531Svbart@nginx.com *) Feature: the "processes" application option with prefork and dynamic 822531Svbart@nginx.com process management support. 823531Svbart@nginx.com 824531Svbart@nginx.com *) Feature: Perl application module. 825531Svbart@nginx.com 826531Svbart@nginx.com *) Bugfix: in reading client request body; the bug had appeared in 0.3. 827531Svbart@nginx.com 828663Svbart@nginx.com *) Bugfix: some Python applications might not have worked due to missing 829531Svbart@nginx.com "wsgi.errors" environ variable. 830531Svbart@nginx.com 831531Svbart@nginx.com *) Bugfix: HTTP chunked responses might be encoded incorrectly on 32-bit 832531Svbart@nginx.com platforms. 833531Svbart@nginx.com 834531Svbart@nginx.com *) Bugfix: infinite looping in HTTP parser. 835531Svbart@nginx.com 836531Svbart@nginx.com *) Bugfix: segmentation fault in router. 837531Svbart@nginx.com 838469Sigor@sysoev.ru 839469Sigor@sysoev.ruChanges with Unit 0.4 15 Jan 2018 840469Sigor@sysoev.ru 841469Sigor@sysoev.ru *) Feature: compatibility with DragonFly BSD. 842469Sigor@sysoev.ru 843469Sigor@sysoev.ru *) Feature: "configure php --lib-static" option. 844469Sigor@sysoev.ru 845469Sigor@sysoev.ru *) Bugfix: HTTP request body was not passed to application; the bug had 846469Sigor@sysoev.ru appeared in 0.3. 847469Sigor@sysoev.ru 848469Sigor@sysoev.ru *) Bugfix: HTTP large header buffers allocation and deallocation fixed; 849469Sigor@sysoev.ru the bug had appeared in 0.3. 850469Sigor@sysoev.ru 851663Svbart@nginx.com *) Bugfix: some PHP applications might not have worked with relative 852663Svbart@nginx.com "root" path. 853469Sigor@sysoev.ru 854432Sigor@sysoev.ru 855432Sigor@sysoev.ruChanges with Unit 0.3 28 Dec 2017 856432Sigor@sysoev.ru 857432Sigor@sysoev.ru *) Change: the Go package name changed to "nginx/unit". 858432Sigor@sysoev.ru 859432Sigor@sysoev.ru *) Change: in the "limits.timeout" application option: application start 860432Sigor@sysoev.ru time and time in queue now are not accounted. 861432Sigor@sysoev.ru 862432Sigor@sysoev.ru *) Feature: the "limits.requests" application option. 863432Sigor@sysoev.ru 864432Sigor@sysoev.ru *) Feature: application request processing latency optimization. 865432Sigor@sysoev.ru 866432Sigor@sysoev.ru *) Feature: HTTP keep-alive connections support. 867432Sigor@sysoev.ru 868432Sigor@sysoev.ru *) Feature: the "home" Python virtual environment configuration option. 869432Sigor@sysoev.ru 870432Sigor@sysoev.ru *) Feature: Python atexit hook support. 871432Sigor@sysoev.ru 872432Sigor@sysoev.ru *) Feature: various Go package improvements. 873432Sigor@sysoev.ru 874432Sigor@sysoev.ru *) Bugfix: various crashes fixed. 875432Sigor@sysoev.ru 876286Sigor@sysoev.ru 877370Sigor@sysoev.ruChanges with Unit 0.2 19 Oct 2017 878370Sigor@sysoev.ru 879370Sigor@sysoev.ru *) Feature: configuration persistence. 880370Sigor@sysoev.ru 881370Sigor@sysoev.ru *) Feature: improved handling of configuration errors. 882370Sigor@sysoev.ru 883370Sigor@sysoev.ru *) Feature: application "timeout" property. 884370Sigor@sysoev.ru 885370Sigor@sysoev.ru *) Bugfix: POST request for PHP were handled incorrectly. 886370Sigor@sysoev.ru 887370Sigor@sysoev.ru *) Bugfix: the router exited abnormally if all listeners had been 888370Sigor@sysoev.ru deleted. 889370Sigor@sysoev.ru 890370Sigor@sysoev.ru *) Bugfix: the router crashed under load. 891370Sigor@sysoev.ru 892370Sigor@sysoev.ru *) Bugfix: memory leak in the router. 893370Sigor@sysoev.ru 894370Sigor@sysoev.ru 895370Sigor@sysoev.ruChanges with Unit 0.1 06 Sep 2017 896286Sigor@sysoev.ru 897286Sigor@sysoev.ru *) First public release. 898286Sigor@sysoev.ru 899