Nginx 路径符号匹配规则,通配符

Nginx location匹配算法详解:前缀、精确与正则的优先级规则 Nginx location并非字符串模糊搜索,而是一套分阶段、带严格数学优先级的路由决策机制。其核心包含四类匹配类型:精确匹配(=)拥有最高优先级,用于根路径或固定资源;最长前缀匹配(/path)构成路由主干,支持SPA和API代理;强制前缀匹配(^~)可跳过正则提升性能;正则匹配(~ / ~*)仅在前两阶段无果时触发,且按书写顺序执行。理解这一‘精确→前缀→正则’三级裁决逻辑,是解决502错误、静态资源失效、SPA路由白屏等线上问题的关键技术基础。本文深入解析location匹配的四阶段流程与生产级配置 阅读详情

1,Nginx路径符号匹配介绍:

  1. = 表示精确匹配
  2. ^~ 表示uri以某个常规字符串开头,大多情况下用来匹配url路径,nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
  3. ~ 正则匹配(区分大小写)
  4. ~* 正则匹配(不区分大小写)
  5. !~ 和 !~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
  6. / 任何请求都会匹配

2,符号的优先级

首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。

例子,有如下匹配规则:

location = / {  
   #规则A  
}  
location = /login {  
   #规则B  
}  
location ^~ /static/ {  
   #规则C  
}  
location ~ \.(gif|jpg|png|js|css)$ {  
   #规则D  
}  
location ~* \.png$ {  
   #规则E  
}  
location !~ \.xhtml$ {  
   #规则F  
}  
location !~* \.xhtml$ {  
   #规则G  
}  
location / {  
   #规则H  
}  

访问根目录/, 比如http://localhost/ 将匹配规则A

访问 http://localhost/login 将匹配规则B,http://localhost/register 则匹配规则H

访问 http://localhost/static/a.html 将匹配规则C

访问 http://localhost/a.gif, http://localhost/b.jpg 将匹配规则D,规则E不起作用,而 http://localhost/static/c.png 则优先匹配到规则C

访问 http://localhost/a.PNG 则匹配规则E,而不会匹配规则D,因为规则E不区分大小写。

访问 http://localhost/a.xhtml 不会匹配规则F和规则G,http://localhost/a.XHTML不会匹配规则G,因为不区分大小写。规则F,规则G属于排除法,符合匹配规则但是不会匹配到,所以想想看实际应用中哪里会用到。

访问 http://localhost/category/id/1111 则最终匹配到规则H,因为以上规则都不匹配,这个时候应该是nginx转发请求给后端应用服务器,比如FastCGI(php),tomcat(jsp),nginx作为方向代理服务器存在。

3,简单通用配置

静态动态分离,除了静态资源以外的请求都交给Tomcat处理.

location / {  
    proxy_pass http://localhost:8080
}  

location ^~ /static/ {  
    root /webroot/static/;  
}  

location ~* \.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {  
    root /webroot/res/;  
}  
Nginx 配置通配符虚拟主机 } 阅读详情

相关推荐

Tessent Atpg系列 第七章 Running ATPG Patterns -- 如何书写proc文件

本篇文章是记录Tessent scan ATPG系列 本文并非是对userguide的完全翻译,而是自己对userguide的理解,此外,有部分比较深入的内容可能需要后续实验验证。本系列并不对tessent scan做过多描述。 请勿随意转载: 优快云 博主: ciscomonkey一种是在使用tessent scan之后使用ATPG 另一种是使用第三方工具,如snps的DFTC之后使用tessent的ATPG。 这里我们仅仅介绍without tessent scan之后tessent ATPG:对于t

ciscomonkey的博客 7694

Nginx | nginx 代理匹配规则、通配符及示例

1.Nginx通配符匹配 按照匹配规则的优先级,由高到低: = 表示精确匹配 ^~ 表示uri以某个常规字符串开头,大多情况下用来匹配url路径,nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格,即所见即所得)。 ~ 正则匹配(区分大小写) ~* 正则匹配(不区分大小写) !~ 和 !~* 分别为区分大小写不匹配及不区分大小写不匹配 的正则 / 任何请求都会匹配 2. Nginx 通配符优先级 .....

wd520521的博客 1万+

Springboot计算机毕业设计校园树洞微信小程序【附源码】开题+论文+mysql+程序+部署

因此,开发一款专门针对校园用户的树洞微信小程序,为学生提供一个安全、私密、便捷的倾诉和交流平台,具有重要的现实意义和应用价值。通过本研究的实施,我们预期能够开发出一款功能全面、操作便捷的校园树洞微信小程序,为校园师生提供一个安全、私密、便捷的倾诉和交流平台。此外,通过不断优化和改进小程序的功能和服务,我们预期能够提升用户体验和满意度,推动校园树洞小程序的持续发展,并为校园生活的和谐与健康发展做出积极贡献。同时,通过不断优化小程序的功能和服务,提升用户体验和满意度,推动校园树洞小程序的广泛应用和持续发展。

