
Nginx 1.31.4 主线版本正式发布。本次更新重点集中在 3 个方面:PROXY protocol v2 链路补全,HTTP 和 gRPC 上游请求规范化,以及 HTTP/2、HTTP/3 和 gRPC 等协议栈的稳定性修复。
Nginx 1.31.4 主要更新
Stream 和邮件代理:支持 PROXY protocol v2
stream和mail模块的proxy_protocol指令新增了v2参数,向后端发送二进制格式的 PROXY protocol v2 报文。- 原来的
proxy_protocol on;仍然会默认发送「文本格式」的 v1 报文;需要把真实客户端地址、端口等连接信息传给支持 v2 的后端时,只需显式配proxy_protocol v2;即可。
例如,Stream 场景可以参考下面的配置:
stream {
server {
listen 3306;
proxy_pass 10.0.0.20:3306;
proxy_protocol v2;
}
}
这个能力适合前置负载均衡、四层代理和邮件网关链路。启用前要先确认「后端服务」或「中间设备」能够解析 PROXY protocol v2,避免二进制协议头被当成业务数据处理。
HTTP 与 gRPC 上游请求:统一传递目标主机信息
- Nginx 现在会根据上游连接协议,固定传递目标主机字段:在向 HTTP/2 或 gRPC 后端发送请求时,会使用
:authority伪首部;向 HTTP/1.1 后端发送请求时,使用Host首部。
本次调整把不同上游协议下的主机名传递规则进行了统一。如果你的部署使用了 HTTP/2 或 gRPC 上游,又依赖虚拟主机路由、SNI 关联逻辑,或者做了自定义首部改写,升级后需要重点核对后端访问日志和路由结果是否正常。
gRPC 不再接受长度不完整的响应
- 如果 gRPC 响应声明了非零
Content-Length,但实际响应内容不完整时,Nginx 现在会直接判定为格式错误,不再按正常响应处理。
修复 select 事件模型下的工作进程崩溃
- 修复了使用
select事件模型时,工作进程可能出现「段错误」的问题。虽然大多数 Linux 生产环境默认使用epoll,但在兼容性平台、受限运行环境,或者显式配置了select的场景中,这项修复直接关系到进程稳定性。
解决第三方模块脚本代码的二进制兼容问题
- 修复了 1.31.3 版本引入的脚本代码二进制兼容性问题。
依赖相关脚本代码机制的第三方动态模块建议优先验证升级效果,尤其是直接从 1.31.3 升上来的环境。
其他修复
Nginx 1.31.4 还修复了 HTTP/2、HTTP/3、图像过滤、gRPC 和 Perl 模块的多个问题,GitHub 发布汇总里列出了完整改动:包括 QUIC 流控、HTTP/2 WINDOW_UPDATE校验、上游Host处理、XSLT 解析错误处理、图像过滤器边界读取、目录索引内存管理等。
| 模块或场景 | 本次处理方向 |
|---|---|
| HTTP/2 与 HTTP/3 | 修复协议处理与流量控制相关问题。 |
| gRPC | 收紧不完整响应处理,并修正上游请求与协议细节。 |
ngx_http_image_filter_module | 修复图像解析时的边界读取问题。 |
ngx_http_xslt_filter_module | 改进 XML 推送解析器错误处理。 |
ngx_http_perl_module | 修复模块内部问题。 |
autoindex | 调整目录项处理的内存使用方式。 |









最新评论
鼠标指针也没了qwq
我删除的时候文件损坏了,还得重新安装再删掉。。。。。
禁用容易,稳定不禁用难。
有吗?我现在主要用 Brave,Edge 基本不用了,没发觉……