nginx中server的匹配顺序
在开始处理一个http请求时,nginx会取出header头中的host,与nginx.conf中每个server的server_name进行匹配,以此决定到底由哪一个server块来处理这个请求。
server_name与host匹配优先级如下:
1、最高优先级:完全匹配
接下来配置域名映射
vim /etv/hosts

访问测试:

结论:完全匹配的优先级高于通配符匹配
2、第二优先级:通配符在前
修改server配置,还是2个server,通配符在后的server放到前面,同样是为了消除配置顺序给测试带来的影响

访问测试

结论:通配符在前的优先级高于在后的
3、第三优先级:通配符在后
修改server配置,还是2个server,通配符在后的server放到前面,同样是为了消除配置顺序给测试带来的影响

访问测试

结论:通配符在后的优先级高于正则匹配的server
到此,第一部分的匹配规则已经验证完毕。接下来验证都不匹配的情况
4、listen配置项中default的影响
配置3个server

访问测试

结论:正则匹配虽然优先级较低,但是仍然高于default;在都匹配不到的情况下,default开始起作用。
5、验证default的作用域,default在匹配成功的情况下是否会影响优先级
2个server,给优先级低的server配置default属性

访问测试

结论:default只能作用于匹配不到的情况下,而且nginx.conf不可以配多个default,否则nginx重启时候会提示错误

6、验证没有匹配成功,且没有default的情况
2个server

访问测试

结论:在server_name都匹配失败的前提下,并且listen没有default属性,那么端口号和server的顺序将发挥作用,它会去找端口匹配的位置最靠前的server。
最终的结论就是开头的这段话:
nginx中server的匹配顺序的更多相关文章
- Nginx中的一些匹配顺序
Nginx中经常需要做各种配置,总结如下: 1.server_name配置 nginx中的server_name指令主要用于配置基于名称虚拟主机,同一个Nginx虚拟主机中,可以绑定多个server_ ...
- Nginx 中 location 的匹配顺序
nginx中location的匹配模式有以下几种: 精确匹配:以=开头,只有完全匹配才能生效,例子location = /uri 非正则匹配:以^~开头,^表示非.~表示正则,例子location ^ ...
- Nginx中的 location 匹配和 rewrite 重写跳转
Nginx中的location匹配和rewrite重写跳转 1.常用的Nginx正则表达式 2.location 3.rewrite 4.rewrite实例 1.常用的Nginx正则表达式: ^ :匹 ...
- nginx中server块的匹配顺序
客户端发出一个http请求时,nginx收到后会取出header头中的host,与nginx.conf中每个server的server_name进行匹配,以此决定到底由哪一个server块来处理这个请 ...
- nginx 的location的匹配顺序
匹配规则 匹配顺序 示例 [root@python vhast]# cat test.conf server { server_name haha.com; #listen 8080; rewrite ...
- nginx中的location匹配规则
概述: 1. location在nginx配置文件中的作用是根据用户请求的URI来执行不同的应用. 2.URI的定义:标识.定位任何资源的字符串 协议://域名/目录a/目录b/文件c http:// ...
- Nginx中虚拟主机配置
一.Nginx中虚拟主机配置 1.基于域名的虚拟主机配置 1.修改宿主机的hosts文件(系统盘/windows/system32/driver/etc/HOSTS) linux : vim /etc ...
- 前端开发掌握nginx常用功能之server&location匹配规则
nginx主要是公司运维同学必须掌握的知识,涉及到反向代理.负载均衡等服务器配置.前端开发尤其是纯前端开发来说对nginx接触的并不多,但是在一些情况下,nginx还是需要前端自己来搞:例如我们公司的 ...
- NGINX中的proxy_pass和rewrite
文章作者:luxianghao 文章来源:http://www.cnblogs.com/luxianghao/p/6807081.html 转载请注明,谢谢合作. 免责声明:文章内容仅代表个人观点,如 ...
随机推荐
- Elasticsearch Query DSL 整理总结(三)—— Match Phrase Query 和 Match Phrase Prefix Query
目录 引言 Match Phase Query slop 参数 analyzer 参数 zero terms query Match Phrase 前缀查询 max_expansions 小结 参考文 ...
- HDU3416(KB11-O spfa+最大流)
Marriage Match IV Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- Angular环境搭建
Angular4 随笔(一)----环境搭建 1.下载node.js 第一步:在浏览器中搜索node.js官网(https://nodejs.org/zh-cn/),根据自己系统下载相应版本,下载完成 ...
- hightcharts 如何修改legend图例的样式
正常情况下hightcharts 的legend图形是根据他本身默认的样式来显示,如下图 这几个图形的形状一般也是改不了的,只能根据图表的类型显示默认的.但是我们可以通过修改默认的样式来展示一些可以实 ...
- 设计模式(10)--Facade(外观模式)--结构型
作者QQ:1095737364 QQ群:123300273 欢迎加入! 1.模式定义: 外观模式提供了一个统一的接口,用来访问子系统中的一群接口.外观定义了一个高层接口,让子系统更容易使 ...
- Nginx部署入门
一.什么是Nginx? Nginx 是俄罗斯人编写的十分轻量级的 HTTP 服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个 IMAP/POP3 ...
- 解决webview调用 goBack() 返回上一页自动刷新闪白的情况
问题是:重写了onKeyDown()方法使其goBack(),但是遇到的问题是,每次进入webview再次返回原始页面的时候,中间会有一个闪白的出现. 试了好多网上的方法,发现都是扯淡. 后来意识到, ...
- 【jdk源码3】HashMap源码学习
可以毫不夸张的说,HashMap是容器类中用的最频繁的一个,而Java也对它进行优化,在jdk1.7及以前,当将相同Hash值的对象以key的身份放到HashMap中,HashMap的性能将由O(1) ...
- Visual Studio 2012 Update 1 离线升级包(相当于VS2012 SP1离线补丁包)
Visual Studio 2012 Update 1 发布也有一段时间了,吾乐吧尝试了好几次在线升级,但是网络不给力啊,结果都失败了.于是一直都想找到官方提供的VS2012 SP1完整离线升级包,不 ...
- python 多进程、多线程
1.多线程: 下面讲一个简单用法,这个模块比较简单,但是实际使用中会遇到很多坑 from multiprocessing import process def go(s): print "主 ...