【nginx】location匹配顺序
2020-05-09 本文已影响0人
印比八方来
一.在nginx配置网页时,一般常用配置
location / {
root /apps/web/www;
try_files $uri /index.html;
index index.html;
}
location ~ .*\.(jpg|jpeg|gif|png|ico|css|js|pdf|txt)$
{
root /apps/web/www;
}
二.在对业务媒体文件需要指定存储路径时,进行配置
location ^~ /media {
rewrite ^/media/(.*)$ /$1 break;
root /apps/data/media;
}
这里匹配使用 ^~
因为如果直接使用 /media,那么如果访问的文件时jpg|jpeg|gif|png|ico|css|js|pdf|txt这几种,就会优先走
location ~ .*\.(jpg|jpeg|gif|png|ico|css|js|pdf|txt)$
{
root /apps/web/www;
}
三.location的匹配顺序
location = /uri =开头表示精确匹配,只有完全匹配上才能生效。
location ^~ /uri ^~ 开头对URL路径进行前缀匹配,并且在正则之前。
location ~ pattern ~开头表示区分大小写的正则匹配。
location ~* pattern ~*开头表示不区分大小写的正则匹配。
location /uri 不带任何修饰符,也表示前缀匹配,但是在正则匹配之后。
location / 通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default。