nginx location 匹配顺序

location 匹配的原型是这样的:location [=|~|~*|^~|@] /uri/ { … }

“=”是精确匹配
“@”是命名的location ,在正常的location 匹配中不会使用,仅仅在内部跳转中才会使用到。
“~”是区分大小写的匹配
“~*”是不区分大小写的匹配
“^~”表示中止正则匹配(这个平时没太注意)

在一个请求中,匹配的顺序是这样的。先使用所有location 来匹配URI的开始部分,最精确匹配的(形象点说,就是即配置字符数最多的)为最后匹配结果;然后进行正则表达式的匹配,按照配置文件中的顺序来进行匹配,如果有一个匹配成功,则结束正则匹配,且最后匹配结果为此location ,否则,最后结果为先前最精确匹配的的那个location 。

之前有提到过”^~”,它配置在非正则匹配中,表示,如果最精确匹配的loction为此location ,则立即返回该location 作为结果,而不进行下一步的正则匹配,这样,就此可以不必要进入到正则匹配当中,以加快匹配速度。

还有”=”,它是最精确的匹配,而且优先级最高。最先进行带”=”的匹配,如果匹配成功,立马返回。

最后总结下匹配的过程,有四步:
1. 带”=”前缀的先进行匹配,如果找到了,中止查找。
2. 所有其它location 进行非正则的匹配,找到最精确匹配的那个,如果匹配到带”^~”前缀的,则中止查找。
3. 正则查找,按照我们配置文件中配置的location 顺序进行查找。
4. 如果正则查找匹配成功,则使用此正则匹配的location ,否则,使用第二步查找的结果。

这里要特别说明下”=”与”^~”的区别:
“=”在匹配时,则匹配带”=”的location 。而”^~”,则会匹配所有非”=”的非正则location ,只有在确认它是最精确匹配的location 后,才生效。

Nginx location执行顺序和匹配规则 nginx location执行顺序和匹配原则根据location的特点分为普通和正则两种,执行顺序和匹配规则的差异也在于此。 执行顺序 nginx会优先执行普通location,不管普通location是否匹配,都会再次转向执行正则location,一旦第一个正则location被满足,则停止向后执行。 匹配原则 正则location的匹配优先级更高,会覆盖掉已匹配的普通location。 正则location之间的优先级取决于执行顺序,一旦前一个匹配,则停止向后搜索。 普通location之 阅读详情

相关推荐

基于RK3588的高效音视频对讲系统设计与实现

本文详细介绍了基于RK3588芯片的高效音视频对讲系统设计与实现。文章深入剖析了RK3588在8K编解码、高性能音频DSP及丰富接口方面的优势,并提供了从开发环境搭建、分层软件架构设计,到视频采集编码、音频回声消除及低延迟网络传输的完整实战指南,旨在帮助开发者充分利用该芯片硬件能力,构建稳定、低延迟的实时通信系统。

dapp9builder的博客 256

Nginx中的location匹配的几点说明

location匹配的原型是这样的:location [=|~|~*|^~|@] /uri/ { … } “=”是精确匹配 “@”是命名的location,在正常的location匹配中不会使用,仅仅在内部跳转中才会使用到。 “~”是区分大小写的匹配 “~*”是不区分大小写的匹配 “^~”表示中止正则匹配(这个平时没太注意) 在一个请求中,匹配的顺序是这样的。先使用所有location

479

嵌入式开发必备:aarch64-linux-gnu-gcc交叉编译工具链保姆级安装指南(含常见错误解决)

本文详细介绍了aarch64-linux-gnu-gcc交叉编译工具链的安装与配置方法,涵盖从系统软件源安装到Linaro二进制包部署的全流程。针对嵌入式开发中常见的依赖错误、版本冲突等问题提供实用解决方案,并分享性能优化技巧与项目集成经验,帮助开发者高效完成ARM64设备的跨平台开发。

yoga7的博客 1031

nginx之location匹配顺序

