nginx的location优先级
在nginx配置文件中,location主要有这几种形式:
1. 正则匹配 location ~ /abc { }
2. 不区分大小写的正则匹配 location ~* /abc { }
3. 匹配路径的前缀,如果找到停止搜索 location ^~ /abc { }
4. 精确匹配 location = /abc { }
5.普通路径前缀匹配 location /abc { }
先说优先级
4 > 3 > 2 > 1 > 5
再来解释一下各个格式
location = / {
# 精确匹配 / ,主机名后面不能带任何字符串
[ configuration A ]
}
location / {
# 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求
# 但是正则和最长字符串会优先匹配
[ configuration B ]
}
location /documents/ {
# 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索
# 只有后面的正则表达式没有匹配到时,这一条才会采用这一条
[ configuration C ]
}
location ~ /documents/Abc {
# 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索
# 只有后面的正则表达式没有匹配到时,这一条才会采用这一条
[ configuration CC ]
}
location ^~ /p_w_picpaths/ {
# 匹配任何以 /p_w_picpaths/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。
[ configuration D ]
}
location ~* \.(gif|jpg|jpeg)$ {
# 匹配所有以 gif,jpg或jpeg 结尾的请求
# 然而,所有请求 /p_w_picpaths/ 下的图片会被 config D 处理,因为 ^~ 到达不了这一条正则
[ configuration E ]
}
location /p_w_picpaths/ {
# 字符匹配到 /p_w_picpaths/,继续往下,会发现 ^~ 存在
[ configuration F ]
}
location /p_w_picpaths/abc {
# 最长字符匹配到 /p_w_picpaths/abc,继续往下,会发现 ^~ 存在
# F与G的放置顺序是没有关系的
[ configuration G ]
}
location ~ /p_w_picpaths/abc/ {
# 只有去掉 config D 才有效:先最长匹配 config G 开头的地址,继续往下搜索,匹配到这一条正则,采用
[ configuration H ]
}
再来分析一下A-H配置的执行顺序。
1. 下面2个配置同时存在时
location = / {
[ configuration A ]
}
location / {
[ configuration B ]
}
此时A生效,因为=/优先级高于/
2. 下面3个配置同时存在时
location /documents/ {
[ configuration C ]
}
location ~ /documents/ {
[configuration CB]
}
location ~ /documents/abc {
[ configuration CC ]
}
当访问的url为/documents/abc/1.html,此时CC生效,首先CB优先级高于C,而CC更优先于CB
3. 下面4个配置同时存在时
location ^~ /p_w_picpaths/ {
[ configuration D ]
}
location /p_w_picpaths/ {
[ configuration F ]
}
location /p_w_picpaths/abc {
[ configuration G ]
}
location ~ /p_w_picpaths/abc/ {
[ configuration H ]
}
当访问的链接为/p_w_picpaths/abc/123.jpg时,此时D生效。虽然4个规则都能匹配到,但^~优先级是最高的。
若^~不存在时,H优先,因为~/p_w_picpaths/ > /p_w_picpaths/
而/p_w_picpaths/和/p_w_picpaths/abc同时存在时,/p_w_picpaths/abc优先级更高,因为后者更加精准
4. 下面两个配置同时存在时
location ~* \.(gif|jpg|jpeg)$ {
[ configuration E ]
}
location ~ /p_w_picpaths/abc/ {
[ configuration H ]
}
当访问的链接为/p_w_picpaths/abc/123.jpg时,E生效。因为上面的规则更加精准。
转载于:https://blog.51cto.com/jacksoner/1982245
nginx的location优先级相关推荐
- nginx location匹配优先级_一分钟搞清楚:Nginx之Location优先级
Location表达式类型 ~ 表示执行一个正则匹配,区分大小写 ~* 表示执行一个正则匹配,不区分大小写 ^~ 表示普通字符匹配.使用前缀匹配.如果匹配成功,则不再匹配其他location = 进行 ...
- Nginx 的 Location 配置指令块
最近一段时间在学习 Nginx ,以前一直对 Nginx 的 Location 配置很头大,最近终于弄出点眉目.总结如下: nginx 配置文件,自下到上分为三种层次分明的结构: | http ...
- Nginx配置location及rewrite规则
Nginx配置location及rewrite规则 示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location ...
- Nginx之location详解
root location中root指定的只是相对路径,需要和路径结合起来映射地址,比如 location ^~/static/ { ## 这里的root需要和路径结合使用,即是映射的文件位置为 /u ...
- Nginx的location匹配与rewrite重写跳转
目录 Nginx的location匹配与rewrite重写跳转 一.常用的Nginx正则表达式 二.location 分类 location常用的匹配规则 优先级 location示例说明 Rewri ...
- nginx的location和rewrite
1 Nginx rewrite基本语法 Nginx的rewrite语法其实很简单.用到的指令无非是这几个 set if return break rewrite 麻雀虽小,可御可萝五脏俱全.只是简单的 ...
- Nginx之Location
nginx Location 官网文档 语法 语法介绍 location [=|~|~*|^~|@] uri { ... } location @name { ... } 一个 location 关键 ...
- nginx的location
前言 Nginx的location就相当于url路由,Nginx根据location的配置来决定究竟如何处理一个请求. Nginx通过将一个请求的url与location进行对比,来决定将该请求扔到哪 ...
- Nginx的location的规则及斜线的重要性
目录 1.location规则 1.1.常用表达式示例 2.表达式优先级 3.location中斜线的位置的重要性 3.1.代理模式 3.2 本地资源模式 1.location规则 符号 含义 = = ...
- nginx之location匹配规则
Nginx之location 匹配规则详解 有些童鞋的误区 1. location 的匹配顺序是"先匹配正则,再匹配普通". 矫正: location 的匹配顺序其实是" ...
最新文章
- How Tomcat works — 四、tomcat启动(3)
- CPU的基本结构和功能
- java数据结构读书笔记--引论
- delphi 怎么获取工程版本号
- ThinkPHP+AJAX三级联动
- Spring Boot 学习笔记(三)Spring boot 中的SSM
- (转)Oracle中实现行列转换的方法
- 【文末福利】图论算法:稳定婚姻问题,如何找到最适合自己的另一半
- webstore安装过程 0913
- 在NVIDIA Jetson TX2上安装TensorFlow
- 熊顿 - 滚蛋吧!肿瘤君(2013年4月22日)
- 如何使用ES6模块export,export default和import
- python 字符串转字节_【转】python中的字符串和字节串
- 不写代码,把网站速度优化 10 倍~~
- 为基于GTK/CLUTTER的库增加GJS支持
- Mac将本地文件上传到服务器以及从服务器下载文件到本地
- 【ITool】mybatis-generator-annotation
- 磁盘列阵(RAID)
- 【REACT-受控组件和非受控组件】
- .max文件导入Unity出现异常
热门文章
- 《Android音视频开发》封面由你来投票
- java基础---Java---面试题---银行业务调度系统(线程同步锁、枚举、线程池)
- linux的tar命令压缩26g文件,如何使用Linux上的tar命令压缩和解压缩文件 | MOS86
- 数据算法_JS数据结构与算法_排序和搜索算法
- html打开本地excel文件夹,html使用excel表格数据库-html读取本地excel文件并展示
- 网络安全法对计算机人员的影响,网络安全法的基本原则-网络安全论文-计算机论文.docx...
- 安卓日记本设计内容介绍_天一 | 教你捷径,使用VB开发安卓程序!
- win7文件夹加密软件_神盾文件夹加密软件免费下载_电脑文件夹加密软件下载【文件管理】...
- 代发核心期刊骗局_警惕“代发论文”骗局,落入骗子圈套
- JQuery 添加元素appendf 后\prepend前,before 前\after 后,删除元素remove\empty