nginx location优先级的深入讲解


Posted in Servers onMarch 31, 2021

location表达式类型

~ 表示执行一个正则匹配,区分大小写
~* 表示执行一个正则匹配,不区分大小写
^~ 表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其他location。
= 进行普通字符精确匹配。也就是完全匹配。
@ "@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files

location优先级说明

在nginx的location和配置中location的顺序没有太大关系。正location表达式的类型有关。相同类型的表达式,字符串长的会优先匹配。

以下是按优先级排列说明:

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

location优先级示例 配置项如下:

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 location优先级的文章就介绍到这了,更多相关nginx location优先级内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
Nginx的rewrite模块详解
Mar 31 Servers
nginx优化的六点方法
Mar 31 Servers
查看nginx配置文件路径和资源文件路径的方法
Mar 31 Servers
Nginx 过滤静态资源文件的访问日志的实现
Mar 31 Servers
小程序后台PHP版本部署运行 LNMP+WNMP
Apr 01 Servers
Dashboard管理Kubernetes集群与API访问配置
Apr 01 Servers
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
Apr 07 Servers
Windows Server 2019 安装DHCP服务及相关配置
Apr 28 Servers
如何Tomcat中使用ipv6地址
May 06 Servers
聊聊配置 Nginx 访问与错误日志的问题
May 25 Servers
linux目录管理方法介绍
Jun 01 Servers
nginx之queue的具体使用
Jun 28 Servers
Nginx反爬虫策略,防止UA抓取网站
Mar 31 #Servers
Mac环境Nginx配置和访问本地静态资源的实现
Mar 31 #Servers
Nginx域名转发使用场景代码实例
Mar 31 #Servers
提升Nginx性能的一些建议
Nginx反向代理及负载均衡如何实现(基于linux)
Mar 31 #Servers
Nginx配置80端口访问8080及项目名地址方法解析
Mar 31 #Servers
Nginx配置https原理及实现过程详解
Mar 31 #Servers
You might like
php MySQL与分页效率
2008/06/04 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
基于php 随机数的深入理解
2013/06/05 PHP
PHP按行读取文件时删除换行符的3种方法
2014/05/04 PHP
PHP自定义函数实现数组比较功能示例
2017/10/19 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
Thinkphp5 自定义上传文件名的实现方法
2019/07/23 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
js实现漂浮回顶部按钮实例
2015/05/06 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
vue,angular,avalon这三种MVVM框架优缺点
2016/04/27 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
elementui实现预览图片组件二次封装
2020/12/29 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
python 回调函数和回调方法的实现分析
2016/03/23 Python
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
Python爬虫基础之XPath语法与lxml库的用法详解
2018/09/13 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
基于Python实现下载网易音乐代码实例
2020/08/10 Python
python 6种方法实现单例模式
2020/12/15 Python
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
从零实现一个自定义html5播放器的示例代码
2017/08/01 HTML / CSS
解决HTML5中滚动到底部的事件问题
2019/08/22 HTML / CSS
采用专利算法搜索最廉价的机票:CheapAir
2016/09/10 全球购物
SportsDirect.com马来西亚:英国第一体育零售商
2018/11/21 全球购物
工业学校毕业生自荐书
2014/01/03 职场文书
交通事故赔偿协议书范本
2014/04/15 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
侵犯商业秘密的律师函
2015/05/27 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
Win11控制面板快捷键是什么?Win11打开控制面板的方法汇总
2022/07/07 数码科技