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

在单台Nginx服务器部署多站点(虚拟主机)时遇默认页面问题

Nginx多站点部署后访问IP显示默认页面的解决方法

问题核心

访问服务器IP时,Nginx会优先匹配默认Server块(带有default_server标记或未指定server_name的块),而非你配置的example1.com/example2.com站点块,因此显示默认页面。

具体解决步骤

  1. 定位默认Server块
    打开Nginx配置文件(主配置/etc/nginx/nginx.conf或默认站点配置/etc/nginx/sites-available/default),找到类似以下的默认块:

    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /var/www/html;
        index index.html index.htm;
        server_name _;
        ...
    }
    

    其中default_server标记决定了它是无匹配域名时的默认处理块。

  2. 选择适合的解决方式

    • 方式一:让默认块指向自定义站点
      修改默认块的root路径为你的目标站点目录,比如:

      root /var/www/html/example1.com;
      

      或直接设置跳转:

      return 301 https://example1.com;
      
    • 方式二:修改默认块返回自定义提示
      若希望访问IP时返回404或自定义页面,可修改默认块:

      server {
          listen 80 default_server;
          listen [::]:80 default_server;
          return 404;
          # 或指定自定义提示页面目录
          # root /var/www/html/empty;
          # index 404.html;
      }
      
    • 方式三:将自定义站点设为默认
      在你指定的自定义Server块中添加default_server标记,让它成为无匹配时的默认处理:

      server {
          listen 80 default_server;
          listen [::]:80 default_server;
          server_name example1.com www.example1.com;
          root /var/www/html/example1.com;
          index index.html;
      }
      
  3. 验证并重启Nginx

    • 执行配置检查:$ sudo nginx -t
    • 配置无误后重启服务:$ sudo systemctl restart nginx

补充注意

  • 确保自定义站点目录的权限正确,给Nginx进程读取权限:$ sudo chown -R www-data:www-data /var/www/html/example1.com
  • 直接访问example1.com或example2.com域名时,应正常显示自定义内容,仅访问IP时触发默认规则

内容的提问来源于stack exchange,提问作者Elsie Irakoze Karangwa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 23:02:20