`=` 开头表示精确匹配 `^~` 开头表示uri以某个常规字符串开头,不是正则匹配 `~` 开头表示区分大小写的正则匹配; `~*` 开头表示不区分大小写的正则匹配 `/` 通用匹配, 如果没有其它匹配,任何请求都会匹配到 优先级 (location `=` ) > (location `完整路径` ) > (location `^~` 路径) > (location...

cxy1991xm的博客 1224

《统计学习方法》——李航 学习大纲

最近在学习李航写的统计学习方法概论, 每一章都用xmind理清了思路,括号里是书里的公式,第一次写博文,敬请指教~~~~ 第一章 统计学习方法论 第二章 感知机 每个方法其实只需要着重掌握三要素和输入输出就可以了,主要看模型、策略和算法。 感知机主要是二类分类的线性分类模型。 看到后面会注意感知机和支持向量机的区别。 第三章 k近

wjy619251334的博客 1万+

加权均值向量算法(INFO)详解:从数学原理到智能算法

本文系统介绍了加权均值向量算法(INFO)的理论基础、数学模型与实现应用。该算法基于加权均值数学概念,通过MeanRule规则平衡探索与开发能力,具有结构新颖、参数合理的特点。核心内容包括:1) 算法理论基础,阐述加权均值数学定义与小波函数权重计算;2) 算法原理,详细解析更新规则、向量组合和局部搜索三阶段数学模型;3) 实现方法,提供MATLAB代码关键参数解析;4) 改进方向,介绍INFO-KELM混合模型等变体;5) 应用案例,涵盖函数优化、工程设计与机器学习领域。

qq_42212808的博客 235

Nginx的location路径匹配规则

Nginx的location路径匹配规则1、 语法2、 语法说明3、匹配规则(先后顺序)4、测试示例5、【uri】正则路径5、路径替换 1、 语法 [ = |~ | ~* | ^~ | @ ] /uri/ 注:uri是指匹配路径, [ =| ~ | ~* | ^~ | @ ] 是指匹配规则(可选) location ^~/uri/{ ... } location =/uri/{ ... } ... 2、 语法说明

beichengliulixue的博客 63万+

嵌入式视频应用开发者必读:嵌入式Linux+FFmpeg硬件编解码实战指南

在嵌入式Linux上,FFmpeg支持多种硬件加速API,比如VAAPI、VDPAU、CUDA,以及针对特定平台的专用接口(如NVIDIA的NVENC、Intel的QSV、ARM的Mali)。FFmpeg的硬件解码通过-hwaccel参数启用,咱们以常见的H.264和HEVC(H.265)格式为例,展示如何用VAAPI和V4L2实现高效解码。: FFmpeg硬件加速需要额外的库,比如libva(VAAPI)、libv4l2(V4L2)或libnvcodec(CUDA)。

大模型大数据攻城狮的专栏 2205

一文弄懂nginx的 location、proxy_pass 最后到底要不要带 “/”

一文弄懂nginx的 location、proxy_pss 最后到底要不要带 “/”

叫熊猫啊的博客 3883

Python与.NET革命性互操作:PythonNet实现零门槛双向调用——深度解析与实战案例

跨语言调用实战指南:Python与.NET深度集成 摘要:本文详解Python与.NET双向互调技术,通过PythonNet和Python.Runtime实现高效跨语言协作。核心优势包括:无缝集成Python机器学习模块(如PaddleOCR)与.NET UI框架,内存直传提升90%数据效率,减少80%重复代码。内容涵盖:1)Python调用.NET类库的完整流程;2)C#动态加载Python脚本及环境配置要点;3)反射机制实现私有方法调用与泛型处理;4)性能优化技巧(类型缓存、NumPy数组转换);5)异

墨夶的博客 612

运放+MOS恒流源电路仿真分析

利用运放设计一个恒流源

HW-BASE的博客 4094

nginx 的 location 模块

Nginx 的 location 指令用于定义如何处理某个特定的请求 URI,它可以匹配 URL 的路径部分,然后根据匹配结果对请求进行不同的处理。这些处理可能包括重写 URI、代理请求、返回静态内容等。location 指令可以在 server 或 location 块内使用。

刘某的博客 4307

清华源pip install出现ERROR: Could not find a version that satisfies the requirement的解决方案

本文主要介绍了清华源pip install出现ERROR: Could not find a version that satisfies the requirement的解决方案,希望能对学习python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 8万+

必学必会的nginx配置location匹配顺序总结

location匹配顺序 1."="前缀指令匹配,如果匹配成功,则停止其他匹配 2.普通字符串指令匹配,顺序是从长到短,匹配成功的location如果使用^~,则停止其他匹配(正则匹配) 3.正则表达式指令匹配,按照配置文件里的顺序,成功就停止其他匹配 4.如果第三步中有匹配成功,则使用该结果,否则使用第二步结果 注意点 匹配的顺序是先匹配普通字符串,然后再匹配正则表达式。另外普通字符串匹配...

