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

部分VPN用户登录时调用NodeJS后端报ERR_CONNECTION_TIMED_OUT如何解决

问题排查与修复方案

核心问题定位

你当前的Nginx配置仅配置了前端3001端口的反向代理,没有对后端3000端口的接口请求做反向代理规则。如果你的前端代码是直接请求xxx.fr:3000/xxx的接口地址,部分VPN会默认屏蔽80、443以外的非标准端口,就会出现前端静态资源(走443端口)加载正常,但调用后端接口(走3000端口)超时的问题。

修复步骤

  • 第一步:修改Nginx配置,添加后端接口反向代理规则
    在Nginx的443端口对应的server块中添加如下location配置,统一将/api前缀的请求转发到后端3000端口:
location /api {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_redirect off;
    proxy_set_header X-Scheme $scheme;
    proxy_pass http://127.0.0.1:3000;
}

修改完成后重载Nginx配置,再把前端代码里的所有接口请求地址,从直接调用3000端口的格式改为/api/xxx的相对路径,让所有请求统一走443端口,避免非标准端口被VPN拦截。

  • 第二步:修复CORS配置冲突
    你当前Node.js的CORS配置存在逻辑冲突:Access-Control-Allow-Origin设置为*的同时开启了Access-Control-Allow-Credentials: true,浏览器会直接拦截这类跨域请求,按你的需求二选一修改即可:
  1. 如果不需要携带Cookie等身份凭证,直接删除res.header("Access-Control-Allow-Credentials", true);这行配置
  2. 如果需要携带凭证,把Access-Control-Allow-Origin的值改为你的前端域名https://xxx.fr,不要使用通配符*
  • 第三步:辅助排查验证
    如果修改后仍有问题,按以下步骤定位即可:
  1. 让出现问题的用户打开浏览器控制台,查看Network面板中接口的请求地址、请求头是否符合预期
  2. 查看Nginx的access.log和error.log,确认异常请求是否正常到达服务器
  3. 检查服务器防火墙、安全组规则,是否存在针对特定IP段的访问限制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:36:03