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配置https原理及实现过程详解
Mar 31 Servers
小程序后台PHP版本部署运行 LNMP+WNMP
Apr 01 Servers
Nginx速查手册及常见问题
Apr 07 Servers
阿里云日志过滤器配置日志服务
Apr 09 Servers
阿里云ECS云服务器快照的概念以及如何使用
Apr 21 Servers
Windows server 2012 配置Telnet以及用法详解
Apr 28 Servers
Vscode中SSH插件如何远程连接Linux
May 02 Servers
Nginx 配置 HTTPS的详细过程
May 30 Servers
WinServer2012搭建DNS服务器的方法步骤
Jun 10 Servers
shell进度条追踪指令执行时间的场景分析
Jun 16 Servers
windows系统安装配置nginx环境
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 5.5 新特性
2013/07/02 PHP
Thinkphp整合微信支付功能
2016/12/14 PHP
javascript页面动态显示时间变化示例代码
2013/12/18 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
2016/08/02 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
NodeJS遍历文件生产文件列表功能示例
2017/01/22 NodeJs
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
vue-axios使用详解
2017/05/10 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
JS实现获取汉字首字母拼音、全拼音及混拼音的方法
2017/11/14 Javascript
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
2020/03/12 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
2020/07/20 Javascript
Python入门篇之面向对象
2014/10/20 Python
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
python检测某个变量是否有定义的方法
2015/05/20 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
Django实现单用户登录的方法示例
2019/03/28 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
Python tkinter实现图片标注功能(完整代码)
2019/12/08 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
2020/02/20 Python
Mankind西班牙男士护肤品网站:购买皮肤护理、护发和剃须
2017/04/27 全球购物
应届实习生的自我评价范文
2014/01/05 职场文书
一年级学生评语
2014/04/23 职场文书
雏鹰争章活动总结
2014/05/09 职场文书
今冬明春火灾防控工作方案
2014/05/29 职场文书
社区创先争优承诺书
2014/08/30 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
委托书格式范文
2015/01/28 职场文书
呼啸山庄读书笔记
2015/06/29 职场文书