网易首页 > 网易号 > 正文 申请入驻

nginx 1.29.8 发布:移除 CLOCK_MONOTONIC_FAST,修复子请求端口变量为空

0
分享至




2026年4月7日,nginx官方正式发布mainline主线版本nginx 1.29.8,本次更新聚焦于核心功能修复、安全能力增强、加密库兼容升级以及配置体验优化,共计11次代码提交、16个文件修改、7位开发者参与贡献。本次版本没有引入破坏性变更,在保持线上服务稳定性的前提下,解决了长期存在的配置语法、上游协议处理、SSL库兼容、变量赋值、整数溢出等多项问题,同时新增请求头数量管控能力,进一步提升高并发场景下的服务安全性与健壮性。

本文基于官方GitHub提交记录、变更日志以及代码diff内容,对nginx 1.29.8所有更新点进行逐点拆解,覆盖功能新增、Bug修复、代码移除、配置指令、协议处理、SSL兼容、变量修复、时间函数调整等全部细节,确保生产环境运维、开发人员能够完整掌握本次升级的全部价值与注意事项。

一、nginx 1.29.8版本基础信息

nginx 1.29.8属于mainline主线版本,发布时间为2026年4月7日,版本号从1.29.7升级至1.29.8,对应的版本宏定义完成同步修改。本次更新规模适中,聚焦于线上高频问题修复与基础能力增强,无新增大型模块或协议特性,适合生产环境平滑升级,能够有效解决旧版本在复杂配置、高并发代理、新版OpenSSL环境下的异常问题。

本次更新核心统计:

  • • 提交次数:11次commits

  • • 修改文件:16个

  • • 贡献者:7位

  • • 代码变更:161行新增、26行删除

  • • 发布类型:mainline主线版本

  • • 适用场景:Web服务、反向代理、负载均衡、API网关、HTTPS加密服务

二、核心功能新增与增强 (一)新增max_headers指令,管控请求头数量

nginx 1.29.8最具安全价值的更新是新增max_headers指令,该指令属于HTTP核心模块配置项,支持在http块与server块中配置,默认值为1000,用于限制客户端单次请求允许携带的请求头行数上限,从源头防范恶意请求发送大量请求头导致的服务资源耗尽、Slowloris类拒绝服务攻击。

  1. 1. 指令定义与配置层级
    max_headers指令注册于ngx_http_core_module模块,配置层级为NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF,支持单数字参数配置,在核心模块配置结构中新增max_headers字段,合并配置时默认赋值为1000,可根据业务场景灵活调大或缩小。

  2. 2. 全协议栈生效机制
    该限制不仅作用于HTTP/1.1协议,同时同步适配HTTP/2与HTTP/3协议栈,在请求头解析流程中统一增加计数判断逻辑:

  • • HTTP/1.1:在ngx_http_process_request_headers函数中对headers_in.count进行计数,超出上限直接返回431 Request Header Fields Too Large

  • • HTTP/2:在ngx_http_v2_state_process_header函数中加入计数检查,触发上限直接关闭请求

  • • HTTP/3:在ngx_http_v3_process_header函数中实现相同限制逻辑,保障三层协议安全一致性

  1. 3. 安全防护价值
    在高并发公网环境中,恶意客户端可通过构造数百上千个请求头占用Nginx内存与CPU资源,max_headers提供了轻量级防护手段,无需依赖第三方WAF即可实现基础请求头限流,提升网关层抗攻击能力。

(二)SSL模块兼容OpenSSL 4.0

nginx 1.29.8完成对OpenSSL 4.0的兼容性改造,解决新版OpenSSL接口变更导致的SSL证书解析、证书主题获取、OCSP stapling等功能异常问题,适配OpenSSL 4.0中X509_NAME返回值const限定符调整、ASN1字符串访问接口变化等核心改动。

  1. 1. 代码适配细节

  • • 在ngx_event_openssl.c中增加OPENSSL_VERSION_NUMBER版本判断,对X509_get_subject_name返回值添加const修饰

  • • OCSP stapling模块ngx_event_openssl_stapling.c中统一使用ASN1_STRING_get0_data与ASN1_STRING_length安全访问序列号数据

  • • 修复证书DN获取、证书主题复制、证书颁发者读取等函数在OpenSSL 4.0下的编译错误与运行异常

  • • 头文件ngx_event_openssl.h补充低版本OpenSSL兼容宏,保障跨版本编译一致性

  1. 2. 部署价值
    随着操作系统逐步升级至OpenSSL 4.0,旧版nginx会出现编译失败、HTTPS握手异常、证书验证失败等问题,本次兼容确保nginx可在新版加密库环境中稳定运行,满足金融、政企等对加密库版本有强制要求的场景。

