1 通过实例说明解析匹配优先级-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过实例说明解析匹配优先级

lhl545545 来源:Linux爱好者 作者:Linux爱好者 2020-06-11 09:49 次阅读

1. 目标

nginx 反向代理,路径映射的过程是什么?如何配置路径映射规则?

2、location 路径匹配

2.1 匹配规则:

location 路径正则匹配:

符号说明

~正则匹配,区分大小写

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

^~普通字符匹配,如果该选项匹配,则,只匹配改选项,不再向下匹配其他选项

=普通字符匹配,精确匹配

@定义一个命名的 location,用于内部定向,例如 error_page,try_files

2.2 匹配优先级:

路径匹配,优先级:(跟 location 的书写顺序关系不大)

精确匹配:

=前缀的指令严格匹配这个查询。

如果找到,停止搜索。

普通字符匹配:

所有剩下的常规字符串,最长的匹配。

如果这个匹配使用^〜前缀,搜索停止。

正则匹配:

正则表达式,在配置文件中定义的顺序,匹配到一个结果,搜索停止;

默认匹配:

如果第3条规则产生匹配的话,结果被使用。

否则,如同从第2条规则被使用。

2.3 举例

通过一个实例,简单说明一下匹配优先级:

location = / {

# 精确匹配 / ,主机名后面不能带任何字符串

[ configuration A ]

}

location / {

# 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求

# 但是正则和最长字符串会优先匹配

[ configuration B ]

}

location /documents/ {

# 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索

# 只有后面的正则表达式没有匹配到时,这一条才会采用这一条

[ configuration C ]

}

location ~ /documents/Abc {

# 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索

# 只有后面的正则表达式没有匹配到时,这一条才会采用这一条

[ configuration CC ]

}

location ^~ /images/ {

# 匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。

[ configuration D ]

}

location ~* 。(gif|jpg|jpeg)$ {

# 匹配所有以 gif,jpg或jpeg 结尾的请求

# 然而,所有请求 /images/ 下的图片会被 config D 处理,因为 ^~ 到达不了这一条正则

[ configuration E ]

}

location /images/ {

# 字符匹配到 /images/,继续往下,会发现 ^~ 存在

[ configuration F ]

}

location /images/abc {

# 最长字符匹配到 /images/abc,继续往下,会发现 ^~ 存在

# F与G的放置顺序是没有关系的

[ configuration G ]

}

location ~ /images/abc/ {

# 只有去掉 config D 才有效:先最长匹配 config G 开头的地址,继续往下搜索,匹配到这一条正则,采用

[ configuration H ]

}

location ~* /js/.*/.js

按照上面的location写法,以下的匹配示例成立:

/ -》 config A:

精确完全匹配,即使/index.html也匹配不了

/downloads/download.html -》 config B:

匹配B以后,往下没有任何匹配,采用B

/images/1.gif -》 configuration D:

匹配到F,往下匹配到D,停止往下

/images/abc/def -》 config D:

最长匹配到G,往下匹配D,停止往下你可以看到 任何以/images/开头的都会匹配到D并停止,FG写在这里是没有任何意义的,H是永远轮不到的,这里只是为了说明匹配顺序

/documents/document.html -》 config C:

匹配到C,往下没有任何匹配,采用C

/documents/1.jpg -》 configuration E:

匹配到C,往下正则匹配到E

/documents/Abc.jpg -》 config CC:

最长匹配到C,往下正则顺序匹配到CC,不会往下到E
责任编辑:pj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 路径
    +关注

    关注

    0

    文章

    50

    浏览量

    12488
  • 映射
    +关注

    关注

    0

    文章

    47

    浏览量

    15811
  • nginx
    +关注

    关注

    0

    文章

    149

    浏览量

    12170
