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

HostGator VPS(cPanel+PM2)部署Node.js应用后API无法访问求助

排查步骤

1. 先验证Node.js应用本身在VPS上的可用性

在VPS终端执行:

curl http://localhost:[你的Node应用端口]/[API路径]

比如应用端口为3000、API路径为/api/test,就执行curl http://localhost:3000/api/test。

  • 若命令返回正常结果,说明应用本身无问题,问题出在Apache反向代理或cPanel配置;
  • 若命令也返回404,说明PM2启动的应用存在异常:
    • 执行pm2 list确认应用处于online状态;
    • 检查应用入口文件的监听地址是否为127.0.0.1或localhost;
    • 排查是否因NODE_ENV=production环境变量导致路由逻辑变化。

2. 检查cPanel生成的反向代理规则(.htaccess)

进入主域名根目录(通常为public_html),查看.htaccess文件,确认包含类似以下的反向代理规则:

RewriteEngine On
RewriteRule ^nodejsapp/(.*)$ http://localhost:[你的端口]/$1 [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
  • 确保RewriteRule中的端口与Node应用实际监听端口一致;
  • 规则必须包含(.*)和$1,才能将/nodejsapp/api这类子路径转发到Node应用的/api路径;
  • 若规则仅为^nodejsapp$,则只能匹配/nodejsapp根路径,子路径会返回404。

3. 确认Apache必需模块已启用

在VPS终端执行:

apachectl -M | grep proxy
apachectl -M | grep rewrite

需看到proxy_module、proxy_http_module和rewrite_module已启用。若未启用,可在WHM的「Apache Configuration」>「Module Installers」中开启,或手动修改httpd.conf添加模块加载指令。

4. 核对cPanel Application Manager的配置细节

  • 确认「Application Root」指向包含package.json的Node项目根目录;
  • 确认「Application URL」设置为/nodejsapp,与访问路径一致;
  • 确认「Startup Command」为正确的入口启动命令,比如node server.js或npm start(需保证package.json的start脚本正确);
  • 检查「Environment Variables」是否存在影响路由的冲突配置。

5. 检查端口访问权限

VPS防火墙可能限制Apache访问Node应用端口,执行:

iptables -L -n | grep [你的Node端口]

若无允许本地访问的规则,可临时添加:

iptables -A INPUT -p tcp -s 127.0.0.1 --dport [你的端口] -j ACCEPT

6. 重启服务并清理缓存

  • 重启Apache:systemctl restart httpd
  • 重启PM2应用:pm2 restart [应用名称]
  • 使用浏览器无痕模式访问测试,避免缓存影响。

内容的提问来源于stack exchange,提问作者David Alvidrez Pacheco

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:43:18