nginx的location的优先级和匹配方式
作者:91888888
location是Nginx中的块级指令,本文主要介绍了nginx的location的优先级和匹配方式,具有一定的参考价值,感兴趣的可以了解一下
在http模块中有server,server模块中有location,location匹配的是uri
在一个server中,会有多个location,如何来确定匹配哪个location
niginx的正则表达式
^ 字符串的起始位置
$ 字符串的结束位置
* 匹配所有
+ 匹配前面的字符最少一次
? 匹配前面的字符0次或者1次
. 任意单个字符
{n} 连续重复出现n次
{n,m} 连续重复出现n到m次
[c] 匹配单个字符c
() 分组
| 或
location匹配的分类:
location /
location ~*
1、精确匹配location = /test{...}
完整的路径,一个字不能少,一个字不能错
2、正则匹配location ~/{}
location ^~ 前缀匹配,以什么为开头
location ~ 区分大小写进行匹配
location ~* 不区分大小写进行匹配
!~ 区分大小写取反匹配
!~* 不区分大小写取反匹配
3、一般匹配location /test{}
location匹配一旦匹配成功,就不再向下匹配
location匹配的优先级
大致:【精确匹配 > 正则匹配 > 一般匹配】
具体:【location = 完整路径 > location ^~ > location ~,~* > location /test > location /】
精确匹配,优先级最高
其次是正则匹配
一般匹配优先级最低
工作中配置location的原则:
1、网站首页
(一般都是静态页面):都是精确匹配(匹配网站的根工作目录)
location =/{ }
2、处理静态文件的请求
目录匹配和后缀匹配
location ^~ /static { } location ~* \.{html|jpg|jpeg|gif|png} $ { }
3、一般规则
动态请求,把动态请求转发到后端
location /{ proxy_pass http://tomcat_server;
到此这篇关于nginx的location的优先级和匹配方式的文章就介绍到这了,更多相关nginx location优先级和匹配内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!