收藏 人收藏

    评论

    相关推荐

    车载以太网交换机入门基本功(4)—优先级设计与VLAN测试

    VLAN通过报文Tag、交换机端口属性、交换机端口过滤功能得以实现,并通过优先级和队列实现转发的有效调度。为了验证交换机芯片的功能实现,需要参考OPEN联盟的TC11交换机芯片测试规范,包括通用测试、地址
    的头像 发表于 09-06 14:45 361次阅读
    车载以太网交换机入门基本功(4)—<b class='flag-5'>优先级</b>设计与VLAN测试

    freertos中断优先级在哪设置

    FreeRTOS是一个流行的实时操作系统,它广泛应用于嵌入式系统开发。在FreeRTOS中,中断优先级是一个重要的概念,因为它决定了中断处理的顺序和响应时间。 1. 理解中断优先级 在讨论如何设置
    的头像 发表于 09-02 14:17 634次阅读

    APS智能优化排产软件的优先级应用

    资源、订单需求和约束条件,自动计算出最优的生产计划。在这个过程中,订单排产的优先规则起着至关重要的作用。1.交期优先级交期优先级是订单排产中最基本的优先规则。根据
    的头像 发表于 06-26 17:43 386次阅读
    APS智能优化排产软件的<b class='flag-5'>优先级</b>应用

    ESP32S2如何设置中断优先级

    ESP32S2有六中断, 如何设置中断优先级? 比如在GPIO例程里 ,这种中断优先级是如何设置的呢? 中断寄存器列表里 ,只有简称,哪里能获取这个名称所对应的功能??
    发表于 06-21 07:59

    请问有什么方法降低WIFI中断的优先级

    因为项目对时序输出要求比较严格,WIFI中断优先级比硬件定时器中断优先级要高,在定时器中断里面对GPIO管脚控制被延长执行,请问有什么方法降低WIFI中断的优先级
    发表于 06-19 07:37

    如何在不同优先级安装相同的处理程序?

    在不同的优先级中安装相同的处理程序? 我需要一个解决方案,在不同的优先级中安装相同的处理程序(ISR),以便在我的项目中处理 CAT2 中断,但我不能上传项目,因为我签署了 NDA。
    发表于 05-28 08:13

    systick的中断优先级是否应该设置为最高优先级的嵌套中断?

    最近在学习ucosii有这样一个疑问,关于stm32的systick作为ucosii的基准时钟,systick的中断优先级是否应该设置为最高优先级的嵌套中断。理由是什么?各位大侠求指教!!!
    发表于 05-16 06:44

    创建了两个task如果一个优先级高 一个优先级低,高优先级的那个一直在做,什么时候会调度到低优先级的呢?

    创建了两个task如果一个优先级高一个优先级低, 我看到任务的函数都是用死循环做的,那个高优先级的那个一直在做,什么时候会调度到低优先级的呢?
    发表于 05-13 07:13

    STM8中断优先级不够怎么解决?

    STM8L 中,中断优先级通过下面函数设置,但此处仅 ITC_PriorityLevel_1,ITC_PriorityLevel_2,ITC_PriorityLevel_3总共才3个中断优先级可设
    发表于 05-06 06:54

    求助,关于stm32F4中断优先级0无法抢占的问题求解

    使用F407遇到一个抢占优先级的问题: 现设置优先级分组 HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);也就是15个优先级分组。按照手册
    发表于 04-23 07:26

    STM32F103的寄存器NVIC_IPRx抢占优先级和子优先级是怎么设置的?

    STM32F103的寄存器NVIC_IPRx有些不明白,抢占优先级和子优先级是怎么设置的? 如果,中断分组2,抢占优先级3,子优先级3 那下面这样写对吗? SCB->AIR
    发表于 03-27 07:48

    Hightec对芯片中断优先级分配时,中断号越高中断优先级越高吗?

    请问大佬,Hightec对芯片中断优先级分配时,中断号越高中断优先级越高吗?看网上的帖子说中断号越低优先级越高。
    发表于 02-27 06:13

    RTTnano的用户main函数中的优先级是多少?

    RTTnano 的用户main函数中的优先级是多少?为什么会出现创建新的task之后,main函数会抢占掉低优先级的task,例如RT_THREAD_PRIORITY_MAX设置为8 ,低于3
    发表于 02-26 08:01

    华为和思科默认路由优先级

    优先级值不同,则优先级值最小的为最优路由(无论开销值是否相同,另一种理解就是对不同路由来源或路由协议之间的比较)。
    的头像 发表于 01-11 10:47 1174次阅读

    GD32如何配置中断优先级分组以及中断优先级

    使用GD32 MCU的过程中,大家可能会有以下疑问:中断优先级如何配置和使用?
    的头像 发表于 01-10 10:30 3055次阅读
    GD32如何配置中断<b class='flag-5'>优先级</b>分组以及中断<b class='flag-5'>优先级</b>