rwadurian/backend/api-gateway/README.md

3.5 KiB

API Gateway - Kong

RWADurian 项目的 API 网关,基于 Kong 实现。

架构

用户请求
    ↓
Nginx (SSL/负载均衡)
    ↓ rwaapi.szaiai.com:443
Kong API Gateway
    ↓ :8000
各微服务
    ├── identity-service   :3000
    ├── wallet-service     :3001
    ├── backup-service     :3002
    ├── planting-service   :3003
    ├── referral-service   :3004
    ├── reward-service     :3005
    ├── mpc-service        :3006
    ├── leaderboard-service:3007
    ├── reporting-service  :3008
    ├── authorization-service:3009
    ├── admin-service      :3010
    └── presence-service   :3011

文件结构

api-gateway/
├── kong.yml              # Kong 声明式配置
├── README.md             # 本文档
└── nginx/
    ├── rwaapi.szaiai.com.conf  # Nginx 配置
    └── install.sh              # 一键安装脚本

API 路由

路径 服务 说明
/api/v1/auth/* identity-service 认证相关
/api/v1/users/* identity-service 用户管理
/api/v1/wallets/* wallet-service 钱包管理
/api/v1/backups/* backup-service 备份服务
/api/v1/plantings/* planting-service 种植管理
/api/v1/trees/* planting-service 树木管理
/api/v1/referrals/* referral-service 推荐系统
/api/v1/rewards/* reward-service 奖励系统
/api/v1/mpc/* mpc-service 多方计算
/api/v1/leaderboard/* leaderboard-service 排行榜
/api/v1/reports/* reporting-service 报表统计
/api/v1/statistics/* reporting-service 数据统计
/api/v1/authorization/* authorization-service 授权管理
/api/v1/permissions/* authorization-service 权限管理
/api/v1/roles/* authorization-service 角色管理
/api/v1/versions/* admin-service 版本管理
/api/v1/admin/* admin-service 后台管理
/api/v1/presence/* presence-service 在线状态

部署

1. 启动 Kong (包含在 services 的 docker-compose.yml 中)

cd backend/services
./deploy.sh up

2. 配置 Nginx + SSL

cd backend/api-gateway/nginx
sudo chmod +x install.sh
sudo ./install.sh

3. 验证

# 检查 Kong 状态
curl http://localhost:8001/status

# 测试 API 路由
curl https://rwaapi.szaiai.com/api/v1/versions

Kong 管理

查看配置

# 查看所有服务
curl http://localhost:8001/services

# 查看所有路由
curl http://localhost:8001/routes

# 查看所有插件
curl http://localhost:8001/plugins

重新加载配置

# 进入 Kong 容器
docker exec -it rwa-kong sh

# 重载配置
kong reload

插件

已启用的全局插件:

插件 功能
cors 跨域支持
rate-limiting 请求限流 (100/分钟, 5000/小时)
file-log 请求日志
request-size-limiting 请求大小限制 (50MB)

故障排除

1. Kong 无法连接数据库

# 检查 kong-db 状态
docker logs rwa-kong-db

# 手动运行迁移
docker exec -it rwa-kong kong migrations bootstrap

2. 路由不生效

# 检查 kong.yml 语法
docker exec -it rwa-kong kong config parse /etc/kong/kong.yml

# 重启 Kong
docker restart rwa-kong

3. 502 Bad Gateway

  • 检查目标服务是否运行: docker ps
  • 检查服务网络连通性: docker exec rwa-kong curl http://admin-service:3010/api/v1/health