高性能Web服务器Nginx的配置与部署研究(16)小议
2012-06-20 22:06
866 查看
转载于:/article/1359479.html
location匹配模式优先级
Author: 柳大·Poechant(钟超)
Email: zhongchao.ustc#gmail.com(#->@)
Blog: Blog.CSDN.net/Poechant
Date: June 20th, 2012
等于匹配符就是等号,特点可以概括为两点:
精确匹配
不支持正则表达式
空匹配符的特点是:
匹配以指定模式开始的 URI
不支持正则表达式
正则匹配符是可以使用正则表达式的匹配符。不过这里要强调的是,一般来说
而
但是对于一些对大小写不敏感的操作系统,这两者没有区别。另外一个就是
一般用于错误页面等,这个暂不讨论。
空匹配符,满足精确匹配时
空匹配符,满足以指定模式开始时的匹配时
这样说比较抽象,我们来看例子吧。
看下面的例子(用到我们此前一起完成的
如果我们的请求是
URI 匹配,这时根据我们的优先级顺序,第一个是精确匹配时的空匹配符,第二个是等于匹配符,所以第二个的优先级高,也就是应该输出:
同时也说明 Nginx 的 locatoin 不是按照配置文件中的书写顺序来匹配的。
下面这个例子中,两者开始都精确匹配了,连这个正则匹配都是精确匹配。
匹配哪一个?你测试一下,会得到:
与我们上面说的优先级顺序相吻合。
略
-
location匹配模式优先级
Author: 柳大·Poechant(钟超)
Email: zhongchao.ustc#gmail.com(#->@)
Blog: Blog.CSDN.net/Poechant
Date: June 20th, 2012
1 location 的匹配符
1.1 等于匹配符:=
等于匹配符就是等号,特点可以概括为两点:精确匹配
不支持正则表达式
1.2 空匹配符
空匹配符的特点是:匹配以指定模式开始的 URI
不支持正则表达式
1.3 正则匹配符:~
正则匹配符是可以使用正则表达式的匹配符。不过这里要强调的是,一般来说~是指:
区分大小写的正则匹配
而
~*表示:
不区分大小写的正则匹配
但是对于一些对大小写不敏感的操作系统,这两者没有区别。另外一个就是
^~,其表示以指定模式开始的正则匹配。
1.4 内部访问符:@
一般用于错误页面等,这个暂不讨论。
2 匹配符优先级
=
空匹配符,满足精确匹配时
^~
~或
~*
空匹配符,满足以指定模式开始时的匹配时
这样说比较抽象,我们来看例子吧。
2.1 等于匹配符与精确匹配时的空匹配符
看下面的例子(用到我们此前一起完成的Hello World模块):
location /poechant { hello_world no1; } location = /poechant { hello_world no2; }
如果我们的请求是
http://my.domian/poechant,则我们发现两个
location都与请求的
URI 匹配,这时根据我们的优先级顺序,第一个是精确匹配时的空匹配符,第二个是等于匹配符,所以第二个的优先级高,也就是应该输出:
hello_world, no2
同时也说明 Nginx 的 locatoin 不是按照配置文件中的书写顺序来匹配的。
2.2 精确匹配时的空匹配符与正则匹配的^~
下面这个例子中,两者开始都精确匹配了,连这个正则匹配都是精确匹配。location ^~ ^/poechant$ { hello_world no1; } location /poechant { hello_world no2; }
匹配哪一个?你测试一下,会得到:
hello_world, no2
与我们上面说的优先级顺序相吻合。
2.3 其他匹配优先级比较的实例
略-
相关文章推荐
- 高性能Web服务器Nginx的配置与部署研究(16)小议location匹配模式优先级
- 高性能Web服务器Nginx的配置与部署研究(16)小议location匹配模式优先级
- 高性能Web服务器Nginx的配置与部署研究(11)应用模块之Memcached模块的两大应用场景
- 高性能Web服务器Nginx的配置与部署研究(11)应用模块之Memcached模块的两大应用场景
- 高性能Web服务器Nginx的配置与部署研究之---Upstream负载均衡模块(转)
- 高性能Web服务器Nginx的配置与部署研究(11)应用模块之Memcached模块的两大应用场景
- 高性能Web服务器Nginx的配置与部署研究(12)应用模块之Memcached做文件缓存时压缩引起的问题
- 高性能Web服务器Nginx的配置与部署研究(3)Nginx的请求处理机制
- 高性能Web服务器Nginx的配置与部署研究(12)应用模块之Memcached做文件缓存时压缩引起的问题
- Nginx - 高性能Web服务器Nginx的配置与部署研究(1)Nginx简介及入门示例
- 高性能Web服务器Nginx的配置与部署研究(1)Nginx简介及入门示例
- 高性能Web服务器Nginx的配置与部署研究(12)应用模块之Memcached做文件缓存时压缩引起的问题
- 高性能Web服务器Nginx的配置与部署研究(13)应用模块之Memcached模块+Proxy_Cache双层缓存模式
- 高性能Web服务器Nginx的配置与部署研究(3)Nginx请求处理机制
- 高性能Web服务器Nginx的配置与部署研究(10)核心模块之HTTP模块Location相关指令
- 高性能Web服务器Nginx的配置与部署研究(15)Upstream负载均衡模块
- 高性能Web服务器Nginx的配置与部署研究(3)Nginx请求处理机制
- 高性能Web服务器Nginx的配置与部署研究(2)Nginx入门级配置与部署及“Hello World”
- 高性能Web服务器Nginx的配置与部署研究(13)应用模块之Memcached模块+Proxy_Cache双层缓存模式
- 高性能Web服务器Nginx的配置与部署研究(14)平滑升级你的Nginx