nginx location URI匹配规则

本文介绍了Nginx处理URL请求的过程,详细解释了如何通过location指令匹配不同类型的URL模式,包括普通字符串和正则表达式的匹配原则。文章强调了匹配顺序及影响因素。

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

当nginx收到一个请求后,会截取请求的url部份,去搜索所有location指令中定义的URI匹配模式。在server模块中可以定义多个location指令来匹配不同的url请求,多个不同的location配置的URI匹配模式,总体的匹配原则是:

先匹配普通字符串模式,再匹配正则模式。

只识别URI部分,例如:

/test/abc/user.do?name=xxxx

一个请求过来后,nginx匹配这个请求的流程如下:

1:先查找是不有=开头的精确匹配,如:location = /test/abc/user.do {.....}

2 : 再查找普通匹配,以最大前缀为原则,如有以下两个location,则会匹配后一项

location /test/ {....}

location /test/abc {....}

3 : 匹配到一个普通格式后,搜索并未结束,而是暂存前匹配的结果,并继续搜索正则匹配模式

4 : 所有正则匹配模式location中找到“第一个“匹配项后,就以此项“最终匹配结果“

注意:所有正则匹配规则,受定义的前后顺序影响,但普通匹配模工不会!!!!

5:如果未找到匹配项,则以 3中缓存的结果为最终匹配结果

6:如果一个匹配都没搜到,则返回404

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值