【Nginx】Location的匹配顺序

Tanglu WebServer 2020-03-07 4050 0

Nginx的Location匹配顺序是一个经常出错的地方,下面是location优先级排序示例:

location = /uri  #精确匹配,优先级最高
location ^~ /uri  #普通字符串匹配,不支持正则表达式,当匹配成功后停止其他location匹配,优先级高于正则
location ~  #区分大小写的正则匹配
location ~*  #不区分大小写的正则匹配
location /uri  #前缀匹配
location /  #通用匹配


官方的location匹配示例:

location = / {
[ configuration A ]
}

location / {
[ configuration B ]
}

location /documents/ {
[ configuration C ]
}

location ^~ /images/ {
[ configuration D ]
}

location ~* \.(gif|jpg|jpeg)$ {
[ configuration E ]
}

#如果请求的是“/”则匹配到A,符合精准匹配
#如果请求的是“/index.html”则匹配到B
#如果请求的是“/documents/document.html”则匹配到C
#如果请求的是“/images/1.gif”则匹配到D
#如果请求的是“/documents/1.jpg”则匹配到E


评论