打开网易新闻 查看精彩图片

2025年10月7日,nginx 1.29.2主线版本正式发布。本次更新在功能增强、BUG 修复、兼容性优化等方面都有重要改动,尤其在 QUIC 协议支持、SSL/TLS 处理,以及 AWS-LC 兼容性等领域进行了完善。以下为本版本的详细更新内容。

一、主要功能更新

  1. 1.支持 AWS-LC 构建

  • • 现在 nginx 可以使用 AWS-LC 库来编译构建,提升在特定环境下的性能与安全性。

2.SNI(Server Name Indication)优化

  • • 新增基于ClientHello回调的 SNI 处理机制,支持早期回调机制并兼容 BoringSSL。

  • • 增加ngx_ssl_set_client_hello_callback接口,用于在握手初期进行域名匹配与证书选择。

二、重要 BUG 修复
  1. 1.ssl_protocols作用域修复

  • • 修复默认虚拟主机之外的服务器在使用 OpenSSL 1.1.1 及以上版本时,ssl_protocols指令不生效的问题。

2.TLSv1.3 + 客户端证书 + SNI 会话恢复失败问题

  • • 在使用 TLSv1.3 + 客户端证书时,如果恢复的会话 SNI 不同,会导致握手失败的问题,此 BUG 出现于 1.27.4,本次已修复。

3.QUIC 协议 ssl_reject_handshake 错误信息问题

  • • 当使用 QUIC 并启用ssl_reject_handshake指令时,日志可能出现ignoring stale global SSL error,此问题在 1.29.0 引入,本次已修复。

4.Cache-Control delta-seconds 溢出检测

  • • 修复后端响应头中"Cache-Control"delta-seconds参数处理的溢出检测问题。

5.Mail 模块 XCLIENT 字符串编码问题

  • • 对XCLIENT命令增加xtext编码支持,符合 RFC 3461 规范。

6.SSL 证书缓存继承问题

  • • 修复证书缓存继承过程中出现的"key values mismatch"错误,保障证书与私钥匹配一致性。

三、配置与默认行为调整
  1. 1.移除默认配置中的 legacy charset 指令

  • • 在conf/nginx.conf默认配置示例中删除过时的charset koi8-r指令。

2.更新 xslscript 链接

  • • 文档构建工具xslscript链接更新为https://github.com/nginx/xslscript

四、QUIC 协议相关改进
  1. 1.本地化 QUIC OpenSSL 头文件引用

  • • 在 QUIC 保护中本地化 OpenSSL 头文件的引用,提升代码可移植性。

2.BoringSSL API 差异化宏定义

  • • 增加区分 BoringSSL 特定 EVP API 的宏定义,减少不同库之间的兼容问题。

3.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 + 客户端证书的业务场景

  • • 对邮件模块有编码规范要求的部署

我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。