基于 NGINX 和 LuaJIT 的 OpenResty 网络平台 1.31.8.1 正式版已经正式发布。您可以查看完整的发布说明。

本次发布提供了可移植的源代码发布版,以及 Ubuntu、Debian、Fedora、CentOS、RHEL、OpenSUSE、Amazon Linux 等 Linux 发行版的预编译二进制包。您可以通过此链接下载软件包。

特别感谢我们所有的开发人员和贡献者!感谢 OpenResty Inc. 赞助了大量 OpenResty 核心开发工作。

重点变更

此版本的亮点包括

  • Nginx 核心:从 nginx 1.31.1 升级至 1.31.8
  • OpenSSL:从 3.5.6 版本升级至 3.5.9 版本
  • PCRE2:从 10.47 版本升级至 10.49 版本
  • lua-nginx-module(升级至 v0.10.32rc7)
    • 支持压缩通过 ssl_certificate_by_lua* 设置的证书
    • 修复 balancer_by_lua* 重试计数回绕导致的无限重试问题
    • 修复使用 proxy_bind 时 balancer keepalive 连接无法复用的问题
    • 修复 ngx.flush() 缓冲区仍在队列中时被回收的问题
    • 修复 lua_code_cache off 时 server_rewrite_by_lua* 误用全局 VM 的问题
    • 修复 sslhandshake 握手立即完成时丢失证书校验错误的问题
    • 修复 HTTP/2 出错时 Lua 子请求的唤醒问题
    • 修复 receiveuntil 迭代器、客户端 CA 名称列表、worker thread 等相关的多个内存安全问题
  • stream-lua-nginx-module(升级至 v0.0.20rc3)
    • 修复 receiveuntil 迭代器被 GC 后的 use-after-free 问题
    • 修复终止 uthread 时未清理子协程操作的问题
    • 修复错误结束请求前未输出已缓冲数据的问题
  • lua-resty-core(升级至 v0.1.35rc2)
    • 新增 ngx.ssl.compress_certs()
    • 修复 stream cosocket getsslctx() 绑定到错误 FFI 符号的问题
    • 修复 sslhandshake 错误处理及多个 FFI 正确性问题
  • LuaJIT(升级至 v2.1-20261023)
    • 从 v3.0 回移植部分语法扩展,允许在任意位置使用空语句(分号)
    • 支持 JIT 编译 unpack(),优化 string.sub/string.byte 的单字符常见场景
    • x64、ARM64、PPC、s390x、macOS、iOS、Windows 等平台的多项修复与优化
    • 修复性能分析器(profiler)相关的竞态与锁问题
    • FFI 多项 ABI 与调用约定修复
  • lua-resty-redis(升级至 v0.34)
    • connect() 新增 db、password、username、tcp_keepalive 选项
    • hmget() 支持传入 table
    • 修复事务状态及模块命令参数相关问题
  • lua-resty-openssl(升级至 v1.9.0)
    • 支持 OpenSSL 4.0
    • 新增后量子密钥操作支持
  • 其他组件升级
    • lua-cjson 升级至 v2.1.0.20,新增对编码后对象键排序的选项
    • lua-resty-string 升级至 v0.19,新增 md5.final_hex() 方法
    • resty-cli 升级至 v0.36,resty 新增 --no-clean 选项,退出时保留临时 nginx prefix 目录
    • lua-resty-websocket 升级至 v0.16,加强握手校验与帧解析,支持继续接收不完整的帧
    • encrypted-session-nginx-module 升级至 v0.10,改为常量时间 MAC 比较
    • lua-resty-dns 升级至 v0.24,拒绝不完整的 DNS 资源记录
    • lua-resty-mysql 升级至 v0.31,修复 caching_sha2 认证中密码扰码的索引错误
    • ngx_devel_kit 升级至 v0.3.6,支持 nginx 1.31.3 的复杂值(complex value)
    • opm 升级至 v0.0.12
    • set-misc-nginx-module 升级至 v0.34
    • lua-resty-upstream-healthcheck 升级至 v0.10
    • drizzle-nginx-module 升级至 v0.1.14
    • lua-resty-memcached 升级至 v0.18
    • ngx_postgres 升级至 v1.1
    • headers-more-nginx-module 升级至 v0.40
    • lua-resty-signal 升级至 v0.05
    • echo-nginx-module 升级至 v0.65
    • srcache-nginx-module 升级至 v0.34
    • memc-nginx-module 升级至 v0.21

安全修复

本版本同步了 Nginx 1.31.2~1.31.8 期间的 12 项 CVE 修复,按首次修复的 Nginx 版本列出:

  • 1.31.2
    • HTTP/3 释放后使用(CVE-2026-42530)
    • 代理至 HTTP/2/gRPC 上游时的缓冲区溢出(CVE-2026-42055)
    • 字符集转换越界读取(CVE-2026-48142)
  • 1.31.3
    • map/正则相关缓冲区溢出(CVE-2026-42533)
    • slice/后台缓存更新相关的未初始化内存访问,可能导致内存信息泄露(CVE-2026-60005)
    • SSI 释放后使用(CVE-2026-56434)
  • 1.31.6
    • 使用 OpenSSL 3.5.0 及更早版本时,特定配置下的 HTTP/3 堆缓冲区溢出(CVE-2026-90439)
  • 1.31.7
    • alias/rewrite 缓冲区溢出(CVE-2026-15176)
    • 变量表达式求值缓冲区溢出(CVE-2026-93479)
    • HTTP/3 请求体注入(CVE-2026-95101)
    • TLS 会话票据相关会话伪造(CVE-2026-97629)
    • AIO/SSI 释放后使用(CVE-2026-97205)

各漏洞的详细说明请参阅 Nginx 官方安全公告。

完整更改日志

完整的变更列表、HTML 版本的变更日志、及其他超链接请参阅完整的发布说明。

官网

OpenResty 是一个开源的 Web 平台,它将增强版的 Nginx 内核与 LuaJIT 集成在一起,由 OpenResty Inc. 维护。它还集成了大量的第三方 Nginx 模块和 Lua 库,以及它们的大部分外部依赖,是一个完整而强大的网络解决方案。详细信息请访问 OpenResty 主页:

https://openresty.org/

质量保证

我们在亚马逊 EC2 测试集群上进行了大量测试,并确保所有组件(包括 Nginx 内核)都能很好地协同工作。最新的测试报告可以在这里找到:

https://qa.openresty.org/

商业版本

我们在自己的全球 CDN 网络(被称为“迷你 CDN”)中运行基于最新开源版本的 OpenResty。这个网络为我们的 openresty.org 和 openresty.com 网站提供支持,同时也用于我们的商业软件。如需了解更多详情,请访问 https://openresty.com.cn/。

反馈

欢迎为本版本提供反馈,可以在 GitHub issues 创建新 issue,或给我们发送邮件。

公众号

如果您喜欢我们的服务,请关注我们的微信公众号以接受最新信息。

我们的微信公众号