登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP网盘
VIP申请
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
nginx中的路径匹配规则详解(location规则) ...
nginx中的路径匹配规则详解(location规则)
[ 复制链接 ]
慎气
2025-6-2 22:56:30
Nginx的路径匹配规则
Nginx的匹配规则用location指令来实现,Nginx 的location指令用于匹配请求的 URI(请求路径),并根据匹配结果执行特定的处理指令。location是实现动静分离、URL 重写、反向代理等功能的核心模块之一.
location匹配规则分类
location支持多种匹配模式,包括精确匹配、前缀匹配、正则匹配等
精确匹配(=)
优先级最高
。当请求的URI与location后面的字符串完全相同时,Nginx会选择这个location块进行处理。(这个好理解,就是路径完全匹配,一模一样,优先级最高)
示例
location = /favicon.ico {
# 处理/favicon.ico的请求
}
复制代码
只有当请求URI严格为/favicon.ico时,上述location块才会被使用。
最长前缀匹配(^~)
第二优先级
。请求的URI以某个location后面的字符串开头,并且这个字符串是最长的(或者使用了^~修饰符),Nginx会选择这个location块。但请注意,^~修饰符实际上会停止后续的正则匹配搜索。
示例
location ^~ /hello {
return 601;
}
location ^~ /hellow {
return 602;
}
location ^~ /hello/world {
return 603;
}
location ~ /hello {
return 604;
}
复制代码
对于请求/hello,满足 601和 604,实际返回601,就是因为^~优先级高于正则匹配;
对于请求/hellow,满足 601和 602,实际返回602,因为最长前缀匹配原则;
正则表达式匹配(~和~*)
第三优先级
。正则表达式匹配允许定义更复杂的URI匹配模式。~表示区分大小写的正则匹配,而~*表示不区分大小写的正则匹配。
Nginx会按照配置文件中的顺序逐个检查正则表达式location块,直到找到第一个匹配的块。因此,正则表达式的顺序很重要。
示例:
location ~ \.(gif|jpg|png)$ {
# 处理以.gif、.jpg或.png结尾的请求(区分大小写)
}
location ~* \.(GIF|JPG|PNG)$ {
# 处理以.GIF、.JPG或.PNG结尾的请求(不区分大小写)
}
复制代码
对于请求/images/photo.jpg,第一个location块将被匹配(如果请求是区分大小写的)。
普通前缀匹配(无修饰符)
第四优先级
。普通前缀匹配也按照配置文件中出现的先后顺序进行匹配,先出现的location指令优先匹配。
示例:
location /hello {
return 601;
}
location /hellow {
return 602;
}
复制代码
对于请求/hellow,满足 601和 602,实际返回602,证明满足长前缀匹配原则
默认匹配(/)
优先级最低
。如果请求的URI与任何特定的location块都不匹配,Nginx将使用默认的location块(如果有的话)。通常,默认的location块是一个不带任何修饰符的location /块。
示例:
location / {
# 处理所有其他请求
}
复制代码
总结
Nginx的location匹配规则优先级可以总结为:
精确匹配(=)
最长前缀匹配(^~),但会停止后续的正则匹配搜索
正则表达式匹配(~和~*),按配置顺序
普通前缀匹配(无修饰符),也按配置顺序
默认匹配(/)
注意事项
正则匹配与顺序:正则 location 的匹配顺序很重要,因为 Nginx 会按照配置文件中定义的顺序进行匹配。
proxy_pass 的路径替换:在配置 proxy_pass 时,需要注意 location 后面的 URI 是否包含斜杠(/),这会影响请求的转发路径。通常建议 location 和 proxy_pass 要么都加斜杠,要么都不加。
性能优化:将精确匹配放在前面,可以减少不必要的正则匹配,提高 Nginx 的处理效率。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
规则
nginx
中的
路径
匹配
相关帖子
nginx健康检查详解
伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 04
Nginx反向代理Kafka集群
下划线字段在golang结构体中的应用
伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 05
伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 06
大/小模型在视频分析领域中的联合应用
【LeetCode 437】算法:路径总和 III
Mock 在 API 研发中的痛点、价值与进化及Apipost解决方案最佳实践
KMP 模式串匹配算法讲解
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
nginx健康检查详解
0
619
鞭氅
2025-08-14
安全
伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 04
0
476
孜稞
2025-08-16
业界
Nginx反向代理Kafka集群
0
399
臧莞然
2025-08-16
业界
下划线字段在golang结构体中的应用
0
599
寿爹座
2025-08-17
安全
伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 05
0
723
赖秀竹
2025-08-20
业界
伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 06
0
684
史穹逊
2025-08-20
业界
大/小模型在视频分析领域中的联合应用
0
177
焦尔蕾
2025-08-22
科技
【LeetCode 437】算法:路径总和 III
0
309
甄婉丽
2025-08-27
业界
Mock 在 API 研发中的痛点、价值与进化及Apipost解决方案最佳实践
0
199
巩芷琪
2025-08-29
安全
KMP 模式串匹配算法讲解
0
286
赶塑坠
2025-09-02
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
慎气
2025-6-2 22:56:30
关注
0
粉丝关注
17
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
黎瑞芝
9990
杭环
9988
4
凶契帽
9988
5
氛疵
9988
6
虽裘侪
9986
7
猷咎
9986
8
接快背
9986
9
里豳朝
9986
10
肿圬后
9986
查看更多