nginx配置—之location模式匹配

Posted aishangwei

tags:

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

1、location正则

~       表示一个正则匹配,区分大小写
~*      表示一个正则匹配,不区分大小写
^~      表示普通字符匹配,一般用来匹配目录
=       表示普通字符精确匹配
@       定义一个自命名的location,用来在内部重定向,例如 error_page, try_files


2、location匹配的优先级

(1)location匹配的优先级与location在配置文件中的顺序无关
(2)精确匹配( = ),首先处理精确匹配,如果匹配上,就停止搜索其他匹配
(3)普通字符匹配( ^~ ),越精确匹配,优先级越高,如果匹配上,停止搜索匹配
(4)正则表达式匹配,匹配定义的内容
(5)如果第4条规则产生匹配的话,就使用该结果,否则,使用第3条规则的结果

例1:基本匹配

location = / {
      # 只匹配 “/”
      [ configuration A ]
}
location  / {
      # 匹配以 “/”开头的请求,即匹配所有
      # 但精确匹配或正则匹配会优先匹配
      [ configuration B ]
}
location ^~ /images/ {
       # 匹配以 /images/ 开头的请求,并停止其他 location匹配
      [ configuration C ]
}
location ~* .(gif|jpg|jpeg)$ {
       # 匹配以 gif, jpg, 或者 jpeg结尾的请求
      [ configuration D ]
}

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


例2:@location

error_page 404 = @fetch;
location @fetch(
       proxy_pass  http://fetch;
)

 

参考文章: http://www.nginx.cn/115.html









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

nginx之location配置

Nginx服务器配置之location语法分析

Nginx得Location配置详解之精准匹配

Nginx之location模块说明

Nginx配置之location模块和proxy模块

Nginx配置转发