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

Nginx虚拟主机本地可访问但公网无法访问问题求助

问题排查方案

核心根因分析

你当前遇到的404问题90%概率是server_name配置不匹配导致的:
你当前配置里server_name localhost的规则,仅会匹配请求头Host为localhost的请求,公网访问时你用的是服务器公网IP或者绑定的域名,此时请求的Host头为公网IP/域名,无法匹配到该server块,Nginx会自动转发到默认加载的其他server块,自然找不到/ib路径的规则,返回404。


排查步骤

  • 第一步:修正server_name配置
    将server_name localhost修改为你实际公网访问用的地址,示例:
    # 配置为你的公网IP和绑定的域名
    server_name 110.xx.xx.xx yourdomain.com;
    # 若要让所有Host的请求都匹配该server块,可直接用通配符
    server_name _;
    
  • 第二步:检查proxy_pass路径规则
    当前配置下location /ib + proxy_pass http://localhost:3000的组合,会将完整的/ib/xxx路径透传给上游3000端口的服务。如果你的上游服务没有/ib前缀的路由,需要在proxy_pass末尾加斜杠自动去掉前缀:
    proxy_pass http://localhost:3000/;
    
  • 第三步:确认端口放通规则
    检查云服务器安全组、系统内部防火墙(ufw/firewalld)的入站规则,确认80端口已经对公网开放。
  • 第四步:重载Nginx配置生效
    配置修改完成后执行以下命令验证语法并重载:
    # 验证配置语法正确性
    nginx -t
    # 重载配置
    nginx -s reload
    

验证方法

在服务器本地直接用公网IP执行curl请求,验证是否返回200:

curl -o /dev/null -s -w "%{http_code}\n" http://你的公网IP/ib

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:39:01