OpenResty,基于 Nginx 的应用服务器

发布于 2014年04月30日
收藏 18

OpenResty 发布,改进记录包括:

  • upgraded the Nginx core to 1.5.12.

  • upgraded LuaJIT to v2.1-20140423 (see ).

    • bugfix: prevent adding side traces for stack checks. (Mike pall) this could cause internal assertion failure in the JIT compiler while replaying snapshots in very obscure cases: lj_snap.c:497: lj_snap_replay: Assertion `ir->o == IR_CONV && ir->op2 == ((IRT_NUM<<5)|IRT_INT)' failed.

    • bugfix: fixed FOLD of string concatenations. (Mike Pall) this issue was reported by leafo and could lead to invalid string results in special cases while compiling string concatenations.

    • bugfix: FFI: fixed cdata equality comparison against strings and other Lua types. (Mike Pall)

    • bugfix: fixed top slot calculation for snapshots with continuations. (Mike Pall) this was a bug in snapshot generation, but it only surfaced with trace stitching. it could cause Lua stack overwrites in special cases.

    • bugfix: PPC: don't use mcrxr on PPE. (Mike Pall)

    • bugfix: prevent GC estimate miscalculation due to buffer growth. (Mike Pall)

    • bugfix: fixed the regression introduced by the previous fix for "reuse of SCEV results in FORL". (Mike Pall) this could cause internal assertion failure in the JIT compiler: lj_record.c:68: rec_check_ir: Assertion `op2 >= nk' failed.

    • bugfix: fixed alias analysis for table.len vs. table.clear. (Mike Pall) this could cause table.len to return incorrect values (nonzero values) after table.clear was performed.

    • bugfix: fixed the compatibility with DragonFlyBSD. thanks lhmwzy for the patch.

    • feature: allow non-scalar cdata to be compared for equality by address. (Mike Pall)

  • upgraded LuaUpstreamNginxModule to 0.02.

    • bugfix: upstream names did not support taking a port number. thanks magicleo for the report.

  • upgraded Redis2NginxModule to 0.11.

    • change: now we always ignore client aborts for collaborations with other modules like SrcacheNginxModule. thanks akamatgi for the report.

  • upgraded LuaNginxModule to 0.9.7.

    • bugfix: when lua_code_cache was off, cosocket:setkeepalive() might lead to segmentation faults. thanks Kelvin Peng for the report.

    • refactor: improved the error handling and logging in the Lua code loader and closure factory.

    • change: added stronger assertions to the stream-typed cosocket implementation.

    • optimize: we no longer call ngx_pfree() in our own pcre_free hook.

    • optimize: we no longer clear the pointer ctx->user_co_ctx in ngx_http_lua_reset_ctx.

  • upgraded EchoNginxModule to 0.53.

    • bugfix: use of empty arguments after the -n option of the echo directive (and its friends) might cause subsequent arguments to get discarded. thanks Lice Pan for the report and fix.

  • upgraded FormInputNginxModule to 0.08.

    • bugfix: segmentation fault might happen when set_form_input_multi was used while no proper Content-Type request header was given.

  • upgraded LuaRestyWebSocketLibrary to 0.03.

    • optimize: added a minor optimization in the recv_frame() method. thanks yurnerola for the catch.

  • upgraded LuaRestyCoreLibrary to 0.0.6.

    • optimize: now we avoid constructing new Lua strings for the regex cache keys, which gives 5% speedup for trivial use cases.

    • optimize: avoided constructing a new Lua string for the regex cache key by switching over to a cascaded 2-level hash table, which gives 22% speedup for simple use cases.

  • upgraded LuaRestyLockLibrary to 0.03.

    • bugfix: prevented using cdata directly as table keys.

  • upgraded LuaRestyStringLibrary to 0.09.

    • bugfix: avoided using the "module" builtin function to define lua modules. thanks lhmwzy for the original patch.

OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器。它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项。

通过众多进行良好设计的 Nginx 模块,OpenResty 有效地把 Nginx 服务器转变为一个强大的 Web 应用服务器,基于它开发人员可以使用 Lua 编程语言对 Nginx 核心以及现有的各种 Nginx C 模块进行脚本编程,构建出可以处理一万以上并发请求的极端高性能的 Web 应用。

OpenResty 致力于将你的服务器端应用完全运行于 Nginx 服务器中,充分利用 Nginx 的事件模型来进行非阻塞 I/O 通信。不仅仅是和 HTTP 客户端间的网络通信是非阻塞的,与MySQL、PostgreSQL、Memcached、以及 Redis 等众多远方后端之间的网络通信也是非阻塞的。

转载请注明:文章转载自 开源中国社区 []
本文标题:OpenResty,基于 Nginx 的应用服务器





加油 很有前途的项目


OpenResty 已经与国际接轨:)


整晚没睡就为了坐 沙发..~~~