nginx的location匹配规则

Posted cheng21553516

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx的location匹配规则相关的知识,希望对你有一定的参考价值。

参考博客:https://www.cnblogs.com/yyxianren/articles/10723052.html

Nginx location 配置语法

  location [ = | ~ | ~* | ^~ ] uri ...

  location @name ...

location 配置可以有两种配置方法

前缀 + uri(字符串/正则表达式)

@ + name(内部跳转)

前缀含义

=:精确匹配(必须全部相等)

~:大小写敏感

~*:忽略大小写

^~:只需匹配uri部分

@:内部服务跳转

规则分类分为三类:

正则匹配 :其中“~ ”和“~”以及“!~”和“!~”前缀表示正则location .

精准匹配  location = url

普通匹配 : 其他前缀(包括:“^~”和“@ ”)和无任何前缀的都属于普通location .

 

=精确匹配

location = / #规则   

  #则匹配到 `http://www.example.com/` 这种请求

~大小写敏感

location~ /Example/ #规则   

  #请求示例#http://www.example.com/Example/ [成功]

  #http://www.example.com/example/ [失败]

 

~*大小写忽略

 location~* /Example/ #规则

  # 则会忽略 uri 部分的大小写

  #http://www.example.com/Example/ [成功]

  #http://www.example.com/example/ [成功]

^~只匹配以 uri 开头

 location ^~ /img/ #规则

  #以 /img/ 开头的请求,都会匹配上

  #http://www.example.com/img/a.jpg [成功]

  #http://www.example.com/img/b.mp4 [成功]

 

匹配规则:

 1.首先会进行精准匹配,如果精准匹配能够匹配到,那么就以精准匹配为准

 2、其次会进行普通匹配,如果然后记忆普通匹配的最大精度匹配,如果最大精度匹配是完全匹配,或者^~ 则匹配结束,返回匹配结果为最大精度匹配结果,普通匹配不关注顺序,否则记忆最大精度匹配结果。

3、 最后进行正则匹配。从上至下开始正则匹配,正则匹配,如果命中,则终止匹配。返回正则匹配的结果,如果正则匹配不到,则返回最大今年精度的普通匹配的结果。正则匹配关注顺序一旦匹配中,则不再继续匹配,所以正则匹配一定要注意顺序。

 

博客中如有错误,欢迎指正。如有疑问,欢迎评论。希望能和大家一起学习进度。

 

 

 

以上是关于nginx的location匹配规则的主要内容,如果未能解决你的问题,请参考以下文章

Nginx之location 匹配规则详解

nginx location 匹配规则

转nginx location匹配规则

Nginx 关于 location 的匹配规则详解

Nginx多个location匹配

nginx location匹配规则一般匹配和精准匹配