Location表达式类型

  • ~ 表示执行一个正则匹配,区分大小写
  • ~* 表示执行一个正则匹配,不区分大小写
  • ^~ 表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其他location
  • = 进行普通字符精确匹配。也就是完全匹配

Location优先级

在nginx的location和配置中location的顺序没有太大关系,与location表达式的类型有关。相同类型的表达式,字符串长的会优先匹配。以下是按优先级排列说明:

  1. 等号类型(=)的优先级最高。一旦匹配成功,则不再查找其他匹配项。
  2. ^~类型表达式。一旦匹配成功,则不再查找其他匹配项。
  3. 正则表达式类型(~ ~*)的优先级次之。如果有多个location的正则能匹配的话,则使用正则表达式最长的那个。
  4. 常规字符串匹配类型。按前缀匹配。

示例

配置项如下:

location = / { # 仅仅匹配请求 / [ configuration A ]}location / { # 匹配所有以 / 开头的请求。 # 但是如果有更长的同类型的表达式,则选择更长的表达式。 # 如果有正则表达式可以匹配,则优先匹配正则表达式。 [ configuration B ]}location /documents/ { # 匹配所有以 /documents/ 开头的请求。 # 但是如果有更长的同类型的表达式,则选择更长的表达式。 # 如果有正则表达式可以匹配,则优先匹配正则表达式。 [ configuration C ]}location ^~ /images/ { # 匹配所有以 /images/ 开头的表达式,如果匹配成功,则停止匹配查找。 # 所以,即便有符合的正则表达式location,也不会被使用 [ configuration D ]}location ~* \.(gif|jpg|jpeg)$ { # 匹配所有以 gif jpg jpeg结尾的请求。 # 但是 以 /images/开头的请求,将使用 Configuration D [ configuration E ]}

请求匹配示例:

/ -> configuration A/index.html -> configuration B/documents/document.html -> configuration C/images/1.gif -> configuration D/documents/1.jpg -> configuration E

以上的匹配和在配置文件中定义的顺序无关。另附上nginx配置文件超全配置详情(实用建议收藏):点击获取收藏!

推荐阅读

  • DataFlux 采集 Nginx 监控指标
  • 高并发下nginx调优实战
  • Nginx配置文件nginx.conf详解
  • 六大接口管理平台,总有一款适合你的!
长按,扫码,关注及时收看更多精彩内容

nginx location匹配优先级_一分钟搞清楚:Nginx之Location优先级相关推荐

  1. 正则表达式里转义字符_五分钟搞定正则表达式,如果没搞定,再加两分钟

    五分钟搞定正则表达式,如果没搞定,再加两分钟 [这是 ZY 第 18 篇原创文章] 文章概览 一.正则表达式介绍 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简 ...

  2. 逗号后面统一加空格_十分钟搞定字幕,教你做加字幕的“快手菜”

    平台上许多同学有疑问:做视频是否有加字幕的必要呢? 其实除了外语需要翻译.语速过快加字幕方便理解.普通话不标准等情况之外,还是建议有余力的同学可以加上字幕,提升用户的观看体验. 那么问题来了,存在以下 ...

  3. nginx之30分钟搞定nginx反向代理和负载均衡

    1. 什么是代理服务器 1.1. 代理服务器的好处 代理服务器架构 1)提高访问速度 由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中 ...

  4. python中cgi到底是什么_十分钟搞懂什么是CGI(转)

    原文:CGI Made Really Easy,在翻译的过程中,我增加了一些我在学习过程中找到的更合适的资料,和自己的一些理解.不能算是严格的翻译文章,应该算是我的看这篇文章的过程的随笔吧. CGI真 ...

  5. python网络编程自学_五分钟搞定Python网络编程实现TCP和UDP连接

    Python网络编程实现TCP和UDP连接, 使用socket模块, 所有代码在python3下测试通过. 实现TCP#!/usr/bin/env python3 # -*- coding: utf- ...

  6. distinct sql用法_十分钟搞懂SQL数据分析

    风控说 由上海新金融风险实验室出品

  7. lombok原理_十分钟搞懂Lombok使用与原理

    1 简介 Lombok是一款好用顺手的工具,就像Google Guava一样,在此予以强烈推荐,每一个Java工程师都应该使用它.Lombok是一种Java™实用工具,可用来帮助开发人员消除Java的 ...

  8. python读取matlab数据_两分钟搞定Python读取matlab的.mat数据

    Matlab是学术界非常受欢迎的科学计算平台,matlab提供强大的数据计算以及仿真功能.在Matlab中数据集通常保存为.mat格式.那么如果我们想要在Python中加载.mat数据应该怎么办呢?所 ...

  9. python爬虫之bs4库_三分钟搞定bs4库的解析器

    The Dormouse's story Once upon a time there were three little sisters; and their names were Elsie, L ...

最新文章

  1. 写给新手:2021版调参上分手册!
  2. SAP RETAIL 初阶之使用事务代码WRFMATCOPY创建商品主数据
  3. HDU-1128 Self Numbers 筛选
  4. 编程方法学13:字符串处理
  5. 浙大python判断两个字符串是否为变位词_python数据结构与算法 变位词
  6. 基于 Apache Flink + Hologres 的实时推荐系统架构解析
  7. Navigator 对象,能够清楚地知道浏览器的相关信息
  8. 把握数据库发展趋势 DBA应如何避免“踩坑”?
  9. linux卸载emc硬盘,关于EMC symmetrix新分磁盘在Linux主机无法fdisk? 求助
  10. SCM introduction
  11. 拓端tecdat|R语言基于协方差的结构方程拟合的卡方检验
  12. freetds mysql_关于 freetds pymssql 的安装部署
  13. python turtle画小狗_python-turtle-画雪花
  14. 如何在Internet Explorer中使用VARCHART XGantt控件?
  15. 计算机安全设置超链接设置,word做超链接操作方法
  16. 报错the confidence keyword argument is only available if OpenCV is installed的解决方法
  17. 保姆级教程:NobePay从注册到充值开卡全过程
  18. html div文字竖向显示,css怎么让文字竖着?
  19. 新手如何使用Cheat Engine (CE) 来修改“我的世界“?
  20. MySQL多表联表查询

热门文章

  1. 小米与格力的10亿豪赌!
  2. AFIO时钟何时开启
  3. python 柱状图 居中_python matplotlib模块: bar(柱状图)
  4. python中sys模块有什么用_Python sys模块用法详解
  5. 直接学python行不行_是否可以直接学python或者java而不学c++?
  6. cve-2020-0796_SMBGhost 漏洞 CVE20200796 的PoC 已发布,攻击现身
  7. 简述:B2B、B2C、C2C、O2O
  8. 指定端口传输_高速数字传输链路测试 - 高速数字电路仿真设计与测试技术发展趋势综述(二)...
  9. 直播预告 | 如何在有限数据下实现资讯类网站海量信息自动分类
  10. 链表的基本操作 java_JAVA实现单链表的基本操作