在 Nginx 中,location指令用于配置路径匹配规则,决定请求如何被处理。以下是一些常见的 Nginx 路径匹配规则:
精确匹配 (=):
location = /path表示精确匹配/path路径。
location = /path {
# 处理精确匹配的请求
}
前缀匹配 (^~):
location ^~ /prefix表示前缀匹配,即匹配以/prefix开头的路径。
location ^~ /prefix {
# 处理前缀匹配的请求
}
正则表达式匹配 (~和~*):
location ~ /regex表示区分大小写的正则表达式匹配,而location ~* /regex表示不区分大小写的正则表达式匹配。
location ~ /regex {
# 处理正则表达式匹配的请求(区分大小写)
}
location ~* /regex {
# 处理正则表达式匹配的请求(不区分大小写)
}
location ~* \.(jpg|jpeg|png)$ {
# 不区分大小写的正则表达式匹配
}
普通匹配:
普通匹配是按照前缀的顺序进行的,默认是不区分大小写的。
location /path {
# 处理普通匹配的请求
}
总结:
= 字面精确匹配;
^~ 最大前缀匹配;
/ 不带任何前缀:最大前缀匹配;
~ 大小写相关的正则匹配;
~* 大小写无关的正则匹配;
Location规则匹配优先级总结如下:
(location =) > (location 完整路径) > (location ^~ 路径) > (location ~|~* 正则顺序) > (location 部分起始路径) > (location /)