LoveSummer 2万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Nginx Location匹配顺序

理论部分 文字释义匹配规则如下: 略述: 1、nginx服务器首先在server块的多个location块中搜索是否有标准的uri和请求字符串匹配。如果有多个标准uri可以匹配,就匹配其中匹配度最高的一个location。 2、然后,nginx在使用location块中,正则uri和请求字符串,进行匹配。如果正则匹配成功,则结束匹配,并使用这个location处理请求;如果正则匹配失败,则...

u013622866的博客 2689

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

nginx location匹配顺序

location匹配顺序先查阅资料 先查阅资料 很多网页都有说明。一遍没有看懂,还是找官网,比较权威。 http://nginx.org/en/docs/http/ngx_http_core_module.html#location regular expression – Regular expressions are specified with the preceding “~*” modifier (for case-insensitive matching), or the “~” modifi

qq_28109597的博客 2071

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

nginx配置location匹配顺序总结

location匹配顺序 "="前缀指令匹配,如果匹配成功,则停止其他匹配 普通字符串指令匹配,顺序是从长到短,匹配成功的location如果使用^~,则停止其他匹配(正则匹配) 正则表达式指令匹配,按照配置文件里的顺序,成功就停止其他匹配 如果第三步中有匹配成功,则使用该结果,否则使用第二步结果 注意点 匹配的顺序是先匹配普通字符串,然后再匹配正则表达式。另外普通字符串匹配顺序是根...

LoveSummer 2673

nginx之location匹配优先级及顺序

nginx通过server块中location配置用以匹配不同url访问:location配置方式主要包括精准匹配、普通匹配和正则匹配 location = expression 精准匹配 location expression 普通匹配 location ^~ expression 普通匹配 location ~ regex 正则匹配(区分大小写) location ~* regex...

zhanghui200920061988的博客 3550

nginx配置location匹配顺序规则总结

location 正则匹配规则: 符号 说明 ~ 正则匹配,区分大小写 ~* 正则匹配,不区分大小写 ^~ 普通字符匹配,如果该选项匹配,则,只匹配该选项,不再向下匹配其他选项 = 普通字符匹配,精确匹配 @ 定义一个命名的 location,用于内部定向,例如 error_page,try_files location匹配优先级顺序 1.精确匹配 `=` 前缀指令匹配,如果匹配成功,则停止其他匹配 2.普通字符匹配 普通字符串指令匹配,顺序是从长到短,匹配成功的

carcoon的专栏 4775

nginx location匹配顺序总结

以下是自己总结的nginx location匹配顺序,在第2和第3的顺序上和官网文档相左,有时间再仔细研究下 1、首先是精确匹配,用 = 表示,例如: location= /test { ... } 2、其次是前缀匹配 ,用^~表示,例如: location ^~ /test { ... } 注意:若有多个前缀字符串可以匹配,将选择具有最长匹配前缀的位置,并使用其配置 ...

firehive的博客 1052

nginx的location指令(实战示例、匹配顺序、匹配冲突)

1. 对url的匹配 1.1 默认匹配 1.2 精确匹配( = ) 1.3 正则,区分大小写 ( ~ ) 1.4 正则表达式,不区分大小写 ( ~* ) 2. 匹配顺序 2.1 示例(精确匹配最高) 2.2 示例(字串匹配次之) 2.3 示例(正则匹间配高于通用匹配) 2.4 示例(正则表达式间前边的为准) 2.5 示例(通用匹配兜底) 3. 匹配间的冲突 3.1 通用匹配 VS 字串匹配

架构+开发+运维 757

nginx location 指令匹配顺序

[导读] location指令是server段中的一个指令,可以对不同路径或不同文件类型进行特殊处理。例如用的比较多的就是针对网站的静态内容设置缓存。由于一个server段中可以有多个location,而http请求最终只能使用其中的一个 location指令是server段中的一个指令,可以对不同路径或不同文件类型进行特殊处理。例如用的比较多的就是针对网站的静态内容设置缓存。由于一个ser

ywb201314的专栏 1064

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

location的作用在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹配方法,包括前缀匹配、精确匹配和正则表达式匹配。了解这些匹配方法的优先级是优化配置的关键。

lwxvgdv的博客 1396
上一篇: Mysql 部分知识
下一篇: rsync
mark007
博客等级 码龄21年 1粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值