avatar

小火车向前走

一名研究大数据、AI、软件架构的技术人的奇思妙想

  • 文章
  • 分类
  • 标签
  • 关于
Home Nginx Location匹配优先规则精辟总结
文章

Nginx Location匹配优先规则精辟总结

Posted 2023-12-27 Updated 2023-12- 29
By 小火车向前走
2~3 min read

如果需要把一台机器当成网关使用,不可避免的需要配置Nginx Location配置。一旦设置Location的路径总类过多,发现理清Nginx Location匹配顺序至关重要。但是找了一圈资料,发现要么讲得太复杂、案例理解下来花时间不少,要么讲得含糊不清。其实可以用很精炼的文字总结,不需要花过多时间、死脑细胞去理解。

Location 的匹配并不完全按照其在配置文件中出现的顺序来匹配,请求URI 会按如下顺序进行匹配:

1. location =    # 精准匹配
2. location ^~   # 带参前缀匹配
3. location ~    # 正则匹配(区分大小写)
4. location ~*   # 正则匹配(不区分大小写)
5. location /a   # 普通前缀匹配,优先级低于带参数前缀匹配。
6. location /    # 任何没有匹配成功的,都会匹配这里处理

上述匹配规则可以用以下伪代码表示,加深理解:

function match(uri){
  rv = NULL
  
  if uri in exact_match://匹配规则1
    return exact_match[uri]
  
  if uri in prefix_match:
    if prefix_match[uri] is '^~'://匹配规则2
      return prefix_match[uri]
    else://匹配规则5,注意这里没有 return,且这里是按最长匹配处理
      rv = prefix_match[uri]
   
  if uri in regex_match://匹配规则3、4
    return regex_match[uri] // 按文件中顺序,找到即返回
  //前面规则1、2、3、4都没匹配中,最后匹配规则6
  return rv
}

Devops
nginx
License:  CC BY 4.0
Share

Further Reading

Dec 27, 2023

Nginx Location匹配优先规则精辟总结

如果需要把一台机器当成网关使用,不可避免的需要配置Nginx Location配置。一旦设置Location的路径总类过多,发现理清Nginx Location匹配顺序至关重要。但是找了一圈资料,发现要么讲得太复杂、案例理解下来花时间不少,要么讲得含糊不清。其实可以用很精炼的文字总结,不需要花过多时

OLDER

人类社会故事的思考

NEWER

Recently Updated

  • Nginx Location匹配优先规则精辟总结
  • 人类社会故事的思考

Trending Tags

nginx 数据仓库 深度学习 Spark 经济 历史 Hadoop Halo

Contents

©2025 小火车向前走. Some rights reserved.

Using the Halo theme Chirpy