nginx路由匹配规则解析
一、规则分类
= 精确匹配 (优先级最高)^~ 精确前缀匹配 (优先级仅次于=)~ 区分大小写的正则匹配 (优先级次于^~)~* 不区分大小写的正则匹配 (优先级次于^~)/uri 普通前缀匹配 (优先级次于正则)/ 通用匹配 (优先级最低)
二、规则详解
精确匹配
精确匹配使用 = 表示,nginx进行路由匹配的时候,精确匹配具有最高的优先级,请求一旦精确匹配成功nginx会停止搜索其他到匹配项。
配置实例:
location = /test { … }
精确前缀匹配
精确前缀匹配的优先级仅次于精确匹配,nginx对一个请求精确前缀匹配成功后,停止继续搜索其他到匹配项。
配置实例:
location ^~ /test_a { … }
正则匹配
精确和精确前缀匹配失败后,nginx会尝试进行正则匹配,正则匹配分为区分大小写和不区分大小写两种,分别用 ~ 和 ~* 表示;需要说明的是正则匹配之间没有优先级一说,而是按照在配置文件中出现的顺序进行匹配,一旦匹配上一个,就会停止向下继续搜索
配置实例:
# 区分大小写location ~ /test_a {…}# 不区分大小写location ~* /test_A {…}
普通前缀匹配
普通前缀匹配前面没有任何修饰符,直接在location后写需要匹配的uri,它的优先级次于正则匹配
配置实例:
location /test {…}
通用匹配
通用匹配使用一个 / 表示,可以匹配所有请求,一般nginx配置文件最后都会有一个通用匹配规则,当其他匹配规则均失效时,请求会被路由给通用匹配规则处理;如果没有配置通用匹配,并且其他所有匹配规则均失效时,nginx会返回 404 错误。
配置实例:
location / {…}
来源地址:https://blog.csdn.net/bocai_xiaodaidai/article/details/129613502
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341