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

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

    关注

    0

    文章

    50

    浏览量

    12728
  • 映射
    +关注

    关注

    0

    文章

    49

    浏览量

    16433
  • nginx
    +关注

    关注

    0

    文章

    180

    浏览量

    12968
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    抢占优先级和子优先级

    关于抢占优先级和子优先级: 1)具有高抢占式优先级的中断可以在具有低抢占式优先级的中断服务程序执行过程中被响应,即中断嵌套,或者说高抢占式优先级
    发表于 12-03 07:11

    电能质量在线监测装置的暂态数据补传的优先级如何在实际应用中进行动态调整?

    电能质量在线监测装置的暂态数据补传优先级在实际应用中通过 事件驱动、主站指令、资源状态感知和动态策略调整 等多层机制实现灵活调控,确保关键数据的实时性与可靠性。以下是具体实现方式和典型场景的动态调整
    的头像 发表于 11-06 14:10 95次阅读

    电能质量在线监测装置的暂态数据补传的优先级是怎样的?

    电能质量在线监测装置的暂态数据补传优先级设计遵循 事件驱动、主站指令优先、资源动态分配 的原则,结合行业标准和设备机制,形成以下多层级优先级体系: 一、最高优先级:紧急事件驱动补传 1
    的头像 发表于 11-06 14:02 94次阅读

    FreeRTOS任务调度及优先级问题

    都有容错,但是心里没底,想向大家了解一下实际工作中有没有遇到到类似的问题,如果有又是怎么解决的呢? 另外有前辈可以分享一下任务的优先级在实际项目中该基于什么原则来划分呢?
    发表于 11-06 02:18

    使用fal api 来读写1024 字节数据,需要需要考虑被高优先级线程打断吗?

    使用fal api 来读写1024 字节数据,需要需要考虑被高优先级线程打断吗?
    发表于 10-10 07:16

    优先级线程无法调度怎么解决?

    1,设置了3,5,6,8几个优先级,设备在现场正常运行了一年多后,显示、前端、后端这3个低优先级线程异常了,表现为屏幕不动,前端采集数据没有变化等,其他高优先级的线程如通讯,按键都能正常运行,通讯有喂狗操作,停止通讯,会看门狗复
    发表于 09-25 07:33

    什么是RTOS中的优先级反转

    当一个高优先级任务正在等待一个资源,但一个低优先级任务正在持有它,一个中等优先级任务继续在中间运行时,就会发生优先级反转——阻止低优先级任务
    的头像 发表于 09-09 14:50 774次阅读

    求助,关于MS51设置中断优先级问题求解

    我确实发现在库代码和 TRM 之间设置中断优先级有一些差异,如下图所示。 Could you check what's wrong with me?
    发表于 08-25 07:01

    揭秘!基于RT-Thread探究“优先级反转”下的任务调度究竟是什么样的?| 技术集结

    本文将基于RT-Thread,结合RT-Trace调试器细化到实际任务调度的粒度,来调试并逐步讲解“优先级反转”的调度和运行逻辑。如果对RT-Trace感兴趣的可以看这篇文章:国产嵌入式调试器之光
    的头像 发表于 08-17 10:07 2802次阅读
    揭秘!基于RT-Thread探究“<b class='flag-5'>优先级</b>反转”下的任务调度究竟是什么样的?| 技术集结

    请问STM32的内部Flash操作是不是优先级最高?

    STM32的内部Flash操作是不是优先级最高?目前在内部Flash的单独一页存储了数据,发现在进行页擦除的时候正常工作的定时器中断无法进入了
    发表于 08-13 07:03

    TLe9893怎么调整外设的中断优先级

    你好林工,我该怎么调整外设的中断优先级?是否可以通过工具调整?默认设置下,是不是Brdv的在中断优先级高于T20和can?
    发表于 08-01 06:20

    请问C0系列单片机中断优先级只有4吗?

    C0系列单片机中断优先级只有4?C071在配置的时候只能配置0-3
    发表于 07-23 08:00

    ADL5308可以通过软件和硬件配置的参数,配置的优先级是什么?

    你好,麻烦问一下ADL5308可以通过软件和硬件配置的参数,配置的优先级是什么?有没有更详细的寄存器配置手册,截距配置的步进是多少?
    发表于 06-10 06:39

    CyU3PDebugPrint的最高优先级和最低优先级是什么?

    [i]CyU3PDebugPrint的最高优先级和最低优先级是什么?
    发表于 05-13 08:22

    配电柜—断电危机?配电柜故障排查优先级指南

    在排查配电柜故障过程中,合理安排排查优先级至关重要。下面聊一下如何科学合理安排配电柜故障排查优先级顺序。
    的头像 发表于 03-06 18:55 810次阅读
    配电柜—断电危机?配电柜故障排查<b class='flag-5'>优先级</b>指南