美文网首页
location的优先级和执行顺序

location的优先级和执行顺序

作者: __missing | 来源:发表于2019-09-25 11:12 被阅读0次

背景

作为一个phper每次用nginx配置项目的时候都是从网上找一段配置改一改用,总会用到各种未知的问题,决定将常用的配置记录一下便于查找

location的分类

1.指定uri地址。这个平时配置用到的比较多
location [ = | ~ | ~* | ^~ | !~ | !~* | /] uri {
}
2.指定自定义名称。经常被try_uri 指令用到
location @name {
}

指定uri地址

精准匹配,只有访问的uri和配置的完全一致时才能匹配到

location = / { # 只有主机后边不带任何路径才能被匹配到
}

前缀匹配,

1.普通前缀匹配。内部优先级为最长匹配,匹配到最长匹配之后还会找特殊前缀匹配
location /test {
return 403;
}
location /test/test.txt {
return 405;
}
请求:/test/test.txt 会返回 405;/test/aa 返回403;这里是匹配最长的跟配置顺序无关

  1. 特殊前缀匹配。内部优先级为最长匹配,匹配到最长的前缀匹配之后就不会再寻找正则匹配了
    location ^~ /test {
    return 403;
    }
    location ^~ /test/test.txt {
    return 405;
    }
    请求:/test/test.txt 会返回 405;/test/aa 返回403;这里是匹配最长的跟配置顺序无关

正则匹配

正则匹配之间的匹配顺序跟配置顺序有关,配置在前边的正则的优先级高于配置后边的所以在配置的时候应该将详细的正则放在前边,粗略的放在后边
1.~ 区分大小写的正则匹配
location ~ /test {
return 403;
}
location ~ /test/test.txt { # 这样写,这个永远匹配不到,
return 405;
}

  1. ~* 不区分大小写的正则匹配
  2. !~ 第一种的取反
  3. !~* 第二种的取反

优先级

精准匹配(=)> 特殊前缀匹配(^~)> 正则匹配 > 普通前缀匹配

相关文章

  • location的优先级和执行顺序

    背景 作为一个phper每次用nginx配置项目的时候都是从网上找一段配置改一改用,总会用到各种未知的问题,决定将...

  • nginx location匹配规则

    location匹配命令 location 匹配的优先级(与location在配置文件中的顺序无关)= 精确匹配会...

  • vue-router

    匹配优先级按路由定义顺序 路由导航 router.push(location, onComplete?, onAb...

  • 操作符优先级和执行顺序

    今天才发现原来有人把操作符优先级和执行顺序混在一起了 ——轮子哥​​​ 举个例子来说明操作符优先级和执行顺序之间的...

  • 无标题文章

    同步任务: 优先级高,在线程中有执行顺序,不会开启新的线程 异步任务: 优先级低,在线程中执行没有顺序,看cpu闲...

  • nginx的location优先级顺序

    location的优先级和所在前后无关,而是和以下匹配符有关 具体请看:http://blog.csdn.net/...

  • nginx的location匹配

    location匹配分三种方式,按优先级顺序是精确匹配(=)、普通匹配、正则匹配(~,^~,~*). 精确匹配命中...

  • Shell基础脚本-运算符优先级

    在脚本中,运算执行的顺序被称为优先级: 高优先级的操作会比低优先级的操作先执行表-1. 运算符优先级(从高到低) ...

  • Nginx location篇

    nginx的location和nginx.conf中location的书写顺序没有太大的关系 location 定...

  • jmeter-执行顺序(20170830)

    jmeter 执行顺序(按优先级排列): 4.采样器

网友评论

      本文标题:location的优先级和执行顺序

      本文链接:https://www.haomeiwen.com/subject/vdpiuctx.html