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) 正则匹配,按照配置里的顺序进行匹配(由上到下),一旦匹配到则结束解析;