综合 nginx 1.30.0 稳定版升级:proxy_http_version 默认变 1.1、upstream keepalive 默认开启,老后端要先写回退

2026-09-29 21:02:08

nginx 1.30.0 稳定版升级:proxy_http_version 默认变 1.1、upstream keepalive 默认开启,老后端要先写回退

项目信息:

  • 变更日志:
  • ngx_http_proxy_module 文档:

nginx 1.30.0 稳定版(2026-04-14)整合了 1.29.0~1.29.8 主线版本的新特性、修复与兼容性优化。对已经在跑 1.28/1.29 的运维来说,第一个要确认的不是新功能,而是默认代理行为的变更。

1. 默认代理行为变更(最容易踩)

  • ngx_http_proxy_module 默认启用长连接支持;proxy_http_version 的默认值由 1.0 正式变更为 1.1。
  • 默认不再发送 Connection 代理请求头。
  • upstream 配置块中的 keepalive 指令默认开启(并新增 local 参数)。

影响:过去 nginx 到上游默认是 HTTP/1.0 短连接,很多后端是依赖这个行为写出来的——每个请求单独建连、不复用、连接模型和超时都按短连接估算。升级后 nginx 会对上游复用长连接,并发送 HTTP/1.1。

如果上游是老旧应用服务器,或者本身不支持 keepalive,需要显式回退:

location / {
proxy_pass http://backend;
proxy_http_version 1.0;
proxy_set_header Connection "";
}

升级前先 nginx -t,再走灰度,观察上游连接数与超时。

2. 新特性

  • listen 指令新增 multipath 参数,支持 Multipath TCP(MPTCP):单条 TCP 连接可聚合多条网络路径(如 Wi-Fi+5G),提升吞吐并支持无缝切换。
  • HTTP Early Hints(103 状态码):服务器在最终响应前提示客户端预加载 CSS/JS 等资源,缩短首屏;HTTP/3 下对 103 响应头做索引编码优化。修复了 gRPC 与 Early Hints 相关的上游请求重初始化问题。
  • HTTP/2 到后端上游代理:打破过去「客户端可 HTTP/2、后端只能 HTTP/1.1」的限制。
  • Encrypted ClientHello(ECH,集成 OpenSSL 的 ECH),隐藏 TLS 握手中的 SNI;支持 TLS 证书压缩;通过 OSSL_STORE 加载密钥;新增 ssl_sigalg、ssl_client_sigalg 变量。
  • 上游粘性会话(sticky sessions):同一客户端的请求稳定分配到同一后端实例,适合有状态应用(登录会话、购物车、WebSocket)。
  • max_headers(1.29.8 引入):HTTP 核心模块配置指令,限制单次请求允许携带的请求头行数上限,默认 1000,超出返回 HTTP 431;在 http 与 server 块可配置,HTTP/1.1、HTTP/2、HTTP/3 都生效。
http {
max_headers 500;

server {
listen 80;
max_headers 800;
}
}

3. 修复与兼容

  • 适配 OpenSSL 4.0:X509_get_subject_name 等返回值加 const 限定;ASN1 字符串访问接口变化。
  • 移除 CLOCK_MONOTONIC_FAST 非标准分支,统一用 CLOCK_MONOTONIC。
  • 修复多个 103 Early Hints 响应处理、Content-Type 字符集解析整数下溢、auth_request 子请求中 $request_port 变量丢失等;修复 CVE-2026-27654、CVE-2026-27784 等漏洞。
复制全文 生成海报 nginx 运维 反向代理 upstream HTTP 1.1 配置

推荐文章

程序员茄子在线接单