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

HAProxy与Nginx配置问题:访问根域名跳转内网IP无法远程访问

解决方案

1. 修正域名拼写偏差

首先确认域名一致性:你的HAProxy ACL规则匹配的域名为demoafc.testtest.com,但你描述的异常访问域名为demoafc.testest.com,先修正域名拼写错误,避免因规则不匹配导致流量转发异常。

2. 调整HAProxy配置,传递原始请求信息

在backend demoafc配置段添加请求头传递规则,让后端Nginx获取到用户真实的访问域名、协议等信息:

backend demoafc
acl demoafc_url hdr_dom(host) -i demoafc.testtest.com
use_backend demoafc if demoafc_url
backend demoafc
server demoafc 192.168.24.121:80
# 新增以下3行配置
http-request set-header Host %[hdr(host)]
http-request set-header X-Forwarded-Proto https
http-request set-header X-Forwarded-For %[src]

修改完成后重载HAProxy配置生效。

3. 调整Nginx配置,避免内网IP跳转

你当前的跳转根因为Nginx返回的重定向地址用了内网IP,可二选一调整配置:

  • 方案A:将重定向地址替换为公网域名
    若Nginx原有根路径跳转规则为类似return 302 http://192.168.24.121:8080/,修改为:
    return 302 https://$host/;
    
  • 方案B:直接反向代理本地8080服务,无需跳转
    在Nginx server配置段新增根路径代理规则,用户无感知访问后端服务:
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    

配置修改完成后执行nginx -t校验配置合法性,校验通过后执行nginx -s reload重载配置。

4. 效果验证

清空浏览器缓存后重新访问目标域名,确认不会再跳转到内网IP地址,公网环境可正常访问。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 22:27:04