百度开源网关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来限制内存使用,避免无限膨胀。
➡️