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

Node.js应用(PM2+Nginx部署)可通过IP访问但域名无法访问求助

解决域名无法访问Node.js应用的问题

我之前也碰到过一模一样的情况——用服务器IP能正常访问,域名却打不开,ping域名还能得到正确的IP,大概率是这几个环节出了问题,咱们一步步排查:

  • 先检查Nginx的完整配置,别漏了关键的server块
    你只贴了location部分的配置,可能server块没设置对。完整的server配置得明确绑定你的域名和监听80端口,参考下面的写法:

    server {
        listen 80;
        server_name your-domain.com; # 这里一定要换成你的实际域名
    
        location / { 
            proxy_pass "http://127.0.0.1:8000"; 
            proxy_http_version 1.1; 
            proxy_set_header Upgrade $http_upgrade; 
            proxy_set_header Connection 'upgrade'; 
            proxy_set_header Host $host; 
            proxy_cache_bypass $http_upgrade; 
        }
    }
    

    改完配置后记得重启Nginx生效:sudo systemctl restart nginx

  • 确认域名DNS解析是否完全同步
    Ping能拿到正确IP不代表所有地区的DNS都更新了,尤其是刚修改的解析记录。可以用nslookup your-domain.com或者dig your-domain.com多查几次,看看是不是所有返回的IP都是你的服务器IP。另外,浏览器可能缓存了旧的DNS记录,试试用无痕模式访问,或者清除浏览器缓存后再试。

  • 检查服务器的防火墙/安全组规则
    虽然IP能访问,但有些云服务商的安全组默认可能没开放80端口的入站权限(或者你之前只给了IP的访问规则?)。去你的云控制台看看安全组配置,确保80端口(HTTP)允许所有IP地址访问。

  • 查看Nginx错误日志找线索
    直接看Nginx的错误日志能快速定位问题,日志一般在/var/log/nginx/error.log。用命令实时查看:sudo tail -f /var/log/nginx/error.log,然后用域名访问网站,看看有没有报错信息——比如域名不匹配、权限不足这类问题都会在这里体现。

  • 确认Node应用确实在正常监听8000端口
    用netstat -tulpn | grep 8000或者ss -tulpn | grep 8000检查8000端口是不是被你的Node进程占用,确保PM2管理的应用没有挂掉,状态正常。

内容的提问来源于stack exchange,提问作者Abdullah Al Mohammad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:28:21