前言
本篇主要讲解nginx中的location的语法。
location的作用
location主要用于URI的匹配。 其中URI(统一资源标识符)、URN()
URI:Uniform Resource Identifier,统一资源标识符;如下图的data.html;
URN:Uniform Resource Name,统一资源名称,如下图的ste.org/img.png,比URI多个域名;
URL:Uniform Resource Locator,统一资源定位符,如下面,URL包含了http协议、端口、域名、文件名。
location位置
location只能位于server、location里面,也就是说location可以嵌套。
location的常用语法格式
1、精确匹配
location = / {
}
匹配到http://www.baidu.com/ 这种请求
2、~ 大小写敏感
location ~ /example/ {
}
请求实例:
http://www.baidu.com/example/ [成功]
http://www.baidu.com/Example/ [失败]
3、~* 大小写不敏感,忽略大小写敏感
location ~* /example/ {
}
请求实例:
http://www.baidu.com/example/ [成功]
http://www.baidu.com/Example/ [成功]
4、^~ 只匹配以uri开头
location ^~ /img/ {
}
请求实例:
以/img/开头的请求都匹配的上
http://www.baidu.com/img/index.html [成功]
http://www.baidu.com/img/a.html [成功]
http://www.baidu.com/Img/index.html [失败]
http://www.baidu.com/hmg/index.html [失败]
5、/ 通用匹配,即默认匹配
location / {
}
以上都不匹配的时候就会匹配该默认匹配
location的匹配顺序:首先匹配 =,其次匹配^~,其次是按文件中顺序的正则匹配,最后是交给 /通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
演示示例:
location = / {
xxxxxxxx
}
location ~ \.html$ {
xxxxxxxx
}
location ~* \.(gif|jpg|jpeg)$ {
}
location 的内部跳转匹配符号@: location /img/ { error_page 404 = @error_img; #匹配进来发现状态码是404则跳转到error_img这一条规则 } location @error_img { #跳转到这里 xxxxxx }
|