nginx location 正则匹配
nginx的location正则匹配是什么呢?不知道的小伙伴来看看小编今天的分享吧!
Location根据类型分为两种:普通配置和正则匹配
一、 普通配置
普通location根据使用方法又分为两种,格式如下:
1. location / {
命令序列
}
解释:括号中定义的表示对当前路径及子路径下的所有对象有效。“优先级最低”
用户所有的请求都能被它匹配到。
例子:
location / {
root /web;
相应策略
}
这说明网页根目录在/web
访问的时候直接http://127.0.0.1或是域名就可以了
用户所有的请求都能被它匹配到
location /bbs {
root "/web";
相应策略
}
这就说明网页根目录是位于 /web/bbs
访问的时候直接http://127.0.0.1/bbs就可以了
当用户访问
http://127.0.0.1/bbs/
或是
http://127.0.0.1/bbs/子路径
的时候才能被上边的路径匹配到。
问题:当用户访问http://127.0.0.1/bbs/a.html时
这两段location 同时存在时如下,那么哪段配置会生效呢?
server {
listen 80;
server_name www.benet.com;
index index.html;
location / {
root /web;
}
location /bbs {
root /web;
}
结论就是,
当用户请求的(/bbs)url同时匹配到两段location时,
最大前缀生效(location /bbs生效)
如果没有这段(location /bbs) 第一段生效。
第一段相当于默认策略,因为location / 包含所有的请求,所有的请求都是以 ”/” 开始的
2. location = /路径 {
命令序列
}
解释:括号中定义的表示对当前路径有效,子路径不生效(精确匹配指定的路径不包括子路径)。“它的优先级最高。”
例子:
location = /prefix {
}
也就是用户访问www.benet.com/prefix能被上边的location匹配到,它只匹配"/prefix",
"/"下的子路不匹配。
用户访问www.benet.com/prefix/a 就不能被它匹配到
优先级最高:指的是一旦匹配到此location ,立即生效。其它location无论是否匹配到请求都不生效。
例子:
location /prefix/ {
root /;
}
location = /prefix/ {
return 500;
}
二、 正则匹配
正则匹配也分为两种:
1. location ~ URI {}
~匹配的文件是区分字符 大小写的
2.location ~* URI {} :
~*匹配的文件是不区分字符大小的
正则匹配是按照正则location编写的顺序生效的,一旦匹配成功即停止匹配到后续的location。
例子:
location ~ /bbs {
return 400;
}
location ~* /bbs {
return 500;
}
网页返回错误信息400
然后将两段配置调换一下位置
location ~* /bbs {
return 500;
}
location ~ /bbs {
return 400;
}
三、匹配顺序和生效顺序
匹配顺序和生效顺序是两个概念
当配置中出现多个locaton并且普通和正则都有,那么
1、匹配顺序是:
用户请求的URL
(1)先匹配普通location
普通location在匹配是按照编辑顺序匹配
(2)在匹配正则location
正则location在匹配时按照编辑顺序匹配
但是正则和普通locaiton不按照编辑顺序匹配
2、生效顺序
当普通和正则都存在的情况下,遵循以下原则
1.nginx开始按照编辑顺序依次匹配普通location
(1)如果匹配过程中匹配到了
"location =" :nginx会立即生效即停止后续的匹配
(2)如果没有"locaiton ="话,
如果匹配到"locatin ^~"。会停止后续的正则匹配
然后最大前缀locaiton生效
最后是location / 生效
(3) 如果以上两种location都不存在的话
nginx会匹配所有location后看后续有没有正则locaion
如果后续没有正则locaiton
然后最大前缀locaiton生效
最后是location / 生效
如果后续还有正则location
一旦匹配成功一条正则locaion,这条会生效,并且会停止后续的正则匹配,还会会覆盖前边的普通location结果
-
凌渡改装轮毂可以吗?
凌渡改装轮毂注意事项:1、改装轮毂不宜改装过宽尺寸,轮毂越大,为了保持车辆扁平比,轮胎就会越薄,对地面的感受就更明显,通过凹凸不平的路段时会大大降低乘车人的舒适度;2、需要时常...
问答查看全文>> -
2022年财务人员工作总结
财务人员工作总结怎么写呢?一起来看看小编今天的分享吧。1、财务人员工作总结首先可以描写作为财务人员的日常基础工作和职责,例如编制各类财务报表等;2、然后可以描写具备的专业知识和...
教育查看全文>> -
安全带拉出来弹不回去怎么办
是卷带弹簧长时间使用失去弹性导致的。解决此问题只需要更换卷带弹簧,或更换整个安全带机构。很多车子随着使用时间的增加,都会出现安全带不能自动弹回去的问题。有些是因为安全带脏污导致...
问答查看全文>> -
什么让生活更美好小学作文范文
什么让生活更美好小学作文怎么写?要从哪些方面去写,一起来看看小编今天的分享吧。什么让生活更美好小学作文主要由三个部分构成。首先明确本次作文的主题,叙述关于想要记录主题事项的具体...
教育查看全文>> -
大众桑塔纳水温表指针如何看
只用水温报警灯,红灯是表示水温过高;蓝灯表示水温过低。新款大众桑塔纳没有水温表,只有水温报警灯。水温报警灯亮提示车主及时添加防冻液。当水温灯亮红灯时表明发动机水温过高,需停车休...
问答查看全文>>
推荐
- 1现代瑞纳火花塞怎么换?214
- 2雅阁二手车怎么选?479
- 3轮胎爆胎后怎么处理?394
- 4身体不舒服的心情说说321
- 5经典爱情表白语录短句 爱情的表白语录大全214
- 6怎么看微信主动加过谁124
- 7福特福克斯加水在哪里289
- 8京东保价在哪里申请有效期 京东保价时间过了怎么申请保价205