从 9万 QPS 到 6千:一次压测暴露的 15 倍性能黑洞,我们如何用 OpenResty XRay 定位根因
OpenResty 1.29.2.1 正式发布
lijunlong , 04 Mar 2026 (created 04 Jan 2026)我们荣幸地宣布,基于 NGINX 和 LuaJIT 的 OpenResty Web 平台 1.29.2.1 版本现已正式发布。
此下载页面提供了可移植的源代码分发包、Win32/Win64 二进制分发包,以及为 Ubuntu、Debian、Fedora、CentOS、RHEL、OpenSUSE、Amazon Linux 等系统预编译的二进制软件包。
版本亮点
Nginx 核心
- 从 nginx 1.27.1 升级至 1.29.2。
OpenSSL
- 从 3.4.1 版本升级至 3.5.5 版本。
PCRE
- 从 10.44 版本升级至 10.47 版本。
-
- 新增:
ngx_http_lua_ffi_ssl_get_client_hello_ext_present()函数。 - 新增:用于绕过 HTTP 条件请求检查的函数。
- 新增:
lua_ssl_key_log指令。 - 新增:
ngx_http_lua_ffi_req_shared_ssl_ciphers()函数。 - 新增:
sock:getfd()方法。 - 新增:导出三个用于操作
ngx_http_lua_co_ctx_t结构体的函数。 - 新增:
ngx_http_lua_ffi_ssl_get_client_hello_ciphers()函数。 - 新增:
proxy_ssl_verify_by_lua指令。 - 新增:支持 TCP 绑定到
ip:port或 IPv4/IPv6 地址。
- 新增:
-
- 新增:
lua_ssl_key_log指令,用于在tcpsock:sslhandshake方法中记录客户端连接的 SSL 密钥。密钥将以 Wireshark 兼容的 SSLKEYLOGFILE 格式进行记录。 - 新增:为 stream 子系统添加
ngx_stream_lua_ffi_get_req_ssl_pointer()函数。 - 新增:
ngx_stream_lua_ffi_req_dst_addr()函数。 - 新增:对 TCP/UDP 绑定的支持。
- 新增:
ngx_stream_lua_ffi_req_shared_ssl_ciphers()函数。 - 新增:
proxy_ssl_verify_by_lua指令。
- 新增:
-
- 新增:为 stream 子系统添加绑定支持。
- 新增:向
ngx.resp添加bypass_if_checks方法。 - 新增:为 stream 子系统添加
get_req_ssl_pointer()方法。 - 新增:
ngx.req.get_original_addr方法。 - 新增:
sock:getfd()方法。 - 新增:为 stream 子系统添加
ssl.get_shared_ssl_ciphers方法。 - 新增:对
ssl.get_req_shared_ssl_ciphers()的支持。 - 新增:
get_client_hello_ciphers()方法。 - 新增:
proxy_ssl_verify_by_lua指令。 - 新增:
get_client_hello_ext_present方法。
luajit2 luajit2
- ARM64: 修复按值传递结构体的调用约定。
- ARM: 修复软浮点
math.min()/math.max()的问题。 - FFI: 修复悬空的 CType 引用。
- FFI: 新增预声明的
int128_t、uint128_t、__int128类型。 - 修复: 为
fp:seek()的参数增加对字符串的兼容性强制转换。 - 修复:
load*中的错误生成问题。 - 修复向上递归期间的 JIT slot 溢出问题。
- 修复在错误处理过程中的错误报告问题。
- 修复对新创建缓冲区的
io.write()调用。 - 修复模板表中
nil值标记的处理问题。 - 修复:commit
538a82133ad后table.clone无法正常工作的问题。 - 修复:避免在 trace flush 后重复移除字节码补丁。
- 修复:避免在从快照恢复时,因堆栈溢出错误导致程序计数器(PC)越界。
- 修改模板表中
nil值标记的处理方式。 - 新增 GNU/Hurd 构建支持。
-
- 修复:
blpop和brpop调用超时后导致连接关闭的问题。 - 文档:修复
README.markdown中的一处拼写错误。 - 优化:
setmetatable的返回值为 NYI (Not Yet Implemented),导致无法进行 JIT 编译。
- 修复:
-
- 修复:未将输出 header 的
next指针设置为 NULL 的问题。 - 文档:将
LICENSE内容移动到独立文件中。
- 修复:未将输出 header 的
-
- 修复:mysql 驱动未能正确处理服务器端查询超时(“Query execution was interrupted”)的问题。
完整更新日志
相较于上一个正式版本 1.27.1.2,您可以在 1.29.2.x 更新日志 页面浏览完整的变更记录。
测试
我们在 Amazon EC2 测试集群上进行了广泛的测试,确保所有组件(包括 Nginx 核心)都能协同稳定运行。最新的测试报告可随时在此处查阅:
此外,我们自己的全球 CDN 网络(我们称之为“迷你 CDN”)也始终基于最新开源版本的 OpenResty 来运行我们的 OpenResty Edge 商业软件,为 openresty.org 和 openresty.com 网站提供动力。更多详情请访问 https://openresty.com/。
社区支持
请访问社区页面。
商业支持
我们通过官方的 OpenResty XRay 产品,提供商业技术支持以及实时、非侵入式的在线监控和性能剖析解决方案。
反馈
我们欢迎任何关于此版本的反馈。您可以在 GitHub issues 创建新的 issue,或发送邮件到我们的邮件列表。



















