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 配置通配符虚拟主机 } 阅读详情

相关推荐

C#与发那科机器人通信实战:从SDK配置到机械臂控制

本文详细介绍了如何使用C#与发那科机器人进行通信,从SDK配置到机械臂控制的完整实战流程。内容包括环境准备、通信连接建立、机械臂运动控制、异常处理与状态监控,以及高级功能实战,帮助开发者快速掌握工业机器人编程技术。

weixin_42524276的博客 458

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

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

wd520521的博客 1万+

实验六 有源滤波器

实验六 有源滤波器一、实验目的二、仪器及设备三、预习要求画出三个电路的幅频特性曲线。四、实验内容l.低通滤波电路2.高通滤波电路3.带阻滤波电路(1)实测电路中心频率。(2)以实测中心频率为中心,测出电路幅频特性。五、实验报告六,仿真图:图 1 低通滤波器仿真图图 2 高通滤波器仿真图图 3 带阻滤波电路仿真图 一、实验目的 1.熟悉有源滤波电路构成及其特性。 2.学会测量有源滤波电路幅频特性。 二、仪器及设备 1.示波器 2.信号发生器 三、预习要求 1.预习教材有关滤波电路

胡毛毛的博客 1万+

Nginx 路径匹配规则,通配符

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

第五正 6万+

从立创商城到Cadence:手把手教你实现封装格式的精准迁移

本文详细介绍了如何从立创商城获取元器件封装并精准迁移至Cadence Allegro的全流程。通过实战案例MAX31865ATP+T芯片,逐步解析Altium Designer格式转换、Cadence环境配置、封装导入验证等关键步骤,提供常见问题解决方案和效率提升技巧,帮助硬件工程师实现封装格式的高效迁移。

weixin_42519985的博客 216

下载MNIST数据集并使用python将数据转换成NumPy数组(源码解析)

下载MNIST数据集并使用python将数据转换成NumPy数组首先来分析init_mnist函数接下来继续分析load_mnist函数实现数据集转换的python脚本的代码显示MNIST图像并确认数据 下载MNIST数据集并将数据转换成NumPy数组的Python脚本里面最重要的就是load_mnist函数,其他项目想要调用数据集的话,就可以调用load_mnist函数,得到一个字典类型的数据,字典的值是一个Numpy数组。 这些过程是如何实现的,现在开始逐字逐句分析源码: 在load_mnist函数中第

及时总结 4268

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

【如何利用扩展卡尔曼滤波解决跟踪毫米波雷达目标】

笛卡尔坐标系(非极坐标系):使用两个垂直的轴(通常是x轴和y轴)来确定一个点的位置。你沿着这两个轴移动确定的距离来找到这个点。极坐标系:使用一个角度和一个距离来确定一个点的位置。首先,你转到一个特定的方向(角度),然后沿着那个方向移动确定的距离来找到这个点。希望这个例子能帮助你理解两种坐标系的基本概念!

小秋 AI SLAM 入门实战教程 885

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

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

sq2048935747@163.com的博客 2404

“华为杯”研究生数学建模竞赛2017年-【华为杯】B题:面向下一代光通信的 VCSEL 激光器仿真模型

得出以下主要结论:在相同的偏置电流条件下,随着温度的升高,带宽的峰值向。在相同的温度下,随着电流的增大,带宽的峰值越小且曲线由波峰形状。方案,包括可能的数学公式,不同温度和偏置电流下的带宽响应曲线,并与问题。线,得出以下主要结论:在相同的偏置电流条件下,随着温度的升高,带宽的峰。在相同的温度下,随着电流的增大,带宽的峰值越小且曲线由波峰形状逐渐变得。得的激光器特性曲线和模型中仿真得到的特性曲线,之后,可以将两组曲线的差。说明的是,由于数值优化算法的成功与否很大程度上依赖于初始参数的猜测,参。

getusushu的博客 98

【芯片设计- RTL 编译与仿真 1.2 -- Visualizer 常用使用命令】

打开波形后,如果想要看到所有信号的数据,可以点击下图中红框中的按钮,因为默认verdi 默认并不是显示所用信号。如果想统计某一个信号中有多少笔数据时,可以使用 Expression->Edege Count 功能。如下图所示,如果没有打开前导0的功能时,当某一笔数据位0时,只会显示1个0。如果需要将波形的数据导出到文本文件时,可以按照下面步骤进行。打开前导0功能之后,会根据数据位宽来显示对应0的个数。

CodingCos的博客 2049

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

2024.12.29 【RNA-seq】Rawdata数据缺失问题与解决方案

Fastq格式是一种用于存储高通量测序数据的文件格式,包含序列和相应的质量信息。第一行以开头,后接序列标识符;第二行是测序的DNA序列;第三行以开头,可能会跟随序列标识符;第四行是对应的质量值,以ASCII字符表示。Rawdata的数据完整性通常情况下是没有问题的,但我们仍然需要对下机数据进行验证,确保后续分析的正常进行,好的分析习惯可以提高整体的分析效率,避免很多不必要的麻烦。

1111

Nginx 的匹配规则通配符

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

wanchaopeng的博客 6949

计算机控制技术及应用

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

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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

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

李维山的博客 3898

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

nginx中location的匹配规则

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

涛 876

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

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、付费专栏及课程。

余额充值