高性能Web服务器Nginx的配置与部署研究(16)小议location匹配模式优先级
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的配置与部署研究(13)应用模块之Memcached模块+Proxy_Cache双层缓存模式
		通过<高性能Web服务器Nginx的配置与部署研究——(11)应用模块之Memcached模块的两大应用场景>一文,我们知道Nginx从Memcached读取数据的方式,如果命中,那么效率 ... 
- 高性能Web服务器Nginx的配置与部署研究(7)核心模块之主模块的非测试常用指令
		1. error_log 含义:指定存储错误日志的文件 语法:error_log <file> [debug|info|notice|warn|error|crit] 缺省:${prefi ... 
- 高性能Web服务器Nginx的配置与部署研究(11)应用模块之Memcached模块的两大应用场景
		一.应用场景1 最近在一个项目中,用到了Nginx的Memcached模块,所以就在这个系列教程中提前把Memcached模块拿出来写了.另外发现最近我的 博客文章频频被很多用采集器的网站拿走,帮我发 ... 
- 高性能Web服务器Nginx的配置与部署研究(2)Nginx入门级配置与部署及“Hello World”
		1. Nginx 程序包 目前最新的开发版本时1.1.12: Linux/Unix:nginx-1.1.12.tar.gz Windows:nginx-1.1.12.zip 我们可以下载稳定版尝试: ... 
- 高性能Web服务器Nginx的配置与部署研究(1)Nginx简介及入门示例
		概述 从这篇博文起,将带领读者们一起领略Nginx的强大. Nginx 是做什么用的?我相信很多朋友都已经使用过,如果你没有,那么你一定知道以下这些名称之一:Apache,Lighttpd,Tomca ... 
- 高性能Web服务器Nginx的配置与部署研究(3)Nginx请求处理机制
		1. 处理什么样的请求 处理访问到 Nginx 所在 IP 地址的请求,并且这些请求的 HTTP 头信息中的 Host 为所要处理的域名(如下以80端口为例),如下几个 server 就对应响应的请求 ... 
- 高性能Web服务器Nginx的配置与部署研究(4)Nginx常用命令
		1. 启动 Nginx poechant@ubuntu:sudo ./sbin/nginx 2. 停止 Nginx poechant@ubuntu:sudo ./sbin/nginx -s stop ... 
- 高性能Web服务器Nginx的配置与部署研究(8)核心模块之事件模块
		一.事件模块的作用是什么? 用来设置Nginx处理链接请求. 二.相关指令 1. accept_mutex 含义:设置是否使用连接互斥锁进行顺序的accept()系统调用. 语法:accept_mut ... 
- 高性能Web服务器Nginx的配置与部署研究系列(1)-- 入门 hello work
		简介: Nginx 是一个基于 BSD-like 协议.开源.高性能.轻量级的HTTP服务器.反向代理服务器以及电子邮件(SMTP.POP3.IMAP)服务器.Nginx 是由一个俄罗斯的名叫“Igo ... 
随机推荐
- js各种效果
			1.JavaScript 仿LightBox内容显示效果 2.固定高度的div,竖直方向出现滚动条,水平方向固定 http://www.jb51.net/css/109928.html <!do ... 
- ***XX-net 和 proxyee-down
			看连接吧,留着方便自己查看 https://github.com/XX-net/XX-Net https://github.com/monkeyWie/proxyee-down/blob/master ... 
- RK3288 手动设置电池电量
			参考:[RK3288][Android6.0] 调试笔记 --- 电池电量一直显示100% 系统版本:RK3288 android 5.1 (与参考的变量和宏有点区别) 设备没有电池,在进行Fota升 ... 
- Codeforces Round #204 (Div. 2) C. Jeff and Rounding——数学规律
			给予N*2个数字,改变其中的N个向上进位,N个向下进位,使最后得到得数与原来数的差的绝对值最小 考虑小数点后面的数字,如果这些数都非零,则就是 abs(原数小数部分相加-1*n), 多一个0 则 m ... 
- qt在动态库里面加载widget的例子
			testDll和testExe项目 备注:windows下dll内不需要new QApplication, linux和mac下面需要在动态库里面new QApplication testdll.h ... 
- 推荐PHP程序员进阶的好书
			<UNIX网络编程卷1(第3版)> <UNIX网络编程卷2(第2版)> <UNIX环境高级编程(第3版)> <UNIX编程艺术> <MySQL技术 ... 
- DS03--栈和队列
			一.学习总结 1 关键词: 逻辑结构,存储结构,抽象数据类型,顺序存储类型,链式存储类型,线性表应用 栈和队列 2 使用思维导图将这些关键词组织起来. 二.PTA实验作业 2.1题目1:符号配对 请编 ... 
- 杂项:HTML5-3/3-技术要点
			ylbtech-杂项:HTML5-3/3-技术要点 1.返回顶部 1. 重要标记 <video>标记 定义和用法: </video> 标签定义视频,比如电影片段或其他视频流 ... 
- 透过一个实例理解C++语言的explicit关键字
			我们先看一段代码: 建立people.cpp 文件,然后输入下列内容:class People{ public: int age; explicit People (in ... 
- 关于mongodb ,redis,memcache之间见不乱理还乱的关系和作用
			先说我自己用的情况: 最先用的memcache ,用于键值对关系的服务器端缓存,用于存储一些常用的不是很大,但需要快速反应的数据 然后,在另一个地方,要用到redis,然后就去研究了下redis. 一 ... 
