使用提供多个域名/网站/应用的IP地址访问Nginx服务器上的网站,并且没有默认服务器/ conf,将打开该IP上的第一个字母域。
这是TRUE还是FALSE?
如果为TRUE,这可能会以某种方式被覆盖吗?
答案 0 :(得分:2)
假。因为取决于你的配置。
在按名称搜索虚拟服务器期间,如果名称匹配 不止一个指定的变体,(例如两个通配符名称) 和正则表达式匹配),第一个匹配的变体将是 按以下优先顺序选择:
确切名称
以星号开头的最长通配符名称,例如 “* .example.com的”
以星号结尾的最长通配符名称,例如“邮件。*”
- 醇>
第一个匹配的正则表达式(按照出现的顺序排列) 配置文件)
如果未找到匹配项,则nginx会将请求路由到此端口的默认服务器。 默认服务器是配置文件中的第一个 - 这是nginx的标准默认行为。如果所有使用include
指令的服务器都包含掩码 - 包含的文件按字母顺序排序(按文件名,而不是server_name中的域名)。
默认服务器也可以使用default_server
指令中的listen
参数明确设置哪个服务器应该是默认服务器。
此外,如果您需要通过IP和未知域名访问服务器的不同行为,则可以添加名为IP的server_name
。
UPD:在通过IP访问nginx的情况下 - hostname将等于IP。因此,nginx将开始查找与IP主机名匹配的server_name。上述所有内容仍然有效。