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

相关文章推荐

Treetop 入门

Treetop 是一个出奇简单的Ruby 写的解析器。我知道Treetop 是因为看到Nathan Sobo在RubyConf 2007上做的一个报告。第一步:安装Treetopgem install...

MAC使用PC键盘

1.首先连上PC键盘,此时MAC会弹出对话框,按照要求确认键盘上shift左边和右边的值(一般为‘z’和‘/’) 2.选择键盘类型,一般为ANSI,此时已经设置完成。 但是这和平时...
  • wxwd1
  • wxwd1
  • 2015年11月06日 20:08
  • 932

Nginx之location 匹配规则详解

原文:http://www.cnblogs.com/lidabo/p/4169396.html 关于一些对location认识的误区 1、 location 的匹配顺序...

nginx location匹配规则

location匹配命令 ~      #波浪线表示执行一个正则匹配,区分大小写 ~*    #表示执行一个正则匹配,不区分大小写 ^~    # ^~表示普通字符匹配,不使用正则表达式,如果该...
  • Baple
  • Baple
  • 2013年06月13日 12:56
  • 838

Nginx 的 location 指令的匹配规则

Nginx 的 location 指令,允许对不同的 URI 进行不同的配置,既可以是字符串,也可以是正则表达式。使用正则表达式,须使用以下前缀:         (1) ~*, 表示不区分大小写的...

Nginx Location指令URI匹配规则详解

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

Nginx location命令匹配规则

Nginx location命令匹配规则准备知识location 匹配命令 ~ #波浪线,表示执行一个正则匹配,区分大小写 ~* #波浪线+星号,表示执行一个正则匹配,不区分大小写 ^~ ...

【Nginx】location 匹配规则详解

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

Nginx之location 匹配规则详解

关于一些对location认识的误区 1、 location 的匹配顺序是“先匹配正则,再匹配普通”。 矫正: location 的匹配顺序其实是“先匹配普通,再匹配正则”。我这么说,大家...
  • Truong
  • Truong
  • 2015年11月05日 22:39
  • 320

Nginx之location 匹配规则详解

1、 location 的匹配顺序是“先匹配正则,再匹配普通”。 矫正: location 的匹配顺序其实是“先匹配普通,再匹配正则”。我这么说,大家一定会反驳我,因为按“先匹配普通,再匹配正则...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:nginx location 匹配规则
举报原因:
原因补充:

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