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

Ubuntu新安装Nginx后默认Server Block异常优先加载求助

解决Nginx Server Block优先级问题:访问自定义域名加载默认页面

这种情况我在配置Nginx站点时碰到过好多次,大概率是Server Block的配置细节或者优先级设置出了问题,咱们一步步来排查解决:

1. 检查自定义站点的Server Block配置文件

首先确认你在/etc/nginx/sites-available/下的yoalfaaz.com配置文件是否正确,重点盯两个核心参数:

  • server_name:必须精确匹配你访问的域名(包括带www和不带的情况,根据你的需求设置)
  • root:指向你的网站内容所在的专属目录,而不是默认的/var/www/html

正确的配置示例应该是这样的:

server {
    listen 80;
    listen [::]:80;

    root /var/www/yoalfaaz.com/html;  # 替换成你的网站实际目录
    index index.html index.htm index.nginx-debian.html;

    server_name yoalfaaz.com www.yoalfaaz.com;  # 确保包含你实际访问的域名

    location / {
        try_files $uri $uri/ =404;
    }
}

2. 确认配置文件已链接到sites-enabled目录

Nginx只会读取/etc/nginx/sites-enabled/目录下的配置文件,所以需要把自定义站点的配置软链接到这里:

# 先删除可能存在的错误链接(如果有的话)
sudo rm -f /etc/nginx/sites-enabled/yoalfaaz.com
# 创建正确的软链接
sudo ln -s /etc/nginx/sites-available/yoalfaaz.com /etc/nginx/sites-enabled/

3. 验证Nginx配置语法并重启服务

配置修改后一定要验证语法是否正确,避免因为小错误导致Nginx加载失败:

sudo nginx -t

如果输出nginx: configuration file /etc/nginx/nginx.conf test is successful,就可以重启Nginx使配置生效:

sudo systemctl restart nginx

4. 检查默认Server Block的优先级

默认的default配置文件(在/etc/nginx/sites-available/下)如果没有设置server_name,或者设置为_,会成为默认服务器块——当请求的域名不匹配任何其他Server Block时,就会加载这个默认块的内容。

确保你访问的域名完全匹配yoalfaaz.com配置里的server_name,比如你访问www.yoalfaaz.com但配置里只写了yoalfaaz.com,就会触发默认块。

5. 测试域名解析(针对本地测试或DNS刚更新的情况)

如果是本地访问或者刚修改了DNS记录,可能存在缓存问题:

  • 可以修改本地/etc/hosts文件,手动绑定域名到服务器IP:
    你的服务器IP  yoalfaaz.com www.yoalfaaz.com
    
  • 用curl命令测试,看返回的内容是否对应你的网站:
    curl yoalfaaz.com
    

6. 检查网站目录的权限

确保Nginx进程(用户www-data)能读取你的网站目录和文件:

sudo chown -R www-data:www-data /var/www/yoalfaaz.com/html
sudo chmod -R 755 /var/www/yoalfaaz.com

一般来说,按照上面的步骤排查,就能解决域名指向默认页面的问题。先从server_name和软链接这两个最常见的原因入手,大概率能快速解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:52:38