即使 server_name 指令不匹配,nginx 是否默认使用第一个服务器上下文?

即使 server_name 指令不匹配,nginx 是否默认使用第一个服务器上下文?

我有一个域名example.com

我想要有 2 个子域名:a.example.com和 分别b.example.com指向目录/var/www/a和。/var/www/b

因此我使用这个 nginx 配置:

server {
  server_name a.example.com;
  root /var/www/a;
  try_files $uri /index.html;
}

server {
  server_name b.example.com;
  root /var/www/b;
  try_files $uri /index.html;
}

并且它按预期工作。

当我打开c.example.com它呈现/var/www/a/index.html

请注意,我没有为指定任何规则c.example.com

那么为什么它表现得好像匹配一样a.example.com

当没有其他匹配项时,nginx 是否会将第一条规则视为默认规则?——即使server_name该规则中的指令实际上与 URL 不匹配?

相关内容