nginx location 的配置

一、基本语法:location [=|~|~*|^~] /uri/ { … }

二、分类:

 1.基本location:以“ = ”或“ ^~ ”为前缀或者没有任何前缀的 /uri/ 

 2.正则location:以“ ~ ”或“ ~* ”为前缀的 /uri/

 基本location 又分为2种:

  1)严格精确匹配:  “ = ” 

  2)最大前缀匹配: 无前缀 或者以“ ^~ ”

三、解释:

  1)= 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。
  2)~ 为区分大小写匹配(可用正则表达式)
  3)~* 为不区分大小写匹配(可用正则表达式)
  4)!~和!~*分别为区分大小写不匹配及不区分大小写不匹配
  5)^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式。

四、规则:

  1.先匹配普通 location ,再匹配正则 location ,但是如果普通 location 的匹配结果恰好是“严格精确( exact match )”的,则 nginx 不再尝试后面的正则 location ;如果普通 location 的匹配结果是“最大前缀”,则正则 location 的匹配覆盖普通 location 的匹配。

  2.基本location 中,严格精确匹配大于最大前缀

  2.对于普通 location 指令,匹配规则是:最大前缀匹配(与顺序无关),如果恰好是严格精确匹配结果或者加有前缀“ ^~ ”或“ = ”(符号“ = ”只能严格匹配,不能前缀匹配),则停止搜索正则 location ;但对于正则 location 的匹配规则是:按编辑顺序逐个匹配(与顺序有关),只要匹配上,就立即停止后面的搜索。

 

posted @ 2013-12-26 18:26  yupeng  阅读(3729)  评论(1编辑  收藏  举报