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

GoDaddy VPS(AlmaLinux8+WHM)下Node.js应用域名访问显示默认页求助

Node.js应用Nginx反向代理失效问题排查与解决

问题场景

在搭载AlmaLinux 8和WHM的GoDaddy VPS上部署Node.js应用,已完成以下操作:

  • 克隆代码仓库并通过pm2启动应用,http://myip:3000/可正常访问;
  • 安装Nginx,编辑配置文件/etc/nginx/sites-available/defaultes,配置内容如下:
server {
    listen 80;
    server_name mydomain.com;
    location / {
        proxy_pass http://127.0.0.1:3000;
        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;
    }
}
  • 创建软链接:sudo ln -s /etc/nginx/sites-available/defaultes /etc/nginx/sites-enabled/;
  • Nginx服务处于运行状态。

但访问mydomain.com时显示Nginx默认index.html页面,仅http://mydomain:3000/可正常访问。

可能原因及解决方法

1. Nginx默认配置未禁用,优先匹配请求

Nginx默认会加载/etc/nginx/sites-enabled/default(或主配置内置的server块),其server_name通常为_,会匹配所有未被其他server块明确匹配的请求。若该默认配置仍启用,会优先于自定义配置生效。

解决步骤:

  • 查看sites-enabled目录下的启用配置:
    ls -l /etc/nginx/sites-enabled/
    
  • 若存在default软链接,将其移除:
    sudo unlink /etc/nginx/sites-enabled/default
    
  • 重新加载Nginx配置:
    sudo systemctl reload nginx
    

2. Nginx配置未重新加载

修改配置文件后,必须重新加载Nginx才能让新配置生效,仅保持服务运行不会自动更新配置。

解决步骤:

  • 先验证配置文件语法是否正确:
    sudo nginx -t
    
  • 若语法无错误,重新加载配置:
    sudo systemctl reload nginx
    

3. 自定义配置的server_name不匹配访问域名

如果实际访问的是www.mydomain.com,但配置中仅指定了mydomain.com,Nginx会匹配默认配置而非自定义配置。

解决步骤:

  • 修改配置文件/etc/nginx/sites-available/defaultes,将server_name改为包含所有需要匹配的域名:
    server_name mydomain.com www.mydomain.com;
    
  • 验证配置并重新加载Nginx:
    sudo nginx -t && sudo systemctl reload nginx
    

4. 软链接创建错误或配置文件未被加载

检查软链接是否正确指向目标配置文件,以及Nginx主配置是否包含sites-enabled目录的加载指令。

解决步骤:

  • 检查软链接状态:
    ls -l /etc/nginx/sites-enabled/defaultes
    
    确保输出显示正确指向/etc/nginx/sites-available/defaultes;
  • 查看Nginx主配置文件(通常是/etc/nginx/nginx.conf),确认存在以下指令:
    include /etc/nginx/sites-enabled/*;
    
    若不存在,添加该指令后重新加载Nginx。

5. 80端口被WHM自带的Apache占用

WHM默认会安装Apache并占用80端口,即使Nginx显示运行,实际可能未成功监听80端口。

解决步骤:

  • 检查80端口的监听进程:
    sudo ss -tulpn | grep :80
    
  • 若显示Apache进程,需调整端口配置:
    1. 通过WHM面板修改Apache监听端口(如改为8080);
    2. 重启Apache服务;
    3. 确认Nginx成功监听80端口后,重新加载Nginx配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 22:15:20