金泉网网站建设,wordpress封装app,重庆网站建设套餐,免费英文网站建设大家好#xff0c;我是 17。
今天和大家详细聊聊 nginx 的 location 匹配规则
location 匹配规则 匹配规则在后面的 try_files 中有举例
location 按如下优先级匹配 绝对匹配#xff0c;一个字符也不能差^~ 前缀匹配~#xff08;区分大小写#xff09;#xff0c; ~*(不…大家好我是 17。
今天和大家详细聊聊 nginx 的 location 匹配规则
location 匹配规则 匹配规则在后面的 try_files 中有举例
location 按如下优先级匹配 绝对匹配一个字符也不能差^~ 前缀匹配~区分大小写 ~*(不区分大小写) 正则匹配普通前缀匹配 24的匹配是匹配最长优先。 3 的匹配是按顺序写在前面的优先。 完全匹配
location /abc {return 900;
}curl -I localhost:3000/abc
HTTP/1.1 900location 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