wallarm/api-firewallAPI Firewall 是一款基于 OpenAPI/Swagger 规范的高性能代理,提供 API 请求与响应验证功能。该防火墙专为云原生环境中的 REST API 端点保护设计,通过正向安全模型实现 API 加固:仅允许与预定义 API 规范匹配的请求和响应通过,拒绝所有其他流量。
该产品为开源软件,可在 DockerHub 获取,累计拉取量已达 10 亿次。如需支持该项目,可访问 DockerHub 仓库 并添加星标。
启动 API Firewall 时,需提供待保护应用的 OpenAPI 3.0 规范 文件。启动后,防火墙将作为反向代理运行,验证请求和响应是否与规范中定义的模式匹配。
不符合模式的流量将通过 STDOUT 和 STDERR Docker 服务 记录或被阻断(取决于配置的操作模式)。在监控模式下,API Firewall 还会记录所谓的“影子 API 端点”——即未在 API 规范中定义但对请求有响应的端点(返回 404 状态码的端点除外)。
!API Firewall 工作流程
支持 OpenAPI 3.0 规范,文件格式可为 YAML 或 JSON(扩展名为 .yaml、.yml 或 .json)。
通过 OpenAPI 3.0 规范定义流量要求,API Firewall 实现了正向安全模型。
API Firewall 作为内置 OpenAPI 3.0 请求与响应验证功能的反向代理运行,采用 Golang 编写并使用 fasthttp 代理框架。项目针对极致性能和近零附加延迟进行了优化。
bashdocker run -d \ -v /path/to/your/openapi-spec.yaml:/etc/api-firewall/spec.yaml \ -e WALLARM_API_FIREWALL_URL=[***] \ # 后端服务地址 -e WALLARM_API_FIREWALL_MODE=block \ # 操作模式:block(阻塞)/monitor(监控) -p 8282:8282 \ wallarm/api-firewall
-v /path/to/spec.yaml:/etc/api-firewall/spec.yaml:挂载本地 OpenAPI 规范文件至容器内WALLARM_API_FIREWALL_URL:后端 API 服务的地址和端口WALLARM_API_FIREWALL_MODE:操作模式(block 或 monitor)-p 8282:8282:映射防火墙监听端口(默认 8282)完整配置参数及高级用法请参考 官方安装指南。
可通过官方提供的 Docker Compose 演示环境快速体验:
yaml# 参考 [***] version: '3' services: api-firewall: image: wallarm/api-firewall volumes: - ./openapi-spec.yaml:/etc/api-firewall/spec.yaml environment: - WALLARM_API_FIREWALL_URL=[***] - WALLARM_API_FIREWALL_MODE=monitor ports: - "8282:8282" app: image: your-backend-app:latest ports: - "3000:3000"
可通过以下演示环境体验 API Firewall 的功能:
API Firewall 设计以速度和效率为优先,确保 API 处理性能最大化。最新测试显示,API Firewall 处理单个请求的平均时间为 1.339 ms,比 Nginx 快 66%:
# API Firewall 0.6.2(带 JSON 验证) $ ab -c 200 -n *** -p ./large.json -T application/json [***] Requests per second: ***.81 [#/sec] (mean) Time per request: 15.378 [ms] (mean) Time per request: 0.077 [ms] (mean, across all concurrent requests) # Nginx 1.18.0(无 JSON 验证) $ ab -c 200 -n *** -p ./large.json -T application/json [***] Requests per second: 7887.76 [#/sec] (mean) Time per request: 25.356 [ms] (mean) Time per request: 0.127 [ms] (mean, across all concurrent requests)
更多性能测试结果及优化方法详见 官方博客文章。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务