OpenResty 1.19.3.1 正式版正在筹备发布中,本次先发布 RC0 预览版,供社区测试,不推荐生产使用。

本次更新包含了不少重要的新 feature 和 重要的性能优化。 我们在 i9-9900K 测试环境上,用简单的 Lua Hello world 接口,单 worker 的 QPS 可以从 221939 rps 提升到 269423 rps,有 20%+ 的提升。

在此致谢所有的贡献者,也欢迎更多的贡献者来一起共建 OpenResty。

同时我们也在筹备一个线上分享会议,主要介绍这些新的 feature 以及分享性能优化背后的故事。 欢迎扫码关注我们的微信公众号,接收会议通知,也欢迎大家来报名分享。

我们的微信公众号

本次 RC0 包含以下重要变更

  1. 升级 Nginx 核心至 1.19.3.
  2. 升级 LuaJIT,从 Mike Pall 维护的的上游同步
  3. 优化:新增协程池来复用 Lua 协程
  4. 优化:依靠 LuaJIT 新增 lua_getexdata2()lua_setexdata2() API,将单个请求内协程调度的时间复杂度从 O(n) 降低到 O(1)
  5. 优化:在 tcpsock/udpsock:send(LUA_TABLE) 等 API 中避免 Lua number 到 Lua string 的转化,减少创建不必要的 GC 对象
  6. 改进:SSL_* 阶段设置的 ngx.ctx,将被后续阶段所继承
  7. 新增:ngx.ssl 模块的 very_cert() API 允许动态设置 CA 证书,开启客户端证书验证
  8. 新增:exit_worker_by_* 阶段,可以更方便的在 worker 退出的阶段执行任务
  9. 新增:ngx.balancer 模块的 recreate_request() API,从而可以在 balancer 阶段改写请求信息,并且通过这个 API 使之生效
  10. 新增:ngx.req.socket(true?) 创建的 tcpsock 对象,也支持 receiveany() 方法
  11. 新增:ngx.ssl 模块的 server_port() API 可以获取 server_port

完整的 RC0 变更记录请见:

https://github.com/openresty/openresty/releases/tag/v1.19.3.1rc0

下载源码包

欢迎大家下载试用,反馈意见,多谢!

https://openresty.org/download/openresty-1.19.3.1rc0.tar.gz