
2025年10月7日,nginx 1.29.2 主线版本正式发布。本次更新在功能增强、BUG 修复、兼容性优化等方面都有重要改动,尤其在 QUIC 协议支持、SSL/TLS 处理,以及 AWS-LC 兼容性等领域进行了完善。以下为本版本的详细更新内容。
一、主要功能更新
-
支持 AWS-LC 构建
- 现在 nginx 可以使用 AWS-LC 库来编译构建,提升在特定环境下的性能与安全性。
-
SNI(Server Name Indication)优化
- 新增基于
ClientHello
回调的 SNI 处理机制,支持早期回调机制并兼容 BoringSSL。 - 增加
ngx_ssl_set_client_hello_callback
接口,用于在握手初期进行域名匹配与证书选择。
- 新增基于
二、重要 BUG 修复
-
ssl_protocols
作用域修复- 修复默认虚拟主机之外的服务器在使用 OpenSSL 1.1.1 及以上版本时,
ssl_protocols
指令不生效的问题。
- 修复默认虚拟主机之外的服务器在使用 OpenSSL 1.1.1 及以上版本时,
-
TLSv1.3 + 客户端证书 + SNI 会话恢复失败问题
- 在使用 TLSv1.3 + 客户端证书时,如果恢复的会话 SNI 不同,会导致握手失败的问题,此 BUG 出现于 1.27.4,本次已修复。
-
QUIC 协议 ssl_reject_handshake 错误信息问题
- 当使用 QUIC 并启用
ssl_reject_handshake
指令时,日志可能出现ignoring stale global SSL error
,此问题在 1.29.0 引入,本次已修复。
- 当使用 QUIC 并启用
-
Cache-Control delta-seconds 溢出检测
- 修复后端响应头中
"Cache-Control"
的delta-seconds
参数处理的溢出检测问题。
- 修复后端响应头中
-
Mail 模块 XCLIENT 字符串编码问题
- 对
XCLIENT
命令增加xtext
编码支持,符合 RFC 3461 规范。
- 对
-
SSL 证书缓存继承问题
- 修复证书缓存继承过程中出现的
"key values mismatch"
错误,保障证书与私钥匹配一致性。
- 修复证书缓存继承过程中出现的
三、配置与默认行为调整
-
移除默认配置中的 legacy charset 指令
- 在
conf/nginx.conf
默认配置示例中删除过时的charset koi8-r
指令。
- 在
-
更新 xslscript 链接
- 文档构建工具
xslscript
链接更新为https://github.com/nginx/xslscript
。
- 文档构建工具
四、QUIC 协议相关改进
-
本地化 QUIC OpenSSL 头文件引用
- 在 QUIC 保护中本地化 OpenSSL 头文件的引用,提升代码可移植性。
-
BoringSSL API 差异化宏定义
- 增加区分 BoringSSL 特定 EVP API 的宏定义,减少不同库之间的兼容问题。
-
AWS-LC QUIC 兼容性
- 适配 AWS-LC 对 QUIC 的支持,与 OpenSSL/BoringSSL 保持一致 API 调用。
五、F5 CLA 工作流新增
- 在
.github/workflows
中新增了 F5 CLA 工作流,自动检测提交者是否签署贡献者许可协议(CLA),保障开源贡献的法律合规性。
六、版本信息
- 版本号 :
1.29.2
- 发布时间:2025-10-07
- 上一版本:1.29.1(2025-08-13)
七、总结
nginx 1.29.2 在保障安全性和兼容性方面迈出了重要一步。该版本不仅扩展了构建支持 AWS-LC 库的新能力,还优化了 QUIC 协议和 SSL/TLS 在多种环境下的表现。对于使用 TLSv1.3 与 SNI 的用户,本次更新能显著缓解握手失败问题。同时,Mail 模块与 Cache-Control 头处理的修复,也提升了在邮件系统及缓存控制中的稳定性。
本次升级建议以下用户优先考虑:
- 使用 QUIC 的站点
- 依赖 AWS-LC 或 BoringSSL 构建的部署环境
- 使用 SNI + TLSv1.3 + 客户端证书的业务场景
- 对邮件模块有编码规范要求的部署