


2025年12月11日,nginx 官方发布了 1.29.4 mainline 版本。本次更新带来了多项重要特性与修复,包括 HTTP/2 到后端的支持 、Encrypted Client Hello (ECH) 集成,以及对 SSL、HTTP/2、代理模块的多方改进。以下是本次更新的详细内容:
主要更新内容
-
构建信息优化
- 配置流程确保在执行
nginx -V时可以正确显示 "built by ..." 信息。 - 增强 MSVC 与 PCRE2 10.47 的兼容性。
- 配置流程确保在执行
-
SSL 功能更新与修复
- 修改了
ngx_ssl_set_client_hello_callback()接口,优化错误处理流程。 - 修复了在使用 BoringSSL 时因先前改动导致的构建问题。
- 避免在 ECH 未配置或不支持的情况下产生警告信息。
- 增加通过 OpenSSL 的 ECH 共享模式支持,实现加密客户端问候功能。
- 修改了
-
HTTP/2 改进
- 扩展了对 NULL 缓冲区及零长度的防护检查,提升稳定性。
- 禁用了在分块传输编码中使用裸 LF,提升协议安全性与兼容性。
- 增加上游连接层面的 ALPN 协议协商支持。
-
代理模块优化
- 修复 URI 变更时可能出现的段错误问题。
- 针对 HTTP/2 协议进行了代理模块重构,新增 HTTP/2 代理模块。
- 提取
ngx_http_proxy_v2_process_frames()函数,以及控制帧与跳过函数,以提升代码可维护性。 - 增加 HTTP/2 代理的缓冲支持与缓存支持,提升后端通信效率。
-
主机验证改进
- 改进了主机头部验证逻辑,并调整了
ngx_http_validate_host()接口。
- 改进了主机头部验证逻辑,并调整了
-
QUIC 协议修复
- 修复 QUIC 握手失败时可能出现的段错误问题,提高稳定性。
版本意义
nginx 1.29.4 在功能上进一步完善了对现代协议的支持,尤其是 HTTP/2 后端通信 和 ECH 加密握手 ,提升了安全性与性能。
同时,本次更新对 SSL、HTTP/2、代理及 QUIC 等模块进行了多方优化与 bug 修复,确保在高并发和多协议环境中运行更加稳定。