6

nginx中server_name与host匹配优先级

 2 years ago
source link: https://chegva.com/4446.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

nginx中server_name与host匹配优先级

2021年6月4日 by anzhihe·0评论 · 126 人阅读 · 隐藏边栏 · 最后更新: 2021/6/6

在开始处理一个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 | ☆★★每天进步一点点,加油!★★☆

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK