大家好,我是 17。

今天和大家详细聊聊 nginx 的 location 匹配规则

location 匹配规则

@ 匹配规则在后面的 try_files 中有举例

location 按如下优先级匹配

  1. = 绝对匹配,一个字符也不能差
  2. ^~ 前缀匹配
  3. ~(区分大小写), ~*(不区分大小写) 正则匹配
  4. 普通前缀匹配

2,4的匹配是匹配最长优先。
3 的匹配是按顺序,写在前面的优先。

完全匹配

location = /abc {return 900;
}curl -I localhost:3000/abc
HTTP/1.1 900

location = abc 虽然只少了 / ,但这样是匹配不到的,一个字符也不能差。完全匹配优先级最高,无论写在前面还是后面。

^~ 前缀匹配

# 正则匹配
location ~ abc {return 900;
}
# 前缀匹配
location ^~  /a {return 901;
}curl -I localhost:3000/abc
HTTP/1.1 901

^~ 匹配的优先级高于正则匹配。

初看到 ^~ 的人会误以为是正则匹配。这个要注意下,这个是前缀匹配,就是从前向后一个字符一个字符匹配。

# 普通前缀匹配
/abc/ {
}# 前缀匹配
^~ /abc/ {
}

这两种写法的匹配方式是一样,^~ 的优先级更高。

正则匹配

# 普通前缀匹配
location  /abcd {return 901;
}
# 正则匹配
location ~ /ab {return 902;
}curl -I localhost:3000/abcd
HTTP/1.1 902

正则匹配的优先级高于普通前缀匹配。

# 正则匹配
location ~ /ab {return 901;
}# 正则匹配
location ~ /abc {return 902;
}curl -I localhost:3000/abc
HTTP/1.1 901

正则匹配是按顺序来的,前面的匹配成功,后面的就不再匹配了。

从性能上来说,尽量不要用正则,正则匹配性能最低。

前缀匹配最长优先

location  /abcd {return 901;
}
location  /abc {return 902;
}location ^~ /def {return 903;
}
location ^~ /defg {return 904;
}curl -I localhost:3000/abcd
HTTP/1.1 901curl -I localhost:3000/defg
HTTP/1.1 904

ngix 常用配置之 location 匹配规则相关推荐

  1. nginx配置中location匹配规则详解

    女主宣言 nginx作为一款性能优异的反向代理服务器,可以用于静态代理.负载均衡.限流等多种场景.那么,要灵活的使用nginx,必须清楚nginx配置文件的使用.本文作者对nginx的http块中的l ...

  2. nginx之location匹配规则

    Nginx之location 匹配规则详解 有些童鞋的误区 1. location 的匹配顺序是"先匹配正则,再匹配普通". 矫正: location 的匹配顺序其实是" ...

  3. Nginx之location 匹配规则详解

    Nginx 的语法形式是: location [=|~|~*|^~|@] /uri/ { - } ,意思是可以以" = "或" ~* "或" ~ &q ...

  4. location 匹配规则 (NGINX)

    转:https://moonbingbing.gitbooks.io/openresty-best-practices/ngx/nginx_local_pcre.html location 匹配规则 ...

  5. 前端开发掌握nginx常用功能之serverlocation匹配规则

    nginx主要是公司运维同学必须掌握的知识,涉及到反向代理.负载均衡等服务器配置.前端开发尤其是纯前端开发来说对nginx接触的并不多,但是在一些情况下,nginx还是需要前端自己来搞:例如我们公司的 ...

  6. nginx中location匹配规则与proxy_pass代理转发

    最近使用nginx在服务器上配置,在做路径匹配时上遇到细节上的东西,在此做记录,安装请转 windows下安装使用nginx教程 一.location匹配规则 1.前缀匹配:不带符号 server { ...

  7. 【Nginx学习系列】location匹配规则

    location 匹配规则 规则 匹配 = 严格匹配.如果请求匹配这个 location,那么将停止搜索并立即处理此请求 ~ 区分大小写匹配(可用正则表达式) ~* 不区分大小写匹配(可用正则表达式) ...

  8. Nginx—核心配置location匹配规则说明

    2019独角兽企业重金招聘Python工程师标准>>> location介绍 location指令是Nginx中最核心的一项配置,根据预先定义的URL匹配规则来接收用户发送的请求,根 ...

  9. [转载+整理]Nginx Location匹配规则

    目录 规则语法 location 分类 匹配顺序: 扩展 location / {}和 location =/ {}的区别 测试 规则语法 语法 匹配规则 空 普通匹配(遵循最大前缀匹配规则, 优先度 ...

最新文章

  1. mysql 范围内日期列表,mysql – 将日期列表条件中的日期转换为日期范围列表
  2. android 汉字转字节,android实现汉字转拼音功能 带多音字识别
  3. WIX配置(二)-创建快捷方式
  4. 开发出高性能的网站系列文章
  5. php bc高精度测试,php BC高精确度函数库
  6. php tp框架调用方法,thinkPHP框架使用方法
  7. Teamcenter 入门开发系列问答(3)
  8. 解决“‘pip‘ 不是内部或外部命令,也不是可运行的程序或批处理文件“的问题
  9. CentOS 7.x 安装 Maven
  10. 绿盟扫描出来的ubuntu12.04下apache漏洞修复
  11. 大数据时代的数据挖掘是怎么做的?
  12. android颜色透明度换算详解
  13. vim安装使用pathogen
  14. 2019 ICPC 上海网络赛 K. Peekaboo
  15. 电饭锅面包的做法大全 电饭锅怎么做面包
  16. WebGL入门(三十五)-三维物体雾化效果,立方体雾化效果
  17. 最大子矩阵和问题java_最大子矩阵
  18. Linux设置环境变量
  19. Centos7卸载自带的OpenJDK
  20. 手机如何修改MD5视频?修改MD5视频的办法你清楚吗?

热门文章

  1. java 签名 ecdsa_Java数字签名——ECDSA算法
  2. 将一段压缩后的字符串解压,并且顺序输出
  3. 手机便签怎么同步到新手机或电脑上
  4. 浅谈(Java) N(A)IO-Netty框架
  5. 全链路压测,你想要的全在这里
  6. 我们工作到底为了什么(HP大中华区总裁孙振耀退休感言)--值得我们停留一刻阅读
  7. Java中final修饰变量
  8. 修改Android 自带输入法(LatinIME)空格键的显示
  9. alphapose 介绍
  10. 移动硬盘“文件或目录损坏,无法读取”解决方案