You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx反向代理Istio网关NodePort返回426错误问题排查咨询

问题根因分析

  • HTTP 426 Upgrade Required 错误的核心含义是服务器拒绝处理当前HTTP协议版本的请求,要求客户端升级协议版本后重试。
  • 第一个直接原因:Nginx 反向代理默认向后端服务发起请求时使用的是HTTP/1.0协议,而Istio网关底层的Envoy代理默认仅支持HTTP/1.1及以上版本的请求,因此直接返回426错误。你之前直接用curl访问Istio网关时,curl默认使用HTTP/1.1协议,符合要求因此能正常得到响应。
  • 第二个可能的附加原因:Istio 网关一般会配置Host头匹配规则,你直接curl时携带的Host头为52.66.195.124:30408,符合Istio的Gateway/VirtualService配置的匹配规则;而Nginx默认反向代理时会将Host头替换为用户访问的域名dashboard.example.com,如果该域名没有在Istio网关的允许Host列表中,也会触发访问异常。

修复方案

修改Nginx的反向代理配置,指定请求协议版本并透传正确的Host头即可,修改后的配置参考如下:

server {
        server_name dashboard.example.com;
        # 原有HTTPS证书配置保留即可,此处省略
        # ssl_certificate /path/to/ssl/fullchain.pem;
        # ssl_certificate_key /path/to/ssl/privkey.pem;

        location / {
               proxy_pass       http://52.66.195.124:30408;
               # 指定向后端发送请求使用HTTP/1.1版本
               proxy_http_version 1.1;
               # 透传Host头,也可手动设置为Istio网关匹配的Host值
               proxy_set_header Host $host:$server_port;
               # 可选:透传真实客户端相关信息
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header X-Forwarded-Proto $scheme;
        }
}

修改完成后执行nginx -s reload重载配置即可正常访问。

内容的提问来源于stack exchange,提问作者Rahul Radhakrishnan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 04:39:02