为什么 nginx 在没有 default_server 指令的情况下响应 IP 地址?

为什么 nginx 在没有 default_server 指令的情况下响应 IP 地址?

我有一个 nginx 网络服务器,上面有两个站点,它们监听两个域的 80 端口dom.netdom.se

在 中,sites-enabled我为这些文件dom.net.site和 都创建了文件dom.se.site,除了 指令之外,它们完全相同server_name。它要么是 ,server_name dom.net *.dom.net;要么是server_name dom.se *.dom.se;。其余部分几乎相同,但 可以location帮助我调试,它看起来像这样(对于 .net 站点):

  location /check {
    return 200 'dom.net';
    add_header Content-Type text/plain;
  }

我不明白的是,为什么当我访问 http://my-server-ip/check 时,得到的响应与访问http://server.dom.net/check。我在任何站点文件中都没有default_server指令,但 nginx 仍然响应 ip 地址。

为什么会选择http://server.dom.net并不是http://server.dom.se

很困惑。

答案1

以下路径中有一个 nginx 的默认配置:/etc/nginx/nginx.conf 如果你阅读它,会发现有一个带有“http{}”语法的块,并且在该块中有一行内容

include /etc/nginx/sites-enabled/*

因此,nginx 将按顺序(字母顺序)加载该目录中的文件,正如“Gerald Schneider”在评论中提到的那样

相关内容