光冯毕设程序 1666

Nginx 路径匹配规则,通配符

Nginx路径匹配符号 = 表示精确匹配 ^~ 表示uri以某个常规字符串开头,大多情况下用来匹配url路径,nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。 ~ 正则匹配(区分大小写) ~* 正则匹配(不区分大小写) !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则 / 任何请求都会匹配 符号的优先级

第五正 6万+

王珊数据库系统概论第5版视频教材

目录 隐藏 说明:本课程共包括1种电子书、84个高清视频(共68课时)、1种纸质书(赠品)。 网授课程 王珊《数据库系统概论》(第5版)网授精讲班【共68课时】 序号 名称 课时 1 第1章 绪 论(1) 00:32:25 2 第1章 绪 论(2) 00:17:03 3 第1章 绪 论(3) 00:50:19 4 第1章 绪 论(4) 00:20:37 5 第1章 绪 论(5) 00:24:47 6 第2章 关系数据库(1) 00:47:23 7 第2章 关系数据库(2) 00:14:48 8 第2章 关系

mrtaoy96的博客 1147

安卓APP通过CH340实现USB串口通信与设备检测

本文详细介绍了安卓APP通过CH340芯片实现USB串口通信与设备检测的完整流程。从CH340芯片的基础原理到开发环境搭建,再到串口通信的具体实现和错误处理,提供了全面的技术指导。文章还分享了USB热插拔处理、自动重连策略以及性能优化等实战技巧,帮助开发者高效完成安卓与嵌入式设备的通信开发。

weixin_42531925的博客 380

Nginx 转发匹配规则

转载自品略图书馆http://www.pinlue.com/article/2020/07/2104/2111056792221.html 一、正则表达式匹配 1.~ 为区分大小写匹配 2.~* 为不区分大小写匹配 3.!~ 和 !~* 分别为区分大小写不匹配及不区分大小写不匹配 二、文件及目录匹配 4.-f 和 !-f 用来判断是否存在文件 5.-d 和 !-d 用来判断是否存在目录 6.-e 和 !-e 用来判断是否存在...

yihuliunian的博客 1000

YOLOv11 改进策略:引入 NWD 损失函数提高小目标检测精度

YOLO(You Only Look Once)是一种实时目标检测算法,能够有效地预测图像中多个物体的边界框和类别概率。其高效性使它成为自动驾驶、视频监控等领域的理想选择。NWD 是一种基于 Wasserstein 距离的损失函数,其通过归一化处理,更好地评估预测框和真实框之间的几何偏差。这种方法不仅仅关注重叠区域,而且考虑中心点和尺度信息,提高了对小目标的敏感度。

走向CTO的路上... 2001

Nginx配置文件语法_通配符的使用

