1、Nginx location规则html
^~ 标识符匹配后面跟一个字符串。匹配字符串后将中止对后续的正则表达式进行匹配。nginx
= 精确匹配,如location=/,只会匹配url为/的请求正则表达式
~ 区分大小写的匹配ide
~* 不区分大小写的匹配测试
!~ 对区分大小写的匹配取反url
!~* 对不区分大小写的匹配取反code
/ 通用匹配,若是没有其余匹配,任何请求都会被匹配到htm
2、正则表达式字符串
? 重复前面的字符0次或者1次it
. 匹配除换行符外的任意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这几个字母之外的任意字符
3、Nginx location匹配顺序的优先级
(location =) > (location 完整路径) >(location ^~路径)>(location ~,~*正则顺序) > (location 部分起始路径) > (/)
实例测试
一、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 文件未完,待续