操作指南
本节提供面向实际任务的 API7 网关操作指南。每篇指南聚焦一个具体目标,并提供完成任务的分步说明。
流量管理
控制 API7 网关如何处理传入请求并将其路由到上游服务。
- 配置限流:限制每个消费者或 IP 地址的请求数量,保护上游服务。
- 改写代理请求:将请求转发到上游服务前,重写请求 URI、请求头和方法。
- 配置响应改写:向客户端返回响应前,修改响应状态码、响应头和正文。
- 实施灰度发布:使用加权路由在不同上 游版本之间拆分流量,逐步发布变更。
- 实现蓝绿发布:在两个上游环境之间切换流量,实现零停机发布。
- 配置上游健康检查:配置主动和被动健康检查,自动移除不健康的上游节点。
- 配置 CORS:配置跨源资源共享,允许或限制来自不同源的访问。
- 配置故障注入:注入 HTTP 错误和响应延迟,测试应用弹性。
- 配置代理缓存:在网关中缓存响应,提高 API 性能并降低上游负载。
- 配置代理镜像:复制一定比例的生产流量并发送到辅助服务进行测试。
- 条件式禁用全局插件:使用路由标签和
_meta.filter机制,有条件地跳过特定路由的全局插件执行。
API 安全
对 API 消费者进行身份认证并保护 API。
- 配置 Key 身份认证:要求客户端在请求头或查询字符串中提供 API Key(API 密钥)。
- 配置 Basic 身份 认证:要求客户端在 HTTP Authorization 请求头中提供用户名和密码。
- 配置 JWT 身份认证:使用 JSON Web Token(JWT)实现无状态身份认证。
- 配置 HMAC 身份认证:使用基于哈希的消息认证码(HMAC)对请求签名,保护 API。
- 配置数据脱敏:在请求数据写入日志前屏蔽或删除敏感字段。
协议代理
代理非 HTTP 协议和专用 API 流量。
- 配置 gRPC 代理:代理 gRPC 流量,包括 REST 到 gRPC 转码,以及面向浏览器客户端的 gRPC-Web 支持。
- 配置 WebSocket 代理:为长时间保持的双向连接启用 WebSocket 代理。
- 配置 GraphQL 代理:代理 GraphQL API,并添加感知 GraphQL 的限流和缓存。
- 配置 TCP/UDP 代理:将四层 TCP 和 UDP 流量代理到上游服务。
插件开发
使用自定义插件扩展 API7 网关功能。
- 开发自定义 Lua 插件:编写和部署在网关进程内运行的自定义 Lua 插件。
运维
管理组织访问控制和运维工作流。
- 管理网关组:创建和管理多个网关组,按环境或团队隔离流量。
- 配置密钥管理:集成外部密钥管理器,保护敏感配置。
- 创建自定义角色:定义权限策略、将其附加到角色,并将角色分配给用户。
- 设计自定义角色体系:为团队、环境和委派管理规划可扩展的 RBAC 模型。
- 配置就绪和存活探针:为 Kubernetes、Docker 和其他部署中的数据面配置健康探针。
相关资源
- 快速开始:首次设置 API7 网关。
- 教程:通过插件代理和管理 API 请求:通过实践教程学习基本代理和插件管理。
- 核心概念概览:了解 API7 网关的核心概念。