发布于 2014-07-13 03:52:16 | 454 次阅读 | 评论: 0 | 来源: 网友投递
OpenResty WEB服务器
OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器,它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项。
OpenResty 1.7.2.1 发布了,详细改进记录包括:
upgraded the Nginx core to 1.7.2.
see the changes here: http://nginx.org/en/CHANGES
bugfix: use cc
as the default C compiler for LuaJIT and Lua C libraries because modern FreeBSD 10 has no gcc by default and its clang is already featureful enough to compile everything. thanks Stefan Parvu for the suggestion.
upgraded LuaJIT to v2.1-20140707: https://github.com/openresty/luajit2/tags
feature: compile debug.getmetatable(). Thanks to Karel Tuma.
bugfix: Fix ABC elimination (for negative table indexes, for example).
bugfix: FFI: Fix compilation of reference field access.
bugfix: FFI: fixed frame traversal for backtraces with FFI callbacks.
bugfix: x86: lj_math_random_step() clobbers XMM regs on OSX Clang.
bugfix: fixed debug info for main chunk of stripped bytecode.
imported Mike Pall's latest bug fixes and other changes:
upgraded LuaRestyCoreLibrary to 0.0.8.
feature: resty.core.regex: use resty.lrucache
for the compiled regex cache for ngx.re.find and ngx.re.match in order to prevent pathalogical performance when the number of regexes has exceeded lua_regex_cache_max_entries.
optimize: resty.core.regex: removed one obsolete assertion that was for a LuaJIT bug (already fixed).
upgraded LuaRestyDNSLibrary to 0.12.
feature: added support for the SRV resource record type (see RFC 2782). thanks Torbjörn Norinder for the patch.
upgraded LuaRestyUpstreamHealthcheckLibrary to 0.02.
bugfix: for bad status lines, we could throw out the "bad argument #2 to 'sub'" error, reported by George Bashi.
doc: avoided using the rn
sequence in Lua long brackets because Lua would squeeze it to n
, unfortunately. thanks George Bashi for the report.
doc: made it clear that multiple upstream {}
blocks' checkers can share a single shm zone. thanks Robert Paprocki for asking.
doc: now we need to turn off lua_socket_log_errors explicitly in code examples.
upgraded LuaRestyLrucacheLibrary to 0.02.
feature: added an alternative implementation using FFI-based hash-table in the form of the new class resty.lrucache.pureffi
, which is much faster than the default resty.lrucache
class when there are a lot of key variations. thanks Shuxin Yang for the patch.
upgraded LuaNginxModule to 0.9.10.
feature: stream-typed cosockets are now full-duplex: a reader "light thread" and a writer "light thread" can operate on the same cosocket simultaneously. thanks shun zhang and aviramc for the original patches.
feature: added new API function ngx.thread.kill() for killing a user "light thread". thanks aviramc for the original patch.
bugfix: the "coroutine" module table introduced by require('coroutine')
was not working in our Lua context. thanks Paul K and Pierre-Yves Gérardy for the report.
bugfix: fixed the initial size of the ngx.worker table and the misleading comment due to a copy&paste mistake. thanks Suraj Jaiswal for the report.
bugfix: the "coctx cleanup" handler might not be called before being overidden by other operations. this could happen when failing to yield in an error handler (for xpcall).
bugfix: fixed an incorrect error message. thanks doujiang for the patch.
bugfix: fixed a compilation error regression when using the Microsoft Visual C/C++ compiler. thanks itpp16 for the patch.
bugfix: we should use c->buffered & NGX_HTTP_LOWLEVEL_BUFFERED
instead of c->buffered
for testing if the downstream connection is busy writing.
bugfix: we did not handle an out-of-memory case in ngx.req.set_body_data().
bugfix: ngx_http_lua_chain_get_free_buf(): avoided returning zero-sized memory bufs.
bugfix: body_filter_by_lua*: we might incorrectly pass zero-size bufs (in the form of "special sync bufs") at the beginning of a chain, which could get stuck in the buffer of ngx_http_writer_filter_module
(or in other words, being "busy") while could still get recycled in the content handler (like content_by_lua), leading to buffer corruptions. thanks westhood for the report and patch.
bugfix: we did not clear all the fields in the ngx_buf_t
C struct when recycling chain link buffers.
bugfix: the *_by_lua_file
directives failed to load .lua files of exactly the size n*LUAL_BUFFERSIZE
bytes with the error "'end' expected (to close 'function' at line 1) near '<eof>'". thanks kworr for the report.
change: now we always iterate through all the user light threads to ensure all threads are de-anchored even when the "uthreads" counter gets out of sync. also added an assertion on the "uthreads" counter.
change: now we turn off our C-land assertions by default unless the user explicitly specifies the C compiler option -DNGX_LUA_USE_ASSERT
.
change: throw out the "no memory" Lua error consistently (instead of "out of memory") when failing to allocate on the nginx side.
change: we now still call ngx_pfree()
in our own pcre_free
hook.
doc: documented the NGX_LUA_USE_ASSERT
and NGX_LUA_ABORT_AT_PANIC
C macros.
doc: added performance notes to the sections for the ngx.var and ngx.ctx API.
doc: documented the types of Lua values that can be passed to the ngx.timer callback functions.
upgraded FormInputNginxModule to 0.09.
bugfix: fixed warnings from the Microsoft Visual C/C++ compiler. thanks itpp16 for the report.
upgraded EchoNginxModule to 0.54.
bugfix: the "unknown option for echo_subrequest_async" error was thrown when Nginx variables were used in both the "method" argument and URI argument of the echo_subrequest directive (and etc). thanks Utkarsh Upadhyay for the report.
bugfix: fixed a misleading error message.
upgraded SrcacheNginxModule to 0.28.
feature: log an error message when srcache_store subrequest has an error or returns a bad HTTP status code. thanks Yann Coleu for the report.
doc: typo fix from javasboy.
upgraded MemcNginxModule to 0.15.
bugfix: we did not log error messages for invalid values of $memc_flags
, $memc_exptime
, and $memc_value
, leading to hard-to-debug HTTP 400 status errors. thanks Yann Coleu for the report.
bugfix: ./configure --without-lua_resty_dns
did not work as declared. thanks Vitaly for the report.
change: ./configure --with-debug
now also passes the extra C compiler options -DNGX_LUA_USE_ASSERT -DNGX_LUA_ABORT_AT_PANIC
to the LuaNginxModule build.
See ChangeLog1007000 for change log for OpenResty 1.7.0.x.
OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器。它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项。