本文共 989 字,大约阅读时间需要 3 分钟。
一、Nginx location规则
^~ 标识符匹配后面跟一个字符串。匹配字符串后将停止对后续的正则表达式进行匹配。
= 精确匹配,如location=/,只会匹配url为/的请求
~ 区分大小写的匹配
~* 不区分大小写的匹配
!~ 对区分大小写的匹配取反
!~* 对不区分大小写的匹配取反
/ 通用匹配,如果没有其他匹配,任何请求都会被匹配到
二、正则表达式
? 重复前面的字符0次或者1次
. 匹配除换行符外的任意1个字符
(a|b) 匹配a或者b
^ 以...开头
$ 以...结尾
{n} 重复前面的字符n次
{n,} 重复前面的字符n次或更多次
{n,m} 重复前面的字符n次到m次
*? 重复前面的字符0次或者多次,但尽可能少重复
+? 重复前面的字符1次或者多次,但尽可能少重复
?? 重复前面的字符0次或1次,但尽可能少重复
{n,m}? 重复前面的字符n次到m次,但尽可能少重复
{n,}? 重复前面的字符n次以上,但尽可能少重复
[a] 匹配单个字符a
[a-z] 匹配a-z小写字母的任意一个
[^a] 匹配除了a以外的任意字符
[^abc] 匹配除了abc这几个字母以外的任意字符
三、Nginx location匹配顺序的优先级
(location =) > (location 完整路径) >(location ^~路径)>(location ~,~*正则顺序) > (location 部分起始路径) > (/)实例测试
1、location 正则下的 root 和 alias
location / { root /nas/front/;}
如果一个 URL 是 front.test.com/a.html , 那么访问到的是 /nas/front/a.html 文件
location /test/ { root /nas/front/;}
如果一个 URL 是 front.test.com/test/a.html , 那么访问到的是 /nas/front/test/a.html 文件
未完,待续转载于:https://blog.51cto.com/rsddn/2338980