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 等漏洞。