我有一个 nginx 网络服务器,上面有两个站点,它们监听两个域的 80 端口dom.net
:dom.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”在评论中提到的那样