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

Ubuntu环境下Nginx配置后访问新域名显示其他站点页面问题咨询

问题原因分析
  • Nginx默认请求匹配逻辑:当请求的Host头无法匹配任何配置的server_name时,Nginx会选择加载顺序中第一个出现的server块作为默认服务返回内容。你当前的配置中第一个server块就是site1.com的主站配置,因此未匹配到的域名默认都会返回site1的维护页。
  • 你创建的site2独立配置未生效通常为以下几个原因:配置文件未放到Nginx的生效目录、配置存在语法错误、修改配置后未重载Nginx服务、server_name字段填写错误和实际域名不匹配。
解决步骤
  1. 首先编写正确的site2配置文件,示例如下:
server {
        root /var/www/html/site2.com; # 替换为你site2静态文件的实际存放路径
        index index.html index.htm;
        server_name site2.com www.site2.com; # 填写你实际要绑定的域名,完全匹配
        location / {
                try_files $uri $uri/ =404;
        }
}
  1. 确认配置文件被Nginx加载:Ubuntu系统下Nginx默认将所有配置存放在/etc/nginx/sites-available/目录,需要建立软链接到/etc/nginx/sites-enabled/目录才会生效,执行命令:
    ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/
  2. 检查配置语法是否合法,执行命令:
    nginx -t
    返回test is successful代表语法无错误,否则根据返回的报错提示修正配置。
  3. 重载Nginx服务使配置生效:
    systemctl reload nginx
  4. 排除缓存干扰:重载后如果浏览器访问仍返回旧内容,可先通过curl命令测试服务端返回是否正确,避免浏览器缓存影响:
    curl -H "Host: site2.com" 127.0.0.1
    如果curl返回的是site2的正确内容,清除浏览器缓存或者换无痕模式访问即可。
可选优化:配置默认兜底服务

如果要避免其他未绑定到该VPS的域名默认返回site1的内容,可以显式配置默认server块,添加以下配置即可:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    return 404; # 也可以配置为返回自定义的默认提示页面
}

添加后同样需要执行nginx -t检查语法,再重载Nginx生效

内容的提问来源于stack exchange,提问作者s.khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:36:02