



nginx 在 2026 年 2 月正式发布了 1.29.5 mainline 版本。这次更新不仅是例行的功能与规范修订,更包含了一项至关重要的 严重安全漏洞修复 —— CVE-2026-1642。该漏洞涉及 SSL 上游注入攻击,攻击者可能通过特定方式在后端 SSL 响应中注入未经加密的明文数据,对用户隐私和传输安全造成威胁。
本次更新是对 1.29.4 版本的延续与强化,从底层 SSL 处理、FastCGI 参数配置到文档与编译优化,nginx 团队进行了全面完善与安全加固。这也是一次贯穿安全性、稳定性与可维护性的版本迭代。
在 1.29.5 中,最重要的更新无疑是 SSL 上游注入漏洞(CVE-2026-1642) 的修复。
该漏洞允许攻击者在特定条件下将明文数据插入到来自 SSL 后端的响应中。这意味着,在某些代理或上游 SSL 会话中,如果未正确验证数据完整性,攻击者可能伪造或插入“不受加密保护”的数据。
nginx 在本次版本中加入了检测与拦截机制:
这项修复强化了 nginx 在反向代理和安全会话管理中的防御能力,让它在处理 HTTPS 上游时更加稳健。
nginx 1.29.5 的代码更新涉及 17 个提交、16 个修改文件,总计 167 行新增代码 与 19 行删除。这些改动覆盖多个模块、工具链与文档部分。
以下是主要更新点汇总:
src/core/nginx.h 中版本号从 1.29.4 更新为 1.29.5。nginx_version 1029005。在 src/event/ngx_event_openssl.c 文件中:
这使得管理员在运行时更容易区分真正的严重错误与普通的 TLS 提示。
在这三个模块(ngx_http_fastcgi_module.c、ngx_http_scgi_module.c、ngx_http_uwsgi_module.c)中,新增了一个统一的初始化逻辑:
• 新增 HTTP_HOST 参数传递机制,确保在代理到后端时,HTTP_HOST 能保持与请求目标一致。
• 该参数组统一定义为:
{ ngx_string("HTTP_HOST"), ngx_string("$host$is_request_port$request_port") }• 优化了 FastCGI、SCGI、uwsgi 的 init_params 调用,防止出现未设置主机头的情况。
这意味着,当 nginx 作为应用服务器代理时,后端脚本或应用不再因为缺失 HTTP_HOST 而解析异常。
在 ngx_http_range_filter_module.c 中改进了多区间请求处理逻辑:
max_ranges 控制区间数量;这部分改动实际提升了 nginx 在处理复杂 Range 请求时的性能与稳定性,避免资源浪费和潜在的内存异常。
文件 ngx_http_proxy_v2_module.c 中:
ctx->in 与 ctx->busy 初始化清空,确保跨请求的请求体不残留。这解决了在代理多阶段通信中,缓冲区未正确释放的问题。
在 ngx_http_upstream.c 与 ngx_http_upstream.h 文件中:
response_received 状态标识;ngx_http_upstream_connect 与 ngx_http_upstream_process_header 两个核心函数。优化逻辑包括:
这些改动显著提升了上游代理在 gRPC 与 HTTP/2 连接中的安全与稳定性。
在代码文件 src/os/win32/ngx_shmem.c 中:
base += ngx_align(size, ngx_allocation_granularity); 改为
base += ngx_align(shm->size, ngx_allocation_granularity);。此举避免了错位内存映射,提升 Windows x86 编译稳定性。
与此同时 misc/GNUmakefile 更新了以下关键构建库:
这些变化确保了 nginx 在 Windows 环境下拥有更高的编译兼容性与安全加密支持。
.github/ISSUE_TEMPLATE/bug_report.yml 修复了两个字段重复定义的错误:
id: environment 改为 id: versionid: environment 改为 id: architecture此修订确保 GitHub 提交问题模板不会出现字段冲突,改善了社区反馈体验。
docs/man/nginx.8 文件中彻底更新了文档说明:
此更新让系统管理员在调试 nginx 配置时,更清楚测试的实际行为,不再误认为「仅语法检查」。
GNUmakefile 中重构了文档移动脚本:
docs.new 目录;该调整优化了 Windows 构建包结构,使得源代码发布更符合标准工程格式。
docs/xml/nginx/changes.xml 文件新增了 1.29.5 的完整变更描述,包括:
从文件结构上看,该 xml 仍保留中英双语说明,为维护者与国际用户同时提供参考。
本次 nginx 1.29.5 版本在功能层面没有引入新的特性接口,但每一项改动都对应着实际运行稳定性的提升。总结其意义如下:
针对升级到 nginx 1.29.5 的用户,建议:
nginx -t 检查配置,并确认监听端口绑定测试通过。代码地址:github.com/nginx/nginx
nginx 1.29.5 是一次兼顾安全、稳定与长期维护的重要发布。 它修复了潜伏多年的 SSL 上游注入安全隐患,优化了多协议代理的兼容性,同时完善了日志与文档体系。
从源码的几十行变更背后,可以看出 nginx 团队对细节的关注——无论是一个日志等级,还是一个内存偏移,都直接关系到数百万应用的运行稳定性。
对于使用 nginx 作为反向代理、API 网关、负载均衡或应用服务器的开发者而言,1.29.5 是一个安全和性能的双重里程碑版本。
总结要点:
·
我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。
·