在 Nginx 配置文件中,http块是用于配置 HTTP 服务的主要块。它包含了与 HTTP 相关的所有配置项,如服务器、位置、代理、缓存等。http块可以包含多个server块,每个server块代表一个虚拟主机。全局指令:位于配置文件的最上面,影响整个 Nginx 实例的行为。user nginx;events块:用于配置 Nginx 的工作进程如何处理事件。events {http块:用于配置 HTTP 相关的设置,包括虚拟主机(server块)、代理设置、缓存配置等。http {

sq2048935747@163.com的博客 2404

MTK Linux DRM分析(八)- KMS drm_crtc.c

CRTC 在 Linux DRM 子系统中是显示控制的核心,负责时序生成、模式设置和管线的调度。理解其工作原理和 API 对于进行底层图形开发、调试显示问题或 simply understanding how your graphics stack works 都至关重要。

iTom1900 1349

Zabbix监控网络设备讲解

Zabbix监控网络设备讲解 本人在研究学习zabbix的时候,网上找过很多如何监控路由,交换,或者是防火墙的文章,但很多都比较散,这里我出一个大概的整合,方便大家参考和学习。本章就拿华三的交换机来做文章。 监控网络设备首先我们需要开启snmp协议,华三怎么开启snmp协议在我的博客里有写到,其次就是找到版本对应的OID,zabbix就是通过抓取设备的OID来做到监控网络设备的,当然zabbix也不仅仅只有通过snmp来监控设备,还有很多别的功能,这些功能我会在以后的博客里面一一更新 文章目录Zab

太阳了文哥的博客 3382

nginx配置proxy_pass URL末尾加与不加/(斜线)的区别 Nginx 路径符号匹配规则,通配符

nginx配置proxy_pass URL末尾加与不加/(斜线)的区别 nginx在配置proxy_pass的时候 URL结尾加斜线(/)与不加的区别和注意事项 假设访问路径的 /pss/bill.html 加/斜线的情况 location /pss/ { proxy_pass http://127.0.0.1:18081/; } 被代理的真实访问路径为:http://127.0.0....

ying83811的专栏 3690

【RT-DETR实战】RT-DETR实战手记(200):端侧实时目标检测,下一步往哪儿走?

昨天深夜调一个模型部署,在树莓派4B上跑RT-DETR-nano,帧率死活卡在8FPS上不去。量化也做了,算子也优化了,内存对齐也检查了,可就是离实时检测的底线还差一截。盯着终端里跳动的数字,突然意识到——我们可能正在接近当前技术路径的瓶颈。端侧实时目标检测的下一个突破口,恐怕不在现有框架的修修补补里。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 186

Nginx 的匹配规则通配符

Nginx的路径匹配符号: = 表示精准匹配 ^~ 表示url以某个常规字符串开头,大多数情况下用来匹配url路径,nginx不对请求做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格) ~ 表示正则匹配,区分大小写 ~* 表示正则匹配,不区分大小写 !~ 表示区分大小写不匹配的正则 !~* 表...

wanchaopeng的博客 6949

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【Nginx实战】location匹配规则详解

在Nginx配置中,location指令是最核心的一项配置,根据预先定义的URL匹配规则来接收用户发送的请求,根据匹配结果,将请求转发到后台服务器、非法的请求直接拒绝并返回403、404、500错误处理等。 1、location匹配规则规则说明: 符号 含义 = 字面精准匹配,如果匹配,则跳出匹配过程(不再进行正则匹配) ~ 开头区分大小写的正则匹配 ~* 开头不区分大小写的正则匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配url路径...

李维山的博客 3898

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

nginx中location的匹配规则

一、语法规则 location [=|~|~*|^~] /uri/ { … } 符号 含义 = 开头表示精确匹配 ^~ 开头表示 uri 以某个常规字符串开头,理解为匹配url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格) ~ 开头表示区分大小写的正则匹配...

涛 876

nginx location匹配及rewrite规则

location匹配规则 实例 server{ location = \ { [配置A] } location / { [配置B] } location = /images/ { [配置C] } localtion ~* \.(gif|jpg|png){ [配置D] } } location语法规则 语法: location = | ~...

KH_FC的博客 1087

nginx访问路径匹配方法

虽然这不是一种路径匹配方法,但值得一提的是,你可以使用@符号创建命名的location,这些位置不能直接由客户端请求访问,但可以在内部重定向或作为其他指令的目标。使用permanent关键字可以将重定向标记为永久重定向,这意味着浏览器会收到一个永久的响应,并记住新的URL,以后直接访问旧的URL时会直接跳转到新的URL。使用last关键字可以将重定向标记为临时重定向,这意味着浏览器会收到一个临时的响应,并自动重新发起新的请求到目标URL。其次是按文件中的顺序匹配的正则表达式(~和~*),先被定义的先匹配;

qinshi501的博客 2459

Nginx location匹配规则小记

官网参考链接 location匹配 匹配的符号说明 表示符号 符号说明 = 表示精确匹配,只有完全匹配上才能生效 ^~ 表示uri以某个常规字符串开头 ~ 正则匹配(区分大小写) ~* 正则 (不区分大小写) ! ~ 区分大小写不匹配的正则 ! ~ * 不区分大小写不匹配的正则 / 任何请求都会匹配 匹配优先级 1> 匹配=,如果匹配成功,则停止其他匹配 (先进行前缀匹配,再进行正则匹配) 2> 普通字符串的匹配,和其在配置文件中的顺序无关,而是与匹配

李凯的博客 456

Nginx 的 location 匹配规则

有全局正则(比如匹配静态资源)优先级比普通/abc/高导致 root 被篡改成一般,我们发现访问404的时候,但是资源文件还存在,那么可以去看一下error.log,然后找到原因。之前原因就出现在全局设置了root,然后直接定位到了另一个目录下,这样看上去存在的资源,在另一个目录里其实是不存在的。

花花鱼的专栏 220

Nginx快速入门:nginx各类转发、代理配置详解|location、proxy_pass参数详解(五)

上述案例我们讲解到了需要重定向跳转的问题,上述案例中可以看到我们重定向后地址栏的地址也发生了变化,这实际上也暴露了一些后台服务的地址信息,如果我们想地址不变化,内容进行转发即可,要怎么实现呢?这就需要详细学习nginx 重定向的内容,下一章我们将针对这块内容继续攻克。

55555的博客 1万+

nginx 常见正则匹配符号表示

https://www.cnblogs.com/netsa/p/6383094.html 1、^: 匹配字符串的开始位置;   2、 $:匹配字符串的结束位置;   3、.*:   .匹配任意字符,*匹配数量0到正无穷;   4、\. 斜杠用来转义,\.匹配 .    特殊使用方法,记住记性了;   5、(值1|值2|值3|值4):或匹配模式,...

weixin_34405332的博客 531

Nginx快速入门:nginx各类转发、代理配置详解|location、proxy_pass参数详解(五)_nginx转发配置策略

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

m0_60388292的博客 1885
上一篇: 阿里云服务器,云计算活动,服务器两折起
下一篇: O2O,B2B,C2C等相关概念介绍
hwmhehe
博客等级 码龄13年 86粉丝 106原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值