Nginx 中 Server 的匹配顺序
在开始处理一个http请求时,nginx会取出header头中的host,与nginx.conf中每个server的server_name进行匹配,以此决定到底由哪一个server块来处理这个请求。
server_name与host匹配优先级如下:
- 完全匹配
- 通配符在前的,如
*.test.com
- 在后的,如
www.test.*
- 正则匹配,如
~^\.www\.test\.com$
- 如果都不匹配
- 优先选择
listen配置项后有default或default_server的
- 找到匹配
listen端口的第一个server块