(三)geo块include指令支持通配符

nginx 1.29.8优化HTTP与Stream模块的geo配置块,使include指令支持*、?、[]等通配符匹配,解决批量IP规则文件加载不便的问题。

  1. 1. 实现逻辑
    在ngx_http_geo_module.c与ngx_stream_geo_module.c中增加通配符判断逻辑:

  • • 检测include路径包含通配符时,调用ngx_conf_include标准通配符加载逻辑

  • • 无通配符时保持原有ngx_http_geo_include/ngx_stream_geo_include处理流程

  • • 兼容原有配置语法,无需修改现有geo块配置即可获得通配符能力

  1. 2. 运维价值
    在大规模CDN、防火墙IP规则、地域分流场景中,可通过include geo/*.conf批量加载规则文件,简化配置维护,提升规则管理效率。

三、上游模块与协议处理Bug修复 (一)修复多103 Early Hints响应处理异常

nginx 1.29.8修复反向代理场景下,后端服务器返回多个103 Early Hints响应时的处理逻辑错误,解决响应头重复发送、连接阻塞、协议解析异常等问题。

  1. 1. 修复内容

  • • 上游模块ngx_http_upstream.c新增again标签跳转逻辑,优化多Early Hints响应循环处理流程

  • • 修复上游重初始化时early_hints_length未清零问题,避免历史数据干扰新请求解析

  • • 统一Early Hints长度计数与重置机制,保障代理链路协议状态一致性

  1. 2. 业务影响
    Early Hints用于浏览器预加载关键资源,提升页面渲染速度,旧版多103响应会导致前端资源加载异常、服务端连接泄漏,修复后可稳定支持现代Web应用的性能优化特性。

(二)修复字符集解析整数下溢

修复上游响应Content-Type字符集解析过程中的整数下溢漏洞,避免恶意构造响应头导致内存越界、进程崩溃等安全风险。

  1. 1. 修复逻辑
    在ngx_http_upstream_copy_content_type函数中增加边界判断,确保指针操作安全,防止末尾引号截断时出现负地址访问,提升代理模块健壮性。

  2. 2. 安全意义
    该漏洞可被利用构造恶意上游响应实现拒绝服务,影响反向代理、API网关场景稳定性,修复后消除内存安全隐患。

四、变量与子请求机制修复 修复 is_request_port子请求为空问题

nginx 1.29.8修复使用auth_request子请求时, 与 is_request_port变量丢失的问题,保障端口相关变量在主请求与子请求中一致性。

  1. 1. 修复实现
    在ngx_http_subrequest创建子请求时,将主请求port字段赋值至子请求sr->port,确保变量上下文继承,解决认证代理场景下端口变量不可用问题。

  2. 2. 适用场景
    微服务认证、JWT校验、权限拦截等依赖auth_request的架构中,端口变量常用于日志记录、路由判断、安全审计,修复后保障日志完整性与策略执行准确性。

五、底层系统函数与时间模块调整 移除CLOCK_MONOTONIC_FAST支持

nginx 1.29.8从ngx_times.c中移除对CLOCK_MONOTONIC_FAST的编译分支,统一使用标准CLOCK_MONOTONIC获取单调时间,解决部分系统平台时间函数兼容性问题。

  1. 1. 代码变更
    删除 CLOCK_MONOTONIC_FAST条件编译块,所有平台统一调用clock_gettime(CLOCK_MONOTONIC, &ts),简化时间获取逻辑,提升跨平台一致性。

  2. 2. 影响说明
    CLOCK_MONOTONIC_FAST为部分BSD系统非标准扩展,移除后不会影响Linux主流发行版运行,同时避免时间跳变、计时异常等问题,提升服务计时准确性。

六、文档与贡献规范更新

更新CONTRIBUTING.md贡献指南,完善提交信息规范:

  • • 新增Closes标签使用说明,支持通过提交信息自动关闭GitHub Issue

  • • 规范Issue引用格式,明确提交信息主题前缀规则

  • • 优化换行长度与格式约束,提升社区协作规范性

同时更新docs/xml/nginx/changes.xml变更日志,以俄英双语记录1.29.8全部功能与修复,同步版本发布时间与说明。

七、版本标识与核心文件修改 (一)版本号升级

src/core/nginx.h中版本宏同步更新:

  • • nginx_version从1029007改为1029008

  • • NGINX_VERSION从"1.29.7"改为"1.29.8"

  • • NGINX_VER保持nginx/版本号格式不变

(二)核心模块文件修改

本次修改覆盖HTTP核心、SSL、上游、HTTP/2、HTTP/3、Geo、Stream Geo、时间模块等核心文件,确保所有修复与增强点完整落地:

  1. 1. src/http/ngx_http_core_module.c/h:新增max_headers指令定义

  2. 2. src/http/ngx_http_request.c/h:添加请求头计数与限制逻辑

  3. 3. src/http/v2/ngx_http_v2.c:HTTP/2请求头计数限制

  4. 4. src/http/v3/ngx_http_v3_request.c:HTTP/3请求头计数限制

  5. 5. src/event/ngx_event_openssl.c/h/stapling.c:OpenSSL 4.0适配

  6. 6. src/http/modules/ngx_http_geo_module.c:geo块include通配符

  7. 7. src/stream/ngx_stream_geo_module.c:stream geo块通配符

  8. 8. src/http/ngx_http_upstream.c:上游Early Hints与字符集修复

  9. 9. src/core/ngx_times.c:移除CLOCK_MONOTONIC_FAST

  10. 10. 文档与配置规范文件同步更新

八、生产环境升级建议
  1. 1. 升级优先级

  • • 必升级:使用OpenSSL 4.0、开启auth_request、反向代理多103响应、大量geo配置、公网高并发网关

  • • 建议升级:所有运行1.29.x主线版本的服务,消除内存安全与协议漏洞

  1. 2. 兼容性说明

  • • 配置文件完全兼容1.29.x旧版本,无需修改语法

  • • HTTP/1.1/2/3、SSL、Stream、上游代理功能无 breaking change

  • • 支持平滑升级,不中断现有连接

  1. 3. 新增配置示例

http {
max_headers 500;
server {
listen 80;
max_headers 800;
}
}
九、总结

代码地址:github.com/nginx/nginx

nginx 1.29.8作为1.29主线版本的重要迭代,以稳定性与安全性为核心,完成了三大能力升级:

  1. 1. 安全能力增强:新增max_headers请求头防护,修复整数下溢漏洞

  2. 2. 兼容能力提升:全面适配OpenSSL 4.0,移除非标准系统调用

  3. 3. 功能体验优化:geo块支持include通配符,修复Early Hints、子请求变量等高频Bug


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

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
3-6!斯佳辉连丢五局错失晋级先机,中国小将恐无缘世锦赛16强!

3-6!斯佳辉连丢五局错失晋级先机,中国小将恐无缘世锦赛16强!

世界体坛观察家
2026-04-23 01:10:58
4月前19天乘用车零售同比大跌26%,房地产的今天就是汽车的明天?

4月前19天乘用车零售同比大跌26%,房地产的今天就是汽车的明天?

风向观察
2026-04-22 18:24:13
高99米,北京最高摩天轮欢乐谷“大眼京”预计6月28日运营

高99米,北京最高摩天轮欢乐谷“大眼京”预计6月28日运营

新京报
2026-04-22 13:06:20
伊朗不打算给面子,美军三航母就位,特朗普想把中国拖下水

伊朗不打算给面子,美军三航母就位,特朗普想把中国拖下水

林子说事
2026-04-22 20:10:33
5-1,41岁C罗多次失良机+科曼戴帽,利雅得胜利强势进亚冠决赛

5-1,41岁C罗多次失良机+科曼戴帽,利雅得胜利强势进亚冠决赛

侧身凌空斩
2026-04-23 02:33:16
与伊朗谈判取消  特朗普再次上演TACO,宣布延长停火期

与伊朗谈判取消 特朗普再次上演TACO,宣布延长停火期

刘耘博士
2026-04-22 10:49:40
情侣在瑞士雪山顶“撒欢”,就这么被全世界直播了···

情侣在瑞士雪山顶“撒欢”,就这么被全世界直播了···

新欧洲
2026-04-21 19:37:05
钱是有灵性的,记住以下六点,你会越来越有钱

钱是有灵性的,记住以下六点,你会越来越有钱

金沛的国学笔记
2026-04-21 18:53:07
多头下注?苏林回国态度大变,中方刚收紧钨矿出口,越南立马填上

多头下注?苏林回国态度大变,中方刚收紧钨矿出口,越南立马填上

世界圈
2026-04-22 15:43:35
成都公安抓获一华西挂号“黄牛”团伙:每晚8点准时“上班”,长期恶意占用公共挂号设备

成都公安抓获一华西挂号“黄牛”团伙:每晚8点准时“上班”,长期恶意占用公共挂号设备

爱看头条
2026-04-22 16:00:14
医院的专家号刚放出就瞬间“秒空”,上海三甲医院紧急报警!警方:对倒卖医院号源犯罪团伙的李某、郑某等人依法刑事拘留

医院的专家号刚放出就瞬间“秒空”,上海三甲医院紧急报警!警方:对倒卖医院号源犯罪团伙的李某、郑某等人依法刑事拘留

大风新闻
2026-04-22 15:12:13
无才无德、装疯卖傻、一肚子草包,是谁捧红了这些跳梁小丑?

无才无德、装疯卖傻、一肚子草包,是谁捧红了这些跳梁小丑?

蹲坑看世界
2026-04-22 23:00:21
黄瓜是糖尿病的“催命符”?血糖要想稳定不飙,该吃的是这3物

黄瓜是糖尿病的“催命符”?血糖要想稳定不飙,该吃的是这3物

芹姐说生活
2026-04-22 23:48:54
台湾专家赖岳谦:印度确实有一点比中国强很多,那就是——嘴。

台湾专家赖岳谦:印度确实有一点比中国强很多,那就是——嘴。

荆楚寰宇文枢
2026-04-22 23:16:37
10大天规,不可打破,君子知命不算命!

10大天规,不可打破,君子知命不算命!

神奇故事
2026-04-20 19:27:24
朝鲜发声痛批日本,要求日本向中国道歉:针对中国驻日使馆的连环恐怖威胁,是对国际法的粗暴违反与公然挑衅

朝鲜发声痛批日本,要求日本向中国道歉:针对中国驻日使馆的连环恐怖威胁,是对国际法的粗暴违反与公然挑衅

大风新闻
2026-04-22 18:42:23
AI竟能生成《金瓶梅》"3A大作"!尺度很大细节夸张

AI竟能生成《金瓶梅》"3A大作"!尺度很大细节夸张

游民星空
2026-04-22 11:55:38
英国议会通过法案,2008年后出生者终身不得购烟

英国议会通过法案,2008年后出生者终身不得购烟

澎湃新闻
2026-04-22 14:53:04
9岁女童确诊胰腺癌,医生怒问父母:怎能天天给孩子吃这些?

9岁女童确诊胰腺癌,医生怒问父母:怎能天天给孩子吃这些?

健康之光
2026-04-22 17:37:49
阴毛有什么用?越来越少了意味着啥?到底能不能刮?医生讲出实情

阴毛有什么用?越来越少了意味着啥?到底能不能刮?医生讲出实情

只因你
2026-04-22 10:36:19
2026-04-23 04:43:00
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
1186文章数 66关注度
往期回顾 全部

科技要闻

对话梅涛:没有视频底座,具身智能走不远

头条要闻

伊朗:特朗普“又说谎了”

头条要闻

伊朗:特朗普“又说谎了”

体育要闻

网易传媒再度签约法国队和阿根廷队

娱乐要闻

蜜雪冰城泰国代言人 被扒出辱华黑历史

财经要闻

医院专家号"秒空"!警方牵出黑色产业链

汽车要闻

纯电续航301km+激光雷达 宋Pro DM-i飞驰版9.99万起

态度原创

艺术
旅游
本地
家居
公开课

艺术要闻

看!这些美女的眼神能让你心醉神迷!

旅游要闻

“运上行”周五首航

本地新闻

春色满城关不住|白鹃梅浪漫盛放,吴山藏了一片四月雪

家居要闻

极简绘梦 克制和谐

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版