登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
nginx中的路径匹配规则详解(location规则) ...
nginx中的路径匹配规则详解(location规则)
[ 复制链接 ]
慎气
2025-6-2 22:56:30
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
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
中的
路径
匹配
相关帖子
MySQL EXPLAIN中的key_len:精准掌握索引使用情况
读社会工程:安全体系中的人性漏洞(第2版)05发起攻击
读社会工程:安全体系中的人性漏洞(第2版)06MAPP
数据血缘图在数据错误追溯中的应用指南
C语言中的数据存储
快速了解Linux中的lsmod命令
Fiddler自定义规则保存图片和提示The system proxy was changed自动重连
rllm中的推理流程
nginx解决进程内存占用翻倍
SQL中的CTE用法初步(Common Table Expression公共表表达式)
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
MySQL EXPLAIN中的key_len:精准掌握索引使用情况
1
1001
王平莹
2025-11-17
安全
读社会工程:安全体系中的人性漏洞(第2版)05发起攻击
0
38
吁寂
2025-11-18
业界
读社会工程:安全体系中的人性漏洞(第2版)06MAPP
1
31
擒揭
2025-11-19
安全
数据血缘图在数据错误追溯中的应用指南
2
1010
这帜
2025-11-21
业界
C语言中的数据存储
0
678
坟菊
2025-11-23
业界
快速了解Linux中的lsmod命令
2
307
靳谷雪
2025-11-25
安全
Fiddler自定义规则保存图片和提示The system proxy was changed自动重连
0
929
郜庄静
2025-11-26
业界
rllm中的推理流程
0
119
轨项尺
2025-12-02
业界
nginx解决进程内存占用翻倍
0
263
疝镜泛
2025-12-04
业界
SQL中的CTE用法初步(Common Table Expression公共表表达式)
0
612
尸酒岐
2025-12-05
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
签约作者
程序园优秀签约作者
发帖
慎气
2025-6-2 22:56:30
关注
0
粉丝关注
21
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845356
3934307807
991122
4
xiangqian
638210
5
宋子
9987
6
闰咄阅
9991
7
刎唇
9993
8
俞瑛瑶
9998
9
蓬森莉
9952
10
匝抽
9986
查看更多