nginx中的location使用

      • 作用
      • 语法
      • location匹配实例
      • location匹配实战

作用:

location指令的作用是根据用户请求的url来执行不同的应用。

语法:

location [ = | ~ | ~* | ^~ ] uri {
...................
}

注意:uri地方,可以使用普通的字符串地址路径,也可以使用正则表达式,正则表达式前面也可以是“~”或者”~*”

location匹配实例:

location = / {
[ configuration A ]
} 
#当用户 请求“/”时,将匹配configuration A;

location / {
[ configuration B ]
} 
#当用户请求“/index.html”时,将匹配configuration B;

location /documents {
[ configuration C ]
} 
#当用户请求“/documents/document.html”时,将匹配configuration C;

location ^~ /images {
[ configuration D ]
} 
#当用户请求“/images/1.gif”时,将匹配configuration D;

location ~* \.(gif|jpg|jpeg)$ {
[ configuration E ]
} 
#当用户请求“/documents/1.jpg”时,将匹配configuration E。

location匹配实战:

server {
    listen 80;
    server_name www.a.com;
    root html;

    location / {
        return 401;
    }
    location = / {
        return 402;
    }
    location /documents {
        return 403;
    }
    location ^~ /images {
        return 404;
    }
    location ~* \.(jpg|gif|jpeg)$ {
        return 500;
    }
}
用户请求的url 设置的状态码 说明 优先级
当为空或者/时 返回402,即匹配了:location = / {return402;} = 的精确匹配优先级最高 1
/index.html或者任意不匹配其他的location的字符串 返回401,即匹配了:location / {return 401;} / 为默认匹配,如果没有匹配上其他的location,则最后匹配“默认匹配规则” 5
/documents/document.html 返回403,即匹配了:location /documents {return 403;} 此部分为路径匹配,即匹配/documents/,注意后面的/documents/1.jpg,没有匹配此处的location,而是匹配了结尾的1.jpg 4
/images/1.gif 返回404,即匹配了:location ^~ /images {return 404;} 此部分为路径匹配,但是前面增加了^~,所以优先匹配路径,而没有匹配结尾的1.jpg 2
/documents/1.gif 返回500,即匹配了:location ~* .(jpg|gif|jpeg)$ {return 500;} 此部分匹配了1.gif,属于扩展名匹配,虽然有/documents/,但是还匹配了扩展名 3

你可能感兴趣的:(nginx,location)