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

Nginx反向代理子域名配置失效问题排查求助

问题排查与修复方案

核心问题定位

api.test.com的配置存在路径匹配逻辑错误,同时需按顺序排查基础运行环节:

1. 验证Nginx配置语法

先执行配置测试命令,确认无语法错误:

sudo nginx -t

若提示test is successful则配置语法正常;若报错,根据提示修正(如括号不闭合、指令拼写错误)。

2. 修正api.test.com的代理路径

当前配置仅在访问api.test.com/app_api_location时才会代理到3001端口,但你需要的是整个域名映射到3001,因此修改location块:

server {
    listen 80;

    server_name api.test.com;

    # 若应用无静态资源需求,可注释root和index配置
    # root /var/www/html/api;
    # index index.html index.htm;

    location / {
        proxy_pass http://localhost:3001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

3. 确认Node应用正常运行

在服务器上直接测试Node应用的可访问性:

curl http://localhost:3000
curl http://localhost:3001

若返回应用正常响应(如JSON数据或页面内容),说明应用本身无问题;若提示Connection refused,检查Node应用是否启动、端口监听是否正确。

4. 检查DNS解析/本地Hosts配置

  • 公网服务器:确认test.com和api.test.com的DNS记录已指向服务器公网IP。
  • 本地测试:在你的本地机器(非服务器)hosts文件中添加以下内容(替换你的服务器IP为实际IP):
    你的服务器IP test.com
    你的服务器IP api.test.com
    

5. 检查防火墙端口开放

Ubuntu 22.04默认使用ufw防火墙,确认80端口已开放:

sudo ufw status

若80端口不在允许列表,执行:

sudo ufw allow 80/tcp

6. 重启Nginx使配置生效

修改配置后必须重启Nginx:

sudo systemctl restart nginx

7. 查看Nginx日志排查细节

若仍有问题,通过日志定位具体故障:

sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/nginx/access.log

错误日志会提示具体问题(如连接Node应用失败、权限不足等),访问日志可查看请求是否到达Nginx、匹配了哪个server块。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 02:55:15