nginx中的location使用

本文详细介绍了Nginx中location指令的使用方法及其匹配规则。包括不同类型的匹配符号(=、~、~*、^~)的应用场景,并通过实例展示了如何配置location以实现特定URL的请求处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作用:

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.jpg4
/images/1.gif返回404,即匹配了:location ^~ /images {return 404;}此部分为路径匹配,但是前面增加了^~,所以优先匹配路径,而没有匹配结尾的1.jpg2
/documents/1.gif返回500,即匹配了:location ~* .(jpg|gif|jpeg)$ {return 500;}此部分匹配了1.gif,属于扩展名匹配,虽然有/documents/,但是还匹配了扩展名3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值