多服务商 DNS 冗余:以 OpenResty Edge 为唯一数据源,同步给多家 DNS 服务商
变更日志 1.31.8.x
lijunlong , 26 Oct 2026 (created 26 Oct 2026)版本 1.31.8.1 - 2026年10月26日
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*设置的证书。感谢 Y.Horie 提供补丁。 - 缺陷修复:为每次 balancer 绑定单独分配本地地址。感谢 lijunlong 提供补丁。
- 缺陷修复:避免在过滤器中截断 Lua 上下文。感谢 Hanada 提供补丁。
- 缺陷修复:修复
balancer_by_lua*中重试计数回绕导致无限重试的问题。感谢 Héctor 提供补丁。 - 缺陷修复:修复使用
proxy_bind时 balancer keepalive 连接始终无法复用的问题。感谢 Jiří Setnička 提供补丁。 - 缺陷修复:在
precontent_by_lua中将返回值改为NGX_DECLINED。感谢 Hanada 提供补丁。 - 缺陷修复:终止用户线程时清理子协程的待处理操作。感谢 Jun Ouyang 提供补丁。
- 缺陷修复:压缩证书之前清除继承的证书链。感谢 lijunlong 提供补丁。
- 缺陷修复:修复
verify_client出错时重复释放客户端 CA 名称列表的问题。感谢 lijunlong 提供补丁。 - 缺陷修复:修复
receiveuntil迭代器被垃圾回收后,tcp_finalize中访问已释放堆内存的问题。感谢 Y.Horie 提供补丁。 - 缺陷修复:标记 Lua 子请求,使其能在 HTTP/2 错误发生时被唤醒。(#2508) 感谢 kurt 提供补丁。
- 缺陷修复:修复
ngx.flush()的缓冲区仍在队列中时就被回收的问题。(#2518) 感谢 Jiří Setnička 提供补丁。 - 缺陷修复:字符串辅助函数出错时抛出
luaL_error,而非返回NGX_ERROR。感谢 lijunlong 提供补丁。 - 缺陷修复:修复
pcre_fullinfo()失败时正则表达式编译仍返回NGX_OK的问题。感谢 lijunlong 提供补丁。 - 缺陷修复:拒绝在已完成握手的 cosocket 上调用
settrustedstore。(#2505) 感谢 perfgao 提供补丁。 - 缺陷修复:恢复子请求输入头列表仅含一个分段的不变条件。感谢 lijunlong 提供补丁。
- 缺陷修复:修复
run_worker_thread错误处理路径中的内存泄漏、重复释放和计数过多问题。感谢 lijunlong 提供补丁。 - 缺陷修复:修复关闭
lua_code_cache时server_rewrite_by_lua*使用全局 Lua VM 的问题。感谢 xiaobiaozhao 提供补丁。 - 缺陷修复:修复内存不足时
set_uri/set_uri_args从 Lua C 函数返回 -1 的问题。感谢 lijunlong 提供补丁。 - 缺陷修复:修复
sslhandshake在握手立即完成时丢失证书验证错误的问题。(#2506) 感谢 kurt 提供补丁。 - 持续集成:使用打包的依赖测试 nginx 1.31.3。感谢 lijunlong 提供补丁。
- 持续集成:更新 GitHub Actions 以使用 Node.js 24。感谢 lijunlong 提供补丁。
- 文档:更新
ngx.req.set_uri的文档。感谢 Brian Rak 提供补丁。 - 代码风格:修正代码风格。感谢 Hanada 提供补丁。
- 新功能:支持压缩通过
升级 stream-lua-nginx-module 至 v0.0.20rc3
- 缺陷修复:避免在
receiveuntil迭代器被垃圾回收后访问已释放内存。感谢 lijunlong 提供补丁。 - 缺陷修复:终止用户线程时清理子协程的待处理操作。感谢 lijunlong 提供补丁。
- 缺陷修复:因错误结束连接之前,先发送完已缓冲的输出。感谢 lijunlong 提供补丁。
- 缺陷修复:修复源代码审查中发现的三个潜在问题。感谢 lijunlong 提供补丁。
- 持续集成:使用打包的依赖测试 nginx 1.31.3。感谢 lijunlong 提供补丁。
- 持续集成:更新 GitHub Actions 以使用 Node.js 24。感谢 lijunlong 提供补丁。
- 缺陷修复:避免在
升级 lua-resty-core 至 v0.1.35rc2
- 新功能:新增
ngx.ssl.compress_certs()。感谢 Y.Horie 提供补丁。 - 缺陷修复:修复代码审查中发现的多个 FFI 正确性问题。感谢 lijunlong 提供补丁。
- 缺陷修复:移除
sslhandshake在握手前发生错误时对结果的断言。(#534) 感谢 kurt 提供补丁。 - 缺陷修复:
sslhandshake在 FFI 立即返回FFI_ERROR时读取错误详情。(#533) 感谢 kurt 提供补丁。 - 缺陷修复:修复 stream cosocket 的
getsslctx()绑定到错误 FFI 符号的问题。感谢 perfgao 提供补丁。 - 持续集成:使用打包的依赖测试 nginx 1.31.3。感谢 lijunlong 提供补丁。
- 持续集成:更新 GitHub Actions 以使用 Node.js 24。感谢 lijunlong 提供补丁。
- 新功能:新增
升级 luajit2 至 v2.1-20261023
- 为 TNEW / TDUP 的 ALEN 添加 FOLD 规则。感谢 Mike Pall 提供补丁。
- 新增行号指令,从 v3.0 反向移植。感谢 Mike Pall 提供补丁。
- 允许在任意位置使用空语句(分号),从 v3.0 反向移植。感谢 Mike Pall 提供补丁。
- ARM64:修复浮点范围为空时的 BC_JFORI。感谢 Mike Pall 提供补丁。
- ARM64:修复
__metatable字段被清除时的getmetatable()。感谢 Mike Pall 提供补丁。 - 避免更新分发表时与性能分析线程发生竞态。感谢 Mike Pall 提供补丁。
- 反向移植部分 v3.0 语法扩展。感谢 Mike Pall 提供补丁。
- 缺陷修复:更新 lj_tab.c,修复 ppc64le 上的测试失败问题。感谢 Isgandar Valizada 提供补丁。
- 在 IR_ALEN 转发时检查 IR_NEWREF。感谢 Mike Pall 提供补丁。
- 支持对
unpack()进行 JIT 编译。感谢 Mike Pall 提供补丁。 - 文档:说明位运算符的字节码兼容性。感谢 Mike Pall 提供补丁。
- 对于无符号操作数,不对
-a / -b进行折叠。感谢 Mike Pall 提供补丁。 - 不记录步长为正零或负零的 for 循环。感谢 Mike Pall 提供补丁。
- 性能分析器停止后不再使用已销毁的锁。感谢 Mike Pall 提供补丁。
- DynASM/ARM64:避免
dasm_imm13()中的 sanitizer 警告。感谢 Mike Pall 提供补丁。 - DynASM/x86:修复 insertps 指令编码。感谢 Mike Pall 提供补丁。
- DynASM/x86:修复 movd / movq 和 vmovd / vmovq 的操作数大小。感谢 Mike Pall 提供补丁。
- FFI:在
ffi.offsetof之后调整J->maxslot。感谢 Mike Pall 提供补丁。 - FFI/ARM64e:对 FFI 回调指针进行签名。感谢 Mike Pall 提供补丁。
- FFI:在 CNEWI 的 FLOAD 的 FOLD 规则中保留符号属性。感谢 Mike Pall 提供补丁。
- FFI:修复字符串缓冲区
put()方法的 JIT 记录。感谢 Mike Pall 提供补丁。 - FFI:修复 64 位算术运算的扩展语义。感谢 Mike Pall 提供补丁。
- FFI/macOS:修复枚举类型的调用约定。感谢 Mike Pall 提供补丁。
- FFI/macOS:修复栈上传递的可变参数的调用约定。感谢 Mike Pall 提供补丁。
- FFI:在垃圾回收的原子阶段标记
cts->L。感谢 Mike Pall 提供补丁。 - FFI:避免
carith_ptr()中的 sanitizer 警告。感谢 Mike Pall 提供补丁。 - FFI:在 FFI 回调中设置
cur_L。感谢 Mike Pall 提供补丁。 - FFI:修复多个 ABI 和调用约定问题。感谢 Mike Pall 提供补丁。
- 修复 s390x 上对 0 执行 BC_UNM 的问题。(#259) 感谢 Ilya Leoshkevich 提供补丁。
- 修复 DragonFly 上的并发分配问题(该平台不受支持)。感谢 Mike Pall 提供补丁。
- 修复
os.time()的边界情况。感谢 Mike Pall 提供补丁。 - 文档:修正关于 Lua 5.2 扩展和兼容性的说明。感谢 Mike Pall 提供补丁。
- 修复 ITERN 取消特化后立即记录
next()的问题。感谢 Mike Pall 提供补丁。 - 修复安全导航运算符的解析。感谢 Mike Pall 提供补丁。
- 修复栈溢出时重设限制的处理逻辑。感谢 Mike Pall 提供补丁。
- 修复
unpack()的 JIT 记录。感谢 Mike Pall 提供补丁。 - 处理 trace 拼接期间的内存不足错误。感谢 Mike Pall 提供补丁。
- iOS:避免宏名称冲突。感谢 Mike Pall 提供补丁。
- iOS:禁用无法正常工作的
os.tmpname()。感谢 Mike Pall 提供补丁。 - macOS:避免机器码与 xzone malloc 回收环发生冲突。感谢 Mike Pall 提供补丁。
- 统一
os.time()中的检查逻辑。感谢 Mike Pall 提供补丁。 - 更新
jit.*Lua 模块的实现。感谢 Mike Pall 提供补丁。 - 优化
string.sub/string.byte常见的单字符情况。感谢 Mike Pall 提供补丁。 - 支持在
jit.util.tracesnap()中按需返回程序计数器位置。感谢 Mike Pall 提供补丁。 - PPC64:修正 64 位 ABI 的数字转换。感谢 Evan Wies 提供补丁。
- PPC64:重置字符串缓冲区时使用指针宽度的内存访问。感谢 Minsoo Choo 提供补丁。
- PPC:通过私有 GOT 而非 PLT 调用 libm 辅助函数。(#271) 感谢 Josef Schlehofer 提供补丁。
- PPC:修复启用 P64 时的
string.*快速函数(仅用于测试)。感谢 Mike Pall 提供补丁。 - PPC 软浮点:修复
ipairs()返回损坏的值及pairs()产生多余 nil 的问题。(#270) 感谢 Josef Schlehofer 提供补丁。 - 避免
os.time()中的 sanitizer 警告。感谢 Mike Pall 提供补丁。 - 避免
lj_tab_new*()和table.new()的 sanitizer 警告。感谢 Mike Pall 提供补丁。 - s390x:新增位运算符支持。(#275) 感谢 Andreas Arnez 提供补丁。
- s390x:修复 ERRF cframe 槽的大端内存访问。(#268) 感谢 Ulrich Weigand 提供补丁。
- s390x:修复异常展开期间的错误码返回。感谢 Ulrich Weigand 提供补丁。
- Windows:带进制参数的
tonumber()使用 64 位转换。感谢 Mike Pall 提供补丁。 - x64/ARM64/MIPS64:修复常量位移的代码生成。感谢 Mike Pall 提供补丁。
- x64:修复回调结果的处理。感谢 Mike Pall 提供补丁。
- x64:修复
math.floor()/math.ceil()的参数检查。感谢 Mike Pall 提供补丁。 - x64/LJ_GC64:避免栈恢复后存储到加载转发造成的停顿。感谢 Mike Pall 提供补丁。
- x64/LJ_GC64:启用 XLOAD / STRREF 融合。感谢 Mike Pall 提供补丁。
- x64/LJ_GC64:修复 XLOAD 融合。感谢 Mike Pall 提供补丁。
- x86:按条件使用 SSE3 进行 64 位转换。感谢 Mike Pall 提供补丁。
- x86:修复
math.floor()/math.ceil()的参数检查。感谢 Mike Pall 提供补丁。 - x86/x64:调整
ipairs_aux以匹配 JIT 后端行为。感谢 Mike Pall 提供补丁。
升级 opm 至 v0.0.12
- 缺陷修复:网站使用 WebP 格式的 OpenResty 标志。感谢 lijunlong 提供补丁。
- 变更:仅使用一个 worker 进程。感谢 lijunlong 提供补丁。
- 缺陷修复:构建时使用
marked.parse(),兼容 marked v4。感谢 lijunlong 提供补丁。 - 缺陷修复:生成失败时删除 templates.lua,并将 VERSION 更新为 0.0.10。感谢 lijunlong 提供补丁。
- 缺陷修复:pgmoon 解析受影响行数时不包含 NUL 字符。感谢 lijunlong 提供补丁。
- 缺陷修复:网站在登录名相同的用户和组织下均查找软件包页面。感谢 lijunlong 提供补丁。
- 缺陷修复:网站在登录名相同的用户和组织下均查找待获取的软件包。感谢 lijunlong 提供补丁。
- 版本:更新至 v0.0.11。感谢 lijunlong 提供补丁。
升级 set-misc-nginx-module 至 v0.34
- 缺陷修复:初始化 base32 解码的哨兵表。感谢 lijunlong 提供补丁。
- 文档:修复 README.markdown 中的若干拼写错误。感谢 willmafh 提供补丁。
升级 lua-resty-upstream-healthcheck 至 v0.10
- 缺陷修复:发送超时时关闭探测套接字。感谢 lijunlong 提供补丁。
升级 encrypted-session-nginx-module 至 v0.10
- 缺陷修复:使用常量时间比较 MAC,并以对齐方式读取时间戳。感谢 lijunlong 提供补丁。
升级 lua-resty-dns 至 v0.24
- 缺陷修复:拒绝不完整的 DNS 资源记录。感谢 lijunlong 提供补丁。
- 持续集成:从 Travis CI 迁移至 GitHub Actions。感谢 lijunlong 提供补丁。
- 持续集成:测试 nginx 1.31.3。感谢 lijunlong 提供补丁。
- 持续集成:更新 GitHub Actions 以使用 Node.js 24。感谢 lijunlong 提供补丁。
升级 drizzle-nginx-module 至 v0.1.14
- 缺陷修复:避免调试日志访问已释放的列数据。感谢 lijunlong 提供补丁。
升级 lua-resty-redis 至 v0.34
- 缺陷修复:保留模块命令参数和事务状态。感谢 lijunlong 提供补丁。
- 缺陷修复:仅根据已确认的回复更新事务状态,并为数据库和用户名使用无歧义的连接池名称。感谢 shushen 提供补丁。
- 持续集成:从 Travis CI 迁移至 GitHub Actions。感谢 lijunlong 提供补丁。
- 持续集成:使用打包的依赖测试 nginx 1.31.3。感谢 lijunlong 提供补丁。
- 持续集成:更新 GitHub Actions 以使用 Node.js 24。感谢 lijunlong 提供补丁。
- 新功能:为
connect()新增db/password/username/tcp_keepalive选项,支持向hmget()传入 table,并包含两项缺陷修复。感谢 shushen 提供补丁。
升级 lua-resty-memcached 至 v0.18
- 缺陷修复:从
_version_reply返回实际错误。感谢 lijunlong 提供补丁。
- 缺陷修复:从
升级 ngx_postgres 至 v1.1
- 缺陷修复:在被其他模块包装时恢复 postgres 的 peer 数据。感谢 lijunlong 提供补丁。
- 开发:加入 util/build.sh。感谢 Yichun Zhang (agentzh) 提供补丁。
- 开发:移除 util/build.sh 中 HTTP auth request 模块的冗余配置选项。(#6) 感谢 Johnny Wang 提供补丁。
- 代码风格:修复 ngx-releng 发现的细微代码风格问题。感谢 Yichun Zhang (agentzh) 提供补丁。
升级 lua-resty-openssl 至 v1.9.0
- 持续集成:新增 OpenSSL 4.0 测试矩阵并升级 FIPS provider。感谢 Wangchong Zhou 提供补丁。
- 持续集成:更新 GitHub Actions 版本。感谢 Wangchong Zhou 提供补丁。
- 持续集成:更新工作流中的 OpenSSL 和 NGINX 版本。(#234) 感谢 Wangchong Zhou 提供补丁。
- 持续集成:更新 OpenSSL 版本。感谢 Wangchong Zhou 提供补丁。
- 兼容性:支持 OpenResty 1.29.2。感谢 leaf corcoran 提供补丁。
- 文档:改进 README 的英文表述。感谢 Wangchong Zhou 提供补丁。
- 新功能:支持 OpenSSL 4.0。感谢 Wangchong Zhou 提供补丁。
- 新功能:pkey 支持后量子密钥操作。感谢 Wangchong Zhou 提供补丁。
- 缺陷修复:修正
bn:mod_sqr和 pkey 的错误信息。(#233) 感谢 perfgao 提供补丁。 - 缺陷修复:改进 pkey 的原始密钥处理,使其更加通用。感谢 Wangchong Zhou 提供补丁。
- 缺陷修复:pkey 识别 provider 原生密钥类型。感谢 Wangchong Zhou 提供补丁。
- 缺陷修复:pkey 动态分配原始密钥缓冲区大小。感谢 Wangchong Zhou 提供补丁。
- 版本:发布 1.8.0。(#237) 感谢 Wangchong Zhou 提供补丁。
- 版本:发布 1.9.0。感谢 Wangchong Zhou 提供补丁。
升级 lua-resty-websocket 至 v0.16
- 缺陷修复:客户端拒绝状态码不是 101 的握手响应。感谢 Shreemaan Abhishek 提供补丁。
- 缺陷修复:处理折叠的头字段,并去除协议字段中的多余空白。感谢 lijunlong 提供补丁。
- 缺陷修复:增强 WebSocket 解析和超时恢复的健壮性。感谢 lijunlong 提供补丁。
- 缺陷修复:在
recv_frame中检查接收错误是否为 nil。感谢 lijunlong 提供补丁。 - 缺陷修复:校验握手,并支持继续接收不完整的 WebSocket 帧。感谢 lijunlong 提供补丁。
- 持续集成:从 Travis CI 迁移至 GitHub Actions。感谢 lijunlong 提供补丁。
- 持续集成:使用打包的依赖测试 nginx 1.31.3。感谢 lijunlong 提供补丁。
- 持续集成:更新 GitHub Actions 以使用 Node.js 24。感谢 lijunlong 提供补丁。
- 文档:修复注释中的拼写错误。感谢 harry-xm 提供补丁。
升级 lua-resty-mysql 至 v0.31
- 缺陷修复:修正 caching_sha2 认证中密码扰乱计算的索引。感谢 lijunlong 提供补丁。
升级 lua-cjson 至 v2.1.0.20
- 缺陷修复:调整 C99 风格的 for 循环变量声明,兼容 GCC 4.8.5 的 C89 模式。感谢 lijunlong 提供补丁。
- 缺陷修复:为
encode_indent字符串持有独立副本。感谢 lijunlong 提供补丁。 - 缺陷修复:在一个 cjson 实例上设置
encode_escape_forward_slash不再影响其他实例。感谢 SnowOnion 提供补丁。 - 持续集成:更新 GitHub Actions 以使用 Node.js 24。感谢 lijunlong 提供补丁。
- 新功能:新增对编码后的对象键进行排序的选项。感谢 Artem Krinitsyn 提供补丁。
升级 headers-more-nginx-module 至 v0.40
- 缺陷修复:限制 Content-Type 字符集解析的边界,并为每个头字段重置 builtin 标志。感谢 lijunlong 提供补丁。
- 文档:在 README 中添加分号以修复语法。感谢 Baba Boota 提供补丁。
- 文档:更新版权声明。感谢 lijunlong 提供补丁。
- 文档:更新最新兼容的 nginx 版本。感谢 lijunlong 提供补丁。
升级 lua-resty-signal 至 v0.05
- 缺陷修复:在所有平台上映射 SIGSYS。感谢 lijunlong 提供补丁。
升级 ngx_devel_kit 至 v0.3.6
- 缺陷修复:检测 nginx 的复杂值脚本支持。感谢 lijunlong 提供补丁。
- 缺陷修复:支持 nginx 1.31.3 的复杂值。感谢 lijunlong 提供补丁。
升级 echo-nginx-module 至 v0.65
- 缺陷修复:在内存不足时,子请求和 location 处理函数检查 ctx 是否为空。感谢 lijunlong 提供补丁。
升级 srcache-nginx-module 至 v0.34
- 缺陷修复:修正 ctx 的分配大小以及空参数的清零处理。感谢 lijunlong 提供补丁。
升级 memc-nginx-module 至 v0.21
- 缺陷修复:在
$memc_flags_as_http_time处理函数中检查 ctx 是否为空。感谢 lijunlong 提供补丁。
- 缺陷修复:在
升级 lua-resty-string 至 v0.19
- 缺陷修复:将
RAND_bytes返回 -1 视为失败。感谢 lijunlong 提供补丁。 - 新功能:新增
md5.final_hex()方法,直接输出十六进制摘要。感谢 lijunlong 提供补丁。
- 缺陷修复:将
升级 resty-cli 至 v0.36
- 新功能:resty 新增
--no-clean选项,退出时保留临时 nginx 前缀目录。感谢 lijunlong 提供补丁。 - 优化:md2pod 将 Setext 标题正则表达式的匹配范围限制在单行内。感谢 lijunlong 提供补丁。
- 优化:md2pod 为开销较大的解析正则表达式添加前置检查。感谢 lijunlong 提供补丁。
- 优化:nginx-xml2pod 按标签名分派解析逻辑。感谢 lijunlong 提供补丁。
- 新功能:resty 新增

















