百度开源网关BFE源代码阅读4之模块

💡 原文中文,约19300字,阅读约需46分钟。
📝

内容提要

BFE是一个开源负载均衡项目,通过模块的选择可以更精细地控制BFE在处理请求中的各个阶段。常见模块包括mod_trust_clientip、mod_block、mod_header、mod_rewrite、mod_redirect、mod_logid、mod_tag、mod_trace、mod_access、mod_prison。模块的初始化过程主要包括加载配置文件、加载数据文件和注册回调函数。模块的功能逻辑根据具体模块而定,但大多数模块都会根据条件匹配来执行相应的动作。

🎯

关键要点

  • BFE是一个开源负载均衡项目,通过模块选择精细控制请求处理。
  • BFE的模块初始化过程包括加载配置文件、数据文件和注册回调函数。
  • BFE模块与其他开源产品不同,基于Product(租户)维度控制。
  • 模块初始化分为加载模块、注册用户配置模块和初始化注册模块。
  • 常见模块包括mod_trust_clientip、mod_block、mod_header等。
  • mod_trust_clientip模块用于设置可信客户端IP。
  • mod_block模块用于屏蔽指定IP段和条件原语。
  • mod_header模块用于修改HTTP头信息。
  • mod_rewrite模块用于改写请求的Host、Path和Query。
  • mod_redirect模块用于重定向请求。
  • mod_logid模块用于生成随机日志ID。
  • mod_tag模块用于在请求上添加标签。
  • mod_trace模块用于追踪请求的耗时。
  • mod_access模块用于配置请求日志。
  • mod_prison模块用于限流,基于请求频率进行控制。
  • BFE的mod_prison模块使用LRUCache来限制内存使用,避免无限膨胀。
➡️

继续阅读