安全架构
FOXWAF 在单进程内完成监听、TLS 终结、站点匹配、安全检测与上游转发;按 8 层流水线串联,整段路径无锁、零拷贝优化,单核可承载 5,000 QPS。
请求处理流水线
每个 HTTP 请求按下列顺序流经各阶段;任一阶段命中阻断后立即返回,避免无谓计算。
-
01 · 路由快速路径检查
健康检查、静态资源快速放行;无需进入完整流水线,直接命中并返回,节约 CPU。
-
02 · 路由站点匹配
基于 Host 头与 SNI 精确匹配站点配置;多站点共享端口时按 SNI 选证书。
-
03 · 安全IP / Geo ACL
IP / CIDR 黑白名单;GeoLite2 地区维度访问控制;可按站点维度差异化。
-
04 · 安全CC / 速率限制
256 分片无锁计数器 + 滑动窗口;超阈值触发 JS Challenge,通过后放行。
-
05 · 安全User-Agent 检查
UA 黑名单匹配;可按需放行特定爬虫(Googlebot / Bingbot 等)。
-
06 · 安全Bot / 反爬
行为分析、TLS 指纹、DevTools 反调试;多维度识别自动化工具。
-
07 · 核心WAF 规则匹配
5 个位置专用 Trie + AC 自动机一次扫描;命中后再用正则二次精确匹配。完整规则集毫秒级完成。
-
08 · 转发反向代理
轮询 / 加权 / 一致性哈希负载均衡;HTTP/1.1、HTTP/2、HTTP/3、WebSocket 透传;可选静态缓存。
为什么这么快
- 纯 Go 实现:goroutine + 异步 IO,单进程承载数万并发,无 PHP-FPM / Lua / OpenResty 这类层级。
- 无锁设计:CC 防护采用 256 分片原子计数器;规则热更新使用 RCU 风格切换,读路径不加锁。
- 零分配匹配:AC 自动机 + 复用缓冲区,全规则扫描不在 hot path 触发 GC。
- 内置反向代理:与 WAF 同进程,避免在前面再套一层 Nginx 引入额外的拷贝与上下文切换。
热更新机制
配置、规则集、TLS 证书均支持热更新,业务请求无中断:
- 配置:变更通过
SIGHUP或控制台 API 触发,新连接走新配置,旧连接自然结束。 - 规则集:构建新 Trie 后原子切换,旧 Trie 在所有引用结束后由 GC 回收。
- 证书:SNI 路由表实时刷新,无需重启监听器。
延伸阅读
- 配置参考 — 站点、上游、证书、规则集
- OpenAPI 参考 — 脚本化运维与 CI/CD 集成
- 插件与扩展 — 在流水线钩子上注入自定义逻辑
- 性能数据 — wrk 压测原始报告