参考资料

  1. Docker Swarm 是 Docker 原生的集群管理工具
  2. PHP-ZendServer 是由 Zend Technologies 开发的一个企业级 PHP 应用服务器
  3. IBM Java 是 IBM 提供的 Java 开发工具包(JDK)和运行时环境(JRE)
  4. Percona是一家提供开源数据库解决方案的公司,专注于MySQL、MongoDB、PostgreSQL等数据库的性能优化
  5. Cloudreve是一款自托管的网盘系统,支持对接OnlyOffice实现在线文档编辑功能
  6. Convertigo是一个开源的低代码开发平台
  7. Cirros是一个轻量级的Linux发行版
  8. Known 是一个开源的内容发布平台

简介

api-firewall 是一个开源的 API 防火墙,用于保护 API 免受恶意攻击和滥用。它基于 OpenAPI/Swagger 规范,支持请求验证、速率限制、IP 黑白名单等功能。

特点

  1. 请求验证:基于 OpenAPI/Swagger 规范验证请求和响应。

  2. 速率限制:防止 API 滥用和 DDoS 攻击。

  3. IP 黑白名单:限制或允许特定 IP 访问。

  4. 轻量级:基于 Go 语言开发,资源占用低。

  5. 支持多种部署方式:Docker、Kubernetes、二进制部署等。

最新更新内容及时间

  • 最新版本:v0.6.5

  • 更新时间:2023年10月

  • 更新内容

    • 新增对 OpenAPI 3.1 的支持。

    • 优化速率限制算法。

    • 修复若干 Bug。

镜像下载地址

  • Docker Hub: docker pull wallarm/api-firewall:latest

官网地址

文档地址

Docker 安装示例

docker run -d \
  -p 8080:8080 \
  -v /path/to/openapi.yaml:/opt/api-firewall/openapi.yaml \
  -e APIFW_API_SPECS=/opt/api-firewall/openapi.yaml \
  wallarm/api-firewall:latest

YAML 设置教程

示例 api-firewall.yaml 配置:

server:
  host: "0.0.0.0"
  port: 8080

security:
  request_validation: true
  response_validation: true

rate_limit:
  enabled: true
  requests_per_minute: 100

ip_blacklist:
  enabled: true
  addresses:
    - "192.168.1.1"
    - "10.0.0.1"

常用错误问题

  1. OpenAPI 规范无效:确保 YAML 文件格式正确且符合 OpenAPI 规范。

  2. 速率限制不生效:检查 rate_limit 配置是否启用且参数正确。

  3. IP 黑白名单无效:确认 IP 地址格式正确且配置已启用。

  4. Docker 容器无法启动:检查端口映射和卷挂载路径是否正确。