nginx路由匹配规则解析

文章详细介绍了Nginx的路由匹配规则,包括精确匹配(最高优先级)、精确前缀匹配、区分和不区分大小写的正则匹配、普通前缀匹配以及通用匹配(最低优先级)。每个匹配类型都有其特定的符号标识,并遵循一定的匹配顺序。在配置文件中,一旦请求匹配到某个规则,nginx将停止搜索后续规则。

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

一、规则分类

=   精确匹配               (优先级最高)
^~   精确前缀匹配            (优先级仅次于=)
~    区分大小写的正则匹配     (优先级次于^~)
~*   不区分大小写的正则匹配    (优先级次于^~)
/uri 普通前缀匹配            (优先级次于正则)
/    通用匹配               (优先级最低)

二、规则详解

  1. 精确匹配

精确匹配使用 = 表示,nginx进行路由匹配的时候,精确匹配具有最高的优先级,请求一旦精确匹配成功nginx会停止搜索其他到匹配项。

配置实例:

    location = /test {
    …
    }
  1. 精确前缀匹配

精确前缀匹配的优先级仅次于精确匹配,nginx对一个请求精确前缀匹配成功后,停止继续搜索其他到匹配项。

配置实例:

    location ^~ /test_a {
    …
    }
  1. 正则匹配

精确和精确前缀匹配失败后,nginx会尝试进行正则匹配,正则匹配分为区分大小写和不区分大小写两种,分别用 ~ 和 ~* 表示;需要说明的是正则匹配之间没有优先级一说,而是按照在配置文件中出现的顺序进行匹配,一旦匹配上一个,就会停止向下继续搜索

配置实例:

# 区分大小写
location ~ /test_a {
…
}

# 不区分大小写
location ~* /test_A {
…
}
  1. 普通前缀匹配

普通前缀匹配前面没有任何修饰符,直接在location后写需要匹配的uri,它的优先级次于正则匹配

配置实例:

location /test {
…
}
  1. 通用匹配

通用匹配使用一个 / 表示,可以匹配所有请求,一般nginx配置文件最后都会有一个通用匹配规则,当其他匹配规则均失效时,请求会被路由给通用匹配规则处理;如果没有配置通用匹配,并且其他所有匹配规则均失效时,nginx会返回 404 错误。

配置实例:

location / {
…
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值