☰
nginx 1.31.8正式发布:HTTP/3、SSL、Win32、JSON、控制接口与构建流程迎来集中修复
2026/10/24 2:28:36 网站建设 项目流程

2026年10月22日,nginx 1.31.8 主线版本正式发布。本次版本对应 release-1.31.8,官方变更可参考 nginx.org 提供的 CHANGES 文件。

从发布信息看,nginx 1.31.8 涉及 HTTP/3、SSL、Win32、控制接口、Dav、JSON 解析器、核心工作目录处理、Windows 压缩包生成流程以及构建工作流等多个部分。发布页面显示,本次版本共有 11 位贡献者参与,包含 21 个提交,涉及 52 个文件变更。

虽然本次发布没有单一的大功能描述,但修复范围较广,重点集中在边界场景、跨平台兼容性、底层接口可移植性、编码行为以及构建流程完善等方面。


一、版本发布信息

本次发布版本为:

  • release-1.31.8
  • nginx 1.31.8 mainline version
  • 发布时间:2026年10月22日
  • 提交数量:21
  • 文件变更数量:52
  • 贡献者数量:11

发布页面同时提供了分支变更比较入口,可以选择两个分支查看变更,也可以据此发起新的拉取请求,并提供差异比较相关功能。

本次最终发布提交为:

  • nginx-1.31.8-RELEASE

此外,发布过程中还包含版本号更新:

  • Version bump

二、HTTP/3 相关修复:处理空编码器字段值与内存对齐问题

HTTP/3 是本次更新中较为集中的部分之一,涉及编码器字段值以及 Huffman 编码过程。

第一项改动是:

  • HTTP/3: avoid undefined behaviour with empty encoder field values

该改动用于避免编码器字段值为空时出现未定义行为。空字段值本身属于容易被忽略的边界情况,而本次修复明确覆盖了这一场景。

第二项改动是:

  • HTTP/3: avoid unaligned stores in Huffman encoding

这一修改聚焦 Huffman 编码过程中的非对齐存储问题。此次发布将其单独列为 HTTP/3 相关修复,说明该问题位于编码实现路径中。

从提交时间看,空编码器字段值相关修复出现在 2026年10月15日;Huffman 编码的非对齐存储修复出现在 2026年10月20日。两项修改共同构成了本次版本对 HTTP/3 编码处理的主要更新内容。


三、Win32 平台调整:移除 iocp 事件模块及未使用指针

nginx 1.31.8 对 Win32 平台进行了清理和调整,主要包含两项内容。

第一项是:

  • Win32: removed the iocp event module

该改动移除了 iocp 事件模块。

第二项是:

  • Win32: removed unused winsock extension function pointers

该改动移除了未使用的 Winsock 扩展函数指针。

两项 Win32 变更均出现在 2026年10月15日。从变更说明可以看到,本次调整既包括事件模块层面的移除,也包括未使用扩展函数指针的清理。


四、控制接口更新:记录已接受套接字配置错误

控制接口相关更新主要包括错误记录以及 ioctl 调用的可移植性调整。

第一项改动是:

  • Control: logged errors from accepted socket setup

该项修改用于记录已接受套接字配置过程中的错误。

对应的提交说明为:

  • Control API: log errors from accepted socket setup

这意味着,在已接受套接字的设置过程中,相关错误会被记录下来。

第二项改动是:

  • Control API: use more portable ioctl(FIOASYNC)

该更新将控制接口中的 ioctl(FIOASYNC) 调用调整为更具可移植性的方式。

与此同时,还有一项核心层面的配套修复:

  • Core: fixed ioctl(FIOASYNC) argument type

该修改修正了 ioctl(FIOASYNC) 的参数类型。

控制接口与核心层面的这两部分改动同时出现,分别覆盖错误记录、接口调用可移植性以及参数类型处理。


五、Dav 模块修复:目标映射错误时恢复请求 URI

Dav 模块在本次版本中包含一项明确修复:

  • Dav: restored the request URI on a destination mapping error

该修改用于在 destination 映射出错时恢复请求 URI。

从变更描述来看,这一问题发生在 destination 映射错误场景。nginx 1.31.8 对此进行了恢复请求 URI 的处理。


六、SSL 相关修复:内核 TLS 关闭后的 EIO 与会话编码返回值

SSL 部分包含两项修复,分别涉及内核 TLS 关闭后的 EIO 处理,以及 SSL 会话编码函数的负值返回问题。

第一项是:

  • SSL: ignored EIO after shutdown with kernel TLS

该改动用于在使用内核 TLS 时,忽略 shutdown 之后出现的 EIO。

第二项是:

  • SSL: workaround for i2d_SSL_SESSION() negative values

该修改为 i2d_SSL_SESSION() 出现负值的情况提供了处理方案。

这两项变更均在 2026年10月15日的提交中出现,属于本次 nginx 1.31.8 对 SSL 处理路径的主要修复内容。


七、Priority 解析修复:解决 32 位平台大整数问题

本次版本包含一项与 Priority 解析有关的修复:

  • Fixed Priority parsing of large integers on 32-bit platforms

该修改用于修复 32 位平台上解析大整数时的 Priority 问题。

变更说明明确限定了两个条件:

  • 32 位平台
  • 大整数解析

因此,该项修复针对的是特定平台环境下的大整数处理场景。


八、JSON 解析器调整:字符串反转义与事件报告方式变化

JSON 是 nginx 1.31.8 中变更较多的模块之一。发布摘要中将其概括为:

  • JSON: parser API refactoring

对应提交包含两项具体调整。

第一项是:

  • JSON: modified ngx_json_unescape_string() to unescape into a new buffer

