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

Nginx反向代理配置upstream server使用域名(如www.test.com)无法生效求助

反向代理使用域名作为upstream server的解决方法(以Nginx为例)

配置不生效的核心原因是大部分开源反向代理服务默认只会在启动/重载配置时解析一次域名,解析结果缓存过期或者上游IP变动后就会请求失败,你可以按照以下步骤调整配置:

前置检查

  • 登录反向代理所在服务器,执行nslookup www.test.com确认服务器本身可以正常解析该域名,无DNS污染或者解析故障
  • 执行telnet www.test.com 443确认网络连通性正常,无防火墙、安全组或者上游IP白名单拦截

配置方案

方案1:无需upstream块(推荐开源版Nginx使用)

直接在proxy_pass中填写域名,同时显式配置DNS解析器即可实现动态解析:

server {
    listen 80;
    server_name 你的代理服务访问域名;

    # 可替换为服务器本地DNS或者公共DNS,valid指定解析结果缓存时长,单位秒
    resolver 114.114.114.114 8.8.8.8 valid=300s;
    resolver_timeout 5s;

    location / {
        proxy_pass https://www.test.com;
        # HTTPS上游必须开启,用于SNI证书校验
        proxy_ssl_server_name on;
        # 常规反向代理头配置
        proxy_set_header Host www.test.com;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

方案2:使用upstream块

如果必须通过upstream块管理上游,开源版Nginx可以通过变量方式实现动态解析:

http {
    resolver 114.114.114.114 8.8.8.8 valid=300s;
    resolver_timeout 5s;

    upstream test_backend {
        server $test_upstream:443;
    }

    server {
        listen 80;
        server_name 你的代理服务访问域名;

        set $test_upstream www.test.com;

        location / {
            proxy_pass https://test_backend;
            proxy_ssl_server_name on;
            proxy_set_header Host $test_upstream;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

修改配置后执行nginx -t校验配置无问题,再执行nginx -s reload重载配置即可生效。

配置示意图

配置示意图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:15:02