在 2012年3月25日 下午3:41,agentzh <age...@gmail.com> 写道:
> Hi, folks!
>
> I'm happy to announce that ngx_openresty's new stable version 1.0.11.28 has
> just been released. You can download the source tarball from the Download
> page on openresty.org:
>
- sooo great! try it now!
> http://openresty.org/#Download
>
> This is the first (and also the last) stable version of ngx_openresty based
> on the Nginx 1.0.11 core. Future versions will be based on the latest Nginx
> stable version.
>
> This version features the new "cosocket API" shipped with the ngx_lua module
> as well as various new Lua client libraries based on that (for Memcached,
> Redis, MySQL, and others), which are all 100% nonblocking.
>
> Special thanks go to all our contributors and users!
>
> Here goes the complete change log, as compared to the last stable version,
> 1.0.10.48, released about two months ago.
>
> feature: bundle Piotr Sikora's CoolkitNginxModule 0.2rc1, which is also
> enabled by default.
> feature: bundle LuaRestyMySQLLibrary 0.06, which is enabled by default.
> feature: bundle LuaRestyRedisLibrary 0.08, which is enabled by default.
> feature: bundle LuaRestyMemcachedLibrary 0.06, which is enabled by default.
> feature: bundle LuaRestyUploadLibrary 0.02, which is enabled by default.
> thanks Taylor Weibley for sponsoring the development work.
> feature: bundle LuaRestyStringLibrary 0.05, which is enabled by default.
> upgraded LuaNginxModule to 0.5.0rc21.
>
> feature: implemented the coroutine-based TCP and Unix Domain client socket
> API (aka the "cosocket" API) that is mostly compatible with the LuaSocket
> library.
> feature: implemented built-in connection pool support for the cosocket API.
> feature: added new function ngx.req.socket() to return a cosocket object for
> the downstream connection so as to do streaming request body reading. thanks
> Taylor Weibley for sponsoring the development work.
> feature: added new directive lua_http10_buffering which is on by default.
> feature: added user flags support to the shared dictionary API. thanks Brian
> Akins.
> feature: added new method flush_all to the shared dict. thanks Weiqiang Li.
> feature: added the ngx.sha1_bin method which returns the binary form of the
> SHA-1 digest.
> feature: added constant ngx.null which is a NULL light userdata to represent
> nil values in Lua tables and etc. this is compatible with at least lua-cjson
> library's cjson.null constant.
> feature: allow use of ngx.null in ngx.log() and print() arguments.
> feature: added new constant ngx.DECLINED.
> bugfix: we did not declare C variables at the beginning of the current code
> block in ngx_http_lua_del_thread, reported by runner-mei in github issue
> #93.
> bugfix: incorrectly used ngx_conf_log_error by feeding NGX_ERROR as the
> first argument, as reported by runner-mei in github issue #92.
> bugfix: spelling errors in Lua exception message text.
> bugfix: access_by_lua could not work with the satisfy any configuration.
> bugfix: now we recycle the special flush buffer and chain link for ngx.flush
> to prevent request-scoped memory leaks when emitting long data streams to
> the downstream.
> bugfix: time stamps could overflow on 32-bit systems in the shared dict API;
> now we explicitly use 64-bit integers.
> bugfix: the shared dict storage might leak memory in the store:
> ngx_http_lua_shdict_lookup incorrectly assumed that nodes with identical
> keys are linked together, which might not be true after tree re-balancing.
> thanks the patch from Lanshun Zhou.
> bugfix: the exptime argument to shdict:set/add/etc methods was incorrectly
> ignored when the flags argument is also specified. thanks the patch from
> Brian Akins.
> bugfix: now we avoid using luaL_checkstring which could do another long jump
> on its own. thanks Wang Bin.
> bugfix: when the parent request takes a request body, the subrequest does
> not take any bodies, and the subrequest's method is neither PUT nor POST,
> then the subrequest will no longer inherit the parent request's request
> body. thanks Ou Yuanning for reporting this issue.
> bugfix: C macro directives were used inside a C macro argument which made
> (at least) gcc 3.2.3 unhappy. thanks Feng Bin.
> bugfix: setting ngx.header.last_modified was not implemented fully. thanks
> Brian Akins.
> optimize: removed a redundant piece of code for subrequest headers_in fixes
> in ngx_http_lua_adjust_subrequest.
> optimize: introduced a minor optimization that we can save one recv call
> when the read event is active *and* the read event is not ready.
> optimize: now we recycle the downstream output buffers to save memory and
> dynamic allocation times for long-running requests with huge outputs.
> optimize: optimized the chain-link and buf recycle logic for the subrequest
> API and make it share free buffers with the cosocket API.
> docs: documented the max concurrent subrequest count limitation and max
> error log line size limit.
> docs: fixed various typos in docs. thanks Wang Bin.
>
> upgraded EchoNginxModule to 0.38rc2.
>
> bugfix: $echo_request_body variable was not able to work on arbitrary
> request body chains (i.e., more than 2 chain links), just like the standard
> $request_body variable that only processes the first two chain links. now
> $echo_request_body no longer has this limitation.
>
> upgraded SrcacheNginxModule to 0.13rc6.
>
> bugfix: fixed a typo in an error message text for response truncation check
> in srcache_store.
> feature: now srcache_store discards responses that are obviously truncated
> when the actual output data is shorter than what is declared in its
> Content-Length response header. thanks Greg Grensteiner.
> bugfix: the access phase handler actually ran in a phase later than the
> access phase.
> bugfix: HTTP HEAD requests that lead to a cache hits would cause memory
> issues like invalid reads.
>
> upgraded Redis2NginxModule to 0.08rc4.
>
> bugfix: redis "nil multi bulk replies" did not parse at all. thanks Guo Ying
> for reporting this issue.
>
> upgraded LuaRedisParserLibrary to 0.09rc7.
>
> bugfix: redis "nil multi bulk replies" did not parse at all. thanks Guo Ying
> for reporting this issue.
> bugfix: remove unneeded string push operations. thanks Brian Akins.
>
> upgraded XssNginxModule to 0.03rc9, RdsCsvNginxModule to 0.05rc1, and
> Redis2NginxModule to 0.08rc3, allowing enabling DDEBUG=1 globally.
> upgraded IconvNginxModule to 0.10rc7.
>
> bugfix: enabling DDEBUG=1 globally lead to compilation errors.
> bugfix: could not work with HTTP 1.0 requests.
> optimize: only register output filters when the iconv_filter is actually
> used in the config file.
>
> upgraded PostgresNginxModule to 0.9.
>
> bugfix: Fix compatibility with poll, select and /dev/poll event models.
> bugfix: Fix compatibility with PostgreSQL 9.x.
> bugfix: Fix compatibility with nginx-1.1.4+.
>
> bugfix: applied the official hotfix #1 patch for LuaJIT 2.0.0 beta9.
> now we enable the -DLUA_USE_APICHECK -DLUA_USE_ASSERT flags for LuaJIT when
> the --with-debug option is specified.
> apply the max_subrequests patch to allow the NGX_HTTP_MAX_SUBREQUESTS macro
> to be overridden from the outside and adjusted the default value from 50 to
> 200 because 50 is a little too conservative.
> applied the upstream_pipelining patch to the nginx core, as discussed here:
> http://mailman.nginx.org/pipermail/nginx-devel/2012-March/002040.html this
> patch is required at least for the pipelined requests support in nginx
> upstream modules.
> applied the null-character-fixes patch from the mainstream. The bug did
> result in a disclosure of previously freed memory if upstream server
> returned specially crafted response, potentially exposing sensitive
> information.
> upgraded the Nginx core to 1.0.11.
>
> see the changes here: http://nginx.org/en/CHANGES-1.0
>
> As always, you're welcome to report bugs and feature requests either here or
> directly to me :)
>
> OpenResty (aka. ngx_openresty) is a full-fledged web application server by
> bundling the standard Nginx core, lots of 3rd-party Nginx modules, as well
> as most of their external dependencies.
>
> By taking advantage of various well-designed Nginx modules, OpenResty
> effectively turns the Nginx server into a powerful web app server, in which
> the web developers can use the Lua programming language to script various
> existing Nginx C modules and Lua modules and construct extremely
> high-performance web applications that is capable to handle 10K+
> connections.
>
> OpenResty aims to run your server-side web app completely in the Nginx
> server, leveraging Nginx's event model to do non-blocking I/O not only with
> the HTTP clients, but also with remote backends like MySQL, PostgreSQL,
> Memcached, and Redis.
>
> You can find more details on the homepage of ngx_openresty here:
>
> http://openresty.org
>
> Enjoy!
> -agentzh
>
> --
人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
俺: http://about.me/zoom.quiet
文字协议: http://creativecommons.org/licenses/by-sa/2.5/cn/