nginx location 匹配规则

转载 2016年05月31日 12:04:54
1 普通匹配,遵循最长匹配规则,假设一个请求匹配到了两个普通规则,则选择匹配长度大的那个
  例如: 
  location /{
    [matches]
  }
  location /test{
    [matches]
  }
2 精确匹配
  location = /{
    [matchtes]
  }
  location = /test{
    [matches]
  }
3 正则匹配
  ~ 区分大小写的匹配
  location ~ ^*.php${
    [matches]
  }
  ~* 不区分大小写的匹配
  location ~* ^*.php${
    [matches]
  }
  ^~ 普通字符匹配,如果请求匹配此规则,则其他规则忽略,只匹配该规则
  location ^~ /test{
    [matches]
  }
4 @locationname 内部redirect匹配
  location @locationname{
    [matches]
  }
  
  匹配优先级:
  首先检查是否有精确匹配规则,如果有,则处理精确匹配规则,假设发现精确匹配规则,停止搜索其他匹配规则,返回当前匹配的规则
  其次普通字符匹配,该项匹配请求,仍然需要检查是否有正则或者更长匹配,如果有,返回正则匹配或者更长匹配
  ^~匹配被第三步处理,如果请求匹配此规则,停止其他规则匹配,返回此规则
  正则匹配被最后执行,正则匹配只要被找到,停止解析其他规则,这个就要注意先后顺序了
  
  
  完整的例子:
location  = / {
  # 只匹配"/".
  [ configuration A ] 
}
location  / {
  # 匹配任何请求,因为所有请求都是以"/"开始
  # 但是更长字符匹配或者正则表达式匹配会优先匹配
  [ configuration B ] 
}
location ^~ /images/ {
  # 匹配任何以 /images/ 开始的请求,并停止匹配 其它location
  [ configuration C ] 
}
location ~* \.(gif|jpg|jpeg)$ {
  # 匹配以 gif, jpg, or jpeg结尾的请求. 
  # 但是所有 /images/ 目录的请求将由 [Configuration C]处理.   
  [ configuration D ] 
}
请求URI例子:

/ -> 符合configuration A
/documents/document.html -> 符合configuration B
/images/1.gif -> 符合configuration C
/documents/1.jpg ->符合 configuration D

@location 例子
error_page 404 = @fetch;

location @fetch{
  proxy_pass http://fetch;
}


https://gist.github.com/luxixing/7262911

【Nginx】location 匹配规则详解

转自:Nginx之location 匹配规则详解,非常感谢作者的分享。关于一些对location认识的误区 1.location 的匹配顺序是“先匹配正则,再匹配普通”。 矫正: location...
  • claram
  • claram
  • 2015年11月05日 17:37
  • 4147

Nginx Location指令URI匹配规则详解

原文链接:http://blog.csdn.net/xyang81/article/details/519890791、介绍location指令是http模块当中最核心的一项配置,根据预先定义的URL...
  • xyang81
  • xyang81
  • 2016年07月22日 00:25
  • 14036

Nginx location指令匹配顺序规则

location匹配命令 1. “= ”,字面精确匹配, 如果匹配,则跳出匹配过程。(不再进行正则匹配) 2. “^~ ”,最大前缀匹配,如果匹配,则跳出匹配过程。(不再进行正则匹...
  • kobejayandy
  • kobejayandy
  • 2014年03月08日 23:29
  • 8673

nginx location匹配规则

location匹配命令 ~      #波浪线表示执行一个正则匹配,区分大小写 ~*    #表示执行一个正则匹配,不区分大小写 ^~    #^~表示普通字符匹配,如果该选项匹配,只匹配...
  • w13770269691
  • w13770269691
  • 2013年09月25日 21:29
  • 10760

NGINX location 匹配规则

语法 location  [=|~|~*|^~] /uri/  {...} 规则 = : 表示精确的URI匹配(有兴趣的同学可以看一下url和uri的区别) ~: 表示区分大小写的正则...
  • xiongzhengxiang
  • xiongzhengxiang
  • 2014年07月02日 15:36
  • 685

NGINX LOCATION 匹配规则

nginx location
  • bittersweet0324
  • bittersweet0324
  • 2017年11月07日 17:24
  • 76

Nginx location 匹配规则

原文链接:忘记了…… 语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。ngin...
  • Marco_90
  • Marco_90
  • 2013年08月06日 09:43
  • 359

Nginx - Location 匹配规则

Nginx - Location 匹配规则 语法规则 location = /uri = 表示精确匹配某个uri location ^~ /uri ^~ 表示精确...
  • qq_24080145
  • qq_24080145
  • 2017年07月06日 20:11
  • 36

Nginx之Location配置详解(Location匹配顺序)

location 有”定位”的意思, 主要是根据Uri来进行不同的定位.在虚拟主机的配置中,是必不可少的,location可以把网站的不同部分,定位到不同的处理方式上.1.location的基础语法l...
  • RobertoHuang
  • RobertoHuang
  • 2017年04月19日 23:39
  • 2636

Nginx配置指令location匹配符优先级和安全问题

使用nginx 很久了,它的性能高,稳定性表现也很好,得到了很多人的认可。特别是它的配置,有点像写程序一样,每行命令结尾一个";"号,语句块用"{}"括起来。 配制好,直接nginx -t 检查配制情...
  • subuser
  • subuser
  • 2015年05月21日 12:03
  • 1441
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:nginx location 匹配规则
举报原因:
原因补充:

(最多只允许输入30个字)