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

Nginx配置upstream提示invalid host in upstream错误排查

报错原因

Nginx 配置中upstream块内的server指令,仅接受「主机名/IP + 可选端口」格式的后端地址,不允许带http://、https://这类协议前缀。
协议的指定是在调用upstream的转发指令(比如proxy_pass)中完成的,你在upstream的server项前加了http://,Nginx会把协议前缀当成主机名的一部分解析,自然判定为无效主机地址——无论后面跟的是域名还是IP,只要带协议前缀都会触发这个报错。
另外你执行nginx -t时看到的error.log权限报错,是因为没有用root权限执行命令,加sudo即可正常检测,和本次upstream配置错误无关。

修复方法

把upstream块里所有server项前的http://前缀删掉即可,根据后端服务的实际协议调整proxy_pass的配置:

  • 如果后端是HTTP服务,upstream里直接写域名/IP,默认走80端口,proxy_pass用http://调用upstream
  • 如果后端是HTTPS服务,upstream里的地址后加:443指定端口,proxy_pass改用https://调用upstream,建议补充SNI相关配置避免证书校验错误

修正后的完整配置示例:

events {}

http {

  upstream search {
    # 移除http://前缀,HTTPS服务指定443端口
    server www.google.com:443 weight=2;
    server www.duckduckgo.com:443 weight=1;
  }

  server {
    listen 80;

    location /a {
      return 200 'hi';
      add_header Content-Type text/plain;
    }

    location /b {
      # 转发时指定HTTPS协议
      proxy_pass https://search;
      proxy_set_header Host $host;
      # 访问HTTPS站点时开启SNI,避免CDN场景下证书不匹配
      proxy_ssl_server_name on;
    }
  }
}

修改完成后执行sudo nginx -t检测配置,确认无报错后重载Nginx即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 02:01:33