前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx的location匹配指令及常用内置变量

Nginx的location匹配指令及常用内置变量

作者头像
luxixing
发布2019-05-29 17:40:35
1.5K0
发布2019-05-29 17:40:35
举报
文章被收录于专栏:luxixingluxixing

有如下指令语法可使用

代码语言:javascript
复制
~    #区分大小写的正则匹配

~*   #不区分大小写的正则匹配

^~   #普通字符匹配,如果此选项匹配成功,忽略其他匹配选项,一般用来匹配目录

=    #普通字符精确匹配

@    #定义一个内部命名的匹配,适用于error_page,try_files

匹配执行顺序及优先级:

- = 精确匹配 精确匹配会第一个被处理,如果精确匹配成功,停止搜索其他匹配模式,直接使用精确匹配 - 普通字符(/download,/img, ^~ /log,) 如果有前缀 ^~,且匹配此规则, 那么停止搜索其他规则,使用此规则 没有前缀 ^~,那么继续搜索正则匹配或者更长的普通字符匹配,如果发现正则匹配或者更长匹配,则使用正则或者更长匹配 - ~* 正则匹配被最后处理,匹配成功则使用此规则,否则使用其他匹配结果

实例

代码语言:javascript
复制
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例子:

代码语言:javascript
复制
#符合 configuration A
/ 
#符合 configuration B
/documents/document.html
#符合 configuration C    
/images/1.gif
#符合 configuration D
/documents/1.jpg

@location 例子

代码语言:javascript
复制
error_page 404 = @fetch;
location @fetch(
    proxy_pass http://fetch;
)

常见内部变量(如果发现更重要的会继续补充)

- $args 请求参数 例如: http://segmentfault.com/?test=test 那么 $args的值就是 test=test - $uri 不带host(域名)的请求路径 例如: http://segmentfault.com/write $uri 的值是 write

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档