昌鑫号

nginx(nginx反向代理)

nginx, nginx的位置正则匹配是怎样的?不知道小伙伴们今天来看看边肖的分享吧!

位置可以分为两种:正常配置和常规匹配。

一、总体配置

普通位置根据使用方法分为两种,格式如下:

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/subpath

只能用上面的路径来匹配。

问题:当用户访问http://127.0.0.1/bbs/a.html时,

当这两个位置同时存在时,如下所示,哪个配置将生效?

server {

listen 80;

server_name www.benet.com;

index index.html;

location/{

root /web;

}

location /bbs {

root /web;

}

结论是,

当用户请求的URL(/BBS)同时匹配两个位置时,

最大前缀生效(位置/bbs生效)

如果本段第一段(位置/bbs)不生效。

第一段相当于默认策略,因为location/包含所有请求,所有请求都以“/”开头。

2. Location=/Path {

指令序列

}

解释:括号中定义的表示对当前路径有效,但对子路径无效(与指定路径完全匹配的不包括子路径)。“它有最高优先权。”

示例:

location=/prefix {

}

也就是说,访问www.benet.com/prefix的用户可以通过上面的位置进行匹配,它只匹配/前缀。

/下的子路径不匹配。

访问www.benet.com/prefix/a的用户无法与之匹配。

最高优先级:表示一旦匹配到该位置,立即生效。其他位置无论是否符合要求都不会生效。

示例:

location /prefix/{

root /;

}

location=/prefix/{

return 500;

}

nginx反向代理

第二,常规匹配

常规匹配也分为两种:

1. location ~ URI {}

~匹配文件区分大小写。

2. Location ~* URI {}:

~ *匹配文件不区分字符。

正则匹配按照正则位置写的顺序生效,一旦匹配成功,将停止匹配到后续位置。

示例:

location ~ /bbs {

return 400;

}

location ~* /bbs {

return 500;

}

网页返回错误消息400。

然后切换配置的两个部分。

location ~* /bbs {

return 500;

}

location ~ /bbs {

return 400;

}

nginx反向代理

三。匹配订单和有效订单

匹配顺序和有效顺序是两个概念。

当配置中有多个位置,并且既有正常位置又有常规位置时,则

1,匹配顺序是:

用户请求的URL

(1)先匹配普通位置。

普通位置根据编辑顺序匹配。

(2)在匹配规则的位置

常规位置匹配时按照编辑顺序进行匹配。

但是,常规位置和普通位置在编辑顺序上不匹配。

2、生效顺序

当普通和正则都存在的情况下,遵循以下原则

1.nginx开始按照编辑顺序依次匹配普通location

(1)如果匹配过程中匹配到了

location=:nginx会立即生效即停止后续的匹配

(2)如果没有locaiton=话,

如果匹配到locatin ^~。会停止后续的正则匹配

然后最大前缀locaiton生效

最后是location/生效

(3) 如果以上两种location都不存在的话

nginx会匹配所有location后看后续有没有正则locaion

如果后续没有正则locaiton

然后最大前缀locaiton生效

最后是location/生效

如果后续还有正则location

一旦匹配成功一条正则locaion,这条会生效,并且会停止后续的正则匹配,还会会覆盖前边的普通location结果

nginx,以上就是本文为您收集整理的nginx最新内容,希望能帮到您!更多相关内容欢迎关注。

      
上一篇