nginx中server_name与host匹配优先级

在开始处理一个http请求时,nginx会取出header头中的host,与nginx.conf中每个server的server_name进行匹配,以此决定到底由哪一个server块来处理这个请求。

server_name与host匹配优先级如下:

1、完全匹配,选择所有字符串完全匹配的server_name,如www.test.com

2、通配符在前面的server_name,如*.test.com

3、通配符在后面的server_name,如www.test.*

4、最后选择使用正则表达式才匹配的server_name,如~^\.test\.com$

如果都不匹配

1、优先选择listen配置项后有[default | default_server]的server块

2、找到匹配listen端口的第一个server块

如果server_name后跟着空字符串(如 server_name "";),那么表示匹配没有Host这个HTTP头部的请求

如果有配置多个server_name的主机文件,优先使用最先读取配置的server_name

验证参考:


参考:

anzhihe安志合个人博客,版权所有丨 如未注明,均为原创 丨转载请注明转自:https://chegva.com/4446.html | ☆★★每天进步一点点,加油!★★☆

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注