使用location配置可以实现网站资源的动静分离。location的表达式按照优先级分为4种类型:
A. 等号类型(=) :精确匹配,也就是完全匹配,优先级最高,一旦匹配成功,直接返回。
# 等号类型(=) :精确匹配,一旦匹配成功,不再匹配其他location。
location = /a.html {#这里表示仅仅匹配 "/a.html" 根路径
......
}
B. ^~ 类型:前缀匹配。
# ^~ 类型:前缀匹配
location ^~ /images/ {#这里表示匹配所有以 /images/ 开头的请求。
......
}
C. ~和~* 类型:正则表达式匹配,“~”区分大小写,“~*”不区分大小写。
# ~* 类型:正则表达式匹配,不区分大小写。
location ~* \.(gif|jpg|jpeg)$ {#这里表示匹配所有以 gif jpg jpeg结尾的请求。。
......
}
# 多个C类型之间,顺序优先
D. 普通类型:字符串前缀匹配,没有“=,~,^,*”这些符号,优先级最低
# 普通类型:字符串前缀匹配,优先级最低
location /static/ {#这里表示匹配所有以 /static/开头的请求。
......
}
# 多个D类型之间,长度优先
练习:
location / {
【1】
}
location = /static/b {
【2】
}
location ~ /static/ {
【3】
}
location ^~ /images/ {
【4】
}
location /images/img {
【5】
}
location ~* \.(gif|jpg|jpeg)$ {
【6】
}
location ~ /static/a {
【7】
}