该修改调整了 ngx_json_unescape_string() 的处理方式,使其将反转义结果写入新的缓冲区。

第二项是:

  • JSON: report escaped strings as separate parser events

该修改使已转义字符串以独立的解析器事件形式进行报告。

这两项 JSON 更新都出现在 2026年10月17日。结合发布摘要中的“parser API refactoring”描述,本次调整集中于 JSON 解析器接口、字符串反转义输出方式以及转义字符串事件报告方式。


九、核心工作目录处理:相对 prefix 与校验逻辑

核心部分在 2026年10月21日包含两项与 working_directory 有关的提交。

第一项是:

  • Core: working_directory relative to prefix

该修改涉及 working_directory 相对于 prefix 的处理。

第二项是:

  • Core: working_directory validation

该修改涉及 working_directory 的校验。

发布摘要中对此进行了概括:

  • working_directory fixes

这两项变更分别覆盖工作目录与 prefix 的相对关系,以及工作目录本身的验证逻辑。


十、构建与发布流程:Windows zip、GNU sed 与构建工作流

除了运行时模块与核心逻辑外,nginx 1.31.8 还更新了构建、打包和自动化工作流相关内容。

第一项是 Windows 压缩包生成流程:

  • GH: workflow to generate windows zip

该修改增加了用于生成 Windows zip 的工作流。

第二项是构建工作流中的身份令牌与机密传递:

  • GH: request an id token and pass secrets to a callee in buildbot.yml

该变更涉及 buildbot.yml,其中包括请求 id token,并将 secrets 传递给被调用方。

第三项是 zip 目标兼容性修复:

  • Misc: fixed “zip” target with GNU sed

该修改修复了在 GNU sed 环境下的 zip 目标问题。

以上三项构建与发布相关更新均出现在 2026年10月20日,分别涉及 Windows 压缩包生成、构建工作流中的令牌与机密传递,以及 GNU sed 下的 zip 目标处理。


十一、其他修改:修正拼写错误

本次发布还包含一项简单修正:

  • Fixed a typo

对应提交说明为:

  • Fixed a typo

该提交出现在 2026年10月20日。


十二、按时间梳理 nginx 1.31.8 的提交内容

为了更清楚地查看本次版本演进过程,下面按提交日期整理相关变更。

2026年10月15日

当天的提交包括:

  • Version bump
  • HTTP/3:避免空编码器字段值导致未定义行为
  • Win32:移除 iocp 事件模块
  • Win32:移除未使用的 Winsock 扩展函数指针
  • 控制接口:记录已接受套接字设置过程中的错误
  • Dav:destination 映射错误时恢复请求 URI
  • SSL:使用内核 TLS 时忽略 shutdown 后的 EIO
  • SSL:处理 i2d_SSL_SESSION() 的负值情况
  • 控制接口:使用更具可移植性的 ioctl(FIOASYNC)
  • 核心:修正 ioctl(FIOASYNC) 参数类型
  • 修复 32 位平台上大整数的 Priority 解析问题

2026年10月17日

当天的提交集中于 JSON:

  • 修改 ngx_json_unescape_string(),将反转义结果写入新的缓冲区
  • 将已转义字符串报告为独立的解析器事件

2026年10月20日

当天的提交包括:

  • 修正拼写错误
  • 增加生成 Windows zip 的工作流
  • 在 buildbot.yml 中请求 id token,并将 secrets 传递给被调用方
  • 修复 GNU sed 环境下的 zip 目标
  • HTTP/3:避免 Huffman 编码中的非对齐存储

2026年10月21日

当天的提交集中于 working_directory:

  • working_directory 相对于 prefix 的处理
  • working_directory 校验

此外,还包含最终版本发布提交:

  • nginx-1.31.8-RELEASE

发布页面显示,该最终发布提交在页面生成时为约 18 小时前完成。


十三、nginx 1.31.8 更新内容总览

综合本次发布信息,nginx 1.31.8 的更新可以归纳为以下几个方向:

  • HTTP/3 编码边界处理与内存对齐处理
  • Win32 平台模块和未使用函数指针清理
  • 控制接口的错误记录与 ioctl 调用可移植性
  • Dav destination 映射错误时的请求 URI 恢复
  • SSL 中内核 TLS 关闭后 EIO 的处理,以及 SSL 会话编码负值处理
  • 32 位平台大整数 Priority 解析修复
  • JSON 解析器 API 调整、反转义缓冲区调整与转义字符串事件调整
  • working_directory 相对 prefix 的处理与校验
  • Windows zip 生成、GNU sed 下 zip 目标修复、构建工作流令牌与机密传递调整
  • 拼写修正
  • nginx-1.31.8 正式发布

十四、结语

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

nginx 1.31.8 作为主线版本,覆盖了 HTTP/3、SSL、Win32、控制接口、Dav、JSON、核心工作目录和构建发布流程等多个方向。

其中,HTTP/3 包含空编码器字段值未定义行为修复,以及 Huffman 编码非对齐存储修复;SSL 包含内核 TLS 关闭后 EIO 处理和 i2d_SSL_SESSION() 负值处理;JSON 则围绕解析器 API、字符串反转义和解析事件进行了调整。

同时,Win32 平台移除了 iocp 事件模块及未使用的 Winsock 扩展函数指针,控制接口补充了已接受套接字设置错误记录,并对 ioctl(FIOASYNC) 的可移植性和参数类型进行了调整。构建侧则增加 Windows zip 生成工作流,修复 GNU sed 下的 zip 目标,并更新 buildbot.yml 中的 id token 与 secrets 传递方式。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询