
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.8nginx 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 模块修复目标映射错误时恢复请求 URIDav 模块在本次版本中包含一项明确修复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 bumpHTTP/3避免空编码器字段值导致未定义行为Win32移除 iocp 事件模块Win32移除未使用的 Winsock 扩展函数指针控制接口记录已接受套接字设置过程中的错误Davdestination 映射错误时恢复请求 URISSL使用内核 TLS 时忽略 shutdown 后的 EIOSSL处理 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_directoryworking_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/nginxnginx 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 传递方式。