一、首先优先级如下:
= 表示精确匹配,优先级最高
^~ 表示uri以某个常规字符串开头,用于匹配url路径(而且不对url做编码处理,例如请求/static/20%/aa,可以被规则^~ /static/ /aa 匹配到(注意是空格))
~ 表示区分大小写的正则匹配
~* 表示不区分大小写的正则匹配
!~ 表示区分大小写不匹配的正则
!~* 表示不区分大小写不匹配的正则
/ 表示通用匹配,任何请求都会匹配到
二、root/alias 是指定文件路径的两种方式,主要区别就是怎么解析location后面的uri
使用root的时候root后面配置的路径会拼上location后面的路径作为uri,如下:
请求 http://127.0.0.1/photo.jpg uri会转发为:/home/image/photo.jpg
注意:root最后面加不加 / 都可以,但是location最后面不能加 /,否则404
使用alias的时候alias后面配置的路径不会拼上location后面的路径作为uri,如下:
注意:alias最后面不能加 /,location最后面也不能加 /,否则404