location匹配分三种方式,按优先级顺序是精确匹配(=)、普通匹配、正则匹配(~,^~,~*).
精确匹配命中了直接成功,返回精准匹配结果;
没成功继续匹配普通匹配,它能匹配多个,匹配中会继续匹配不会终止,普通匹配与顺序无关,与匹配长短有关,会记住匹配最长匹配结果,或者没有任何普通匹配命中,都会走向正则匹配;
正则匹配是按照顺序来,一旦命中就返回正则命中的结果,正则匹配没命中则用普通匹配中命中的最长结果来。
例如
#其次匹配
location / {
xxx
}
#首先匹配
location =/js/ {
xxxxxxxx
}
#最后匹配
location ~ ^.+\.php {
xxxxxxxxx
}