Nginx 的 location 匹配规则

作者: 某尤 | 来源:发表于2016-06-28 15:28 被阅读329次

1.location 配置有什么用?

location 配置用于匹配指定 URI,然后对匹配的请求进行相关处理。

2.语法规则

location [=|~|~*|^~] /uri/ {...}

符号 含义
= 表示精确匹配
^~ 表示 URI 以某个常规字符串开头。Nginx 不对 URL 做编码,因此请求为 /static/20%/aa,可以被 ^~ /static/ /aa 匹配到
~ 表示区分大小写的正则匹配
~* 表示不区分大小写的正则匹配
/ 通用匹配,任何请求都会匹配

多个 location 配置的情况下匹配顺序为(参考资料而来,还未实际验证):

  • 首先匹配 =
  • 其次匹配 ^~
  • 其次是按文件中顺序的正则匹配
  • 最后是交给 /
  • 当有匹配成功时候,停止匹配,按当前匹配规则处理请求

例子,有如下匹配规则:

location = / {
    #规则A
}

location = /login {
    #规则B
}

location ^~ /static/ {
    #规则C
}

location ~ \.(gif|jpg|png|js|css)$ {
    #规则D
}

location ~* \.png$ {
    #规则E
}

location / {
    #规则F
}

那么产生的效果如下:

相关文章

网友评论

    本文标题:Nginx 的 location 匹配规则

    本文链接:https://www.haomeiwen.com/subject/dpetjttx.html