那问了, 有可能是因为两个匹配规则的优先级不同, 故而忽略了优先级低的匹配规则.
为了验证nginx对于相同优先级的匹配规则, 是否会进行后续匹配, 再次进行实验....至此, nginx的匹配规则基本上已经复现出来了.
按照优先级从高到低的顺序进行匹配
相同优先级的, 按照配置文件中的顺序进行匹配
当匹配到一条规则之后, 停止后续匹配....匹配规则
接下来整理一下nginx路径的匹配规则, 以下优先级按照从高到底排序:
location = /xxx: 路径精确匹配
location ^~ /xxx: 路径前缀匹配
location ~...xxx: 路径正则匹配
location ~* xxx: 路径正则匹配, 不区分大小写, 与正则匹配的优先级相同
location /xxx : 路径前缀匹配
location / : 通用匹配, 当其他都没有匹配的时候..., 会走到这里.
nginx会按照优先级从高到低依次进行匹配, 在第一个匹配成功的时候执行操作并停止匹配.