Nginx(location分析)

1.Nginx 的 location 是定位的意思:

  a) 

  location = /uri    =开头表示精确匹配,只有完全匹配上才能生效。

  location ^~ /uri   ^~ 开头对URL路径进行前缀匹配,并且在正则之前。

  location ~ pattern  ~开头表示区分大小写的正则匹配。

  location ~* pattern  ~*开头表示不区分大小写的正则匹配。

  location /uri     不带任何修饰符,也表示前缀匹配,但是在正则匹配之后。

  location /      通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default。 

  b) 精准匹配 = 的小细节:

  1) 如果你这样设置,如果直接域名Jackey.com访问的话,会直接找到不是 = 的location 那里的路径去:

  

  2) 如果是Jackey.com/index.html访问的话,就会找到精准(=)这里来的了;

  c) 如果你设置到具体文件的话,要跟index的第一个文件名要一模一样才行:

  

2.location 里面的匹配顺序:

  1) “=” 精准匹配是最优先的,匹配到后则返回结果并结束解析;

  2) 普通匹配,匹配多个的时候,记录最长的匹配(比如: location / ;;  location /images/;; 如果两个都满足uri的匹配,则记录 location /images/),并继续往下解析找;

  3) 正则匹配,按照配置里的顺序进行匹配(由上到下),一旦匹配到则结束解析; 

原文地址:https://www.cnblogs.com/Jackey-fighting/p/9114755.html