千家信息网

Nginx配置之location的匹配优先级浅析

发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,前言Nginx 配置中的 server 块中的 location 用来匹配请求 URI,以便对不通的 URI 进行不通的处理。location 类型 和 成功匹配的条件location = expre
千家信息网最后更新 2025年02月08日Nginx配置之location的匹配优先级浅析

前言

Nginx 配置中的 server 块中的 location 用来匹配请求 URI,以便对不通的 URI 进行不通的处理。

location 类型 和 成功匹配的条件

  • location = expression {} 精准匹配,只有 URI 和 expression 完全相同,才算匹配成功;
  • location expression {} 普通匹配,只要 URI 前部分的字符与 expression 相同就算匹配成功;
  • location ^~ expression {} 普通匹配,只要 URI 前部分字符与 expression 相同就算匹配成功;
  • location ~ regex {} 正则匹配(区分大小写);
  • location ~* regex {} 正则匹配(不区分大小写);

总结可分为三大类:精准匹配、普通匹配和正则匹配。

匹配逻辑与优先级

对于一个进入 Nginx 的请求来讲,其 URI 可能符合多个 location 的匹配条件,但这条请求最终只会被一个 location 逻辑所处理(重定向不算),那么,匹配时肯定有优先级之分。Nginx 的匹配逻辑是这样的:

1. 执行精准匹配

若请求 URI 与 location = 相匹配(符合精准匹配条件),则执行该 location 的内容,不再进行其他匹配,否则见下一条。

2. 执行普通匹配

接下来 Nginx 会将 URI 与所有普通匹配的 location 进行比较(无论是 ^~ 类型还是无符号类型),然后找出匹配度最高的 location ,若该 location 为 ^~ 类型,则停止匹配,执行该 location 内容;若匹配度最高的 location 为无符号类型,则保留这个无符号 location ,继续进行下面的正则匹配;若 URI 不符合任何普通匹配 location 的条件,则直接进入下一步。

3. 执行正则匹配

正则的匹配与 location 的顺序相关,Nginx 会从上至下进行匹配,若匹配到一个 location ,则执行该 location 逻辑,忽略后面所有的正则 location ,终止匹配;若一个正则都没匹配上,则执行之前保留的那个无符号 location ,若之前没有保留,则直接返回 404。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。

正则 普通 类型 精准 成功 内容 条件 符号 逻辑 相同 优先级 最高 大小 字符 部分 处理 学习 配置 接下来 三大 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器端口怎么测试通不通 施乐700服务器怎么重装 网易版我的世界服务器内存 指南针软件开发有限公司 广州大象互联网科技有限公司电话 有哪些服务器开局送神兽 优酷软件开发招生宣传视频 excel公式反算数据库 联合国商品与贸易数据库官网 关系型数据库的发明人科德视频 永恒之塔服务器能创建 hp服务器 增加硬盘 新媒体网络技术人员原创作品 上海夺汇网络技术石家庄待遇 网络安全运营工程师题目 数据库查询某个时间段的语句 应用另一个表格中的数据库 数据库系统 需求分析 网络安全背景图ppt 网络安全指挥中心建设视频 服务器沙雕管理视频 兴盛唐厦门网络技术公司 网络安全ppt课件幼儿园 南京工程学院网络安全考试 欺诈服务器 港股网络安全股 软件开发合同技术路线怎么写 分散式数据库 上海巡检软件开发服务 网易我的世界服务器安全区
0