参考文档
- APISIX 说明
- 架构设计
- 压力测试
- 如何构建 Apache APISIX
- 健康检查: 支持对上游节点的主动和被动健康检查,在负载均衡时自动过滤掉不健康的节点。
- 路由 radixtree
- 独立运行模型: 支持从本地 yaml 格式的配置文件启动,更适合 Kubernetes(k8s) 体系。
- TCP/UDP 动态代理
- 管理 API
- 变更日志
- 代码风格
- 常见问答
插件
- 插件热加载:无需重启服务,完成插件热加载或卸载。
- HTTPS:根据 TLS 扩展字段 SNI(Server Name Indication) 动态加载证书。
- 动态负载均衡:跨多个上游服务的动态负载均衡,目前已支持 round-robin 和一致性哈希算法。
- key-auth:基于 Key Authentication 的用户认证。
- JWT-auth:基于 JWT (JSON Web Tokens) Authentication 的用户认证。
- basic-auth:基于 basic auth 的用户认证。
- wolf-rbac 基于 RBAC 的用户认证及授权。
- limit-count:基于“固定窗口”的限速实现。
- limit-req:基于漏桶原理的请求限速实现。
- limit-conn:限制并发请求(或并发连接)。
- proxy-rewrite: 支持自定义修改 proxy 到上游的信息。
- prometheus:以 Prometheus 格式导出 APISIX 自身的状态信息,方便被外部 Prometheus 服务抓取。
- OpenTracing:支持 Zikpin 和 Apache SkyWalking。
- grpc-transcode:REST <—> gRPC 转码。
- serverless:允许在 APISIX 中的不同阶段动态运行 Lua 代码。
- ip-restriction: IP 黑白名单。
- openid-connect
- redirect: URI 重定向。
- response-rewrite: 支持自定义修改返回内容的
status code
、body
、headers
。 - fault-injection:故障注入,可以返回指定的响应体、响应码和响应时间,从而提供了不同的失败场景下处理的能力,例如服务失败、服务过载、服务高延时等。
- proxy-cache:代理缓存插件提供缓存后端响应数据的能力。
- proxy-mirror:代理镜像插件提供镜像客户端请求的能力。
- udp-logger: 将请求记录到 UDP 服务器
- tcp-logger: 将请求记录到 TCP 服务器
- kafka-logger: 将请求记录到外部 Kafka 服务器。
- cors: 为你的API启用 CORS
- batch-requests: 以 http pipeline 的方式在网关一次性发起多个
http
请求。 - authz-keycloak: 支持 Keycloak 身份认证服务器
- uri-blocker: 根据 URI 拦截用户请求。
- oauth: 提供 OAuth 2 身份验证和自省。
部署
AWS
推荐的方法是在 AWS Fargate 上使用 AWS CDK 部署 APISIX,这有助于将 APISIX 层和上游层分离到具有自动缩放功能的完全托管和安全的无服务器容器计算环境之上。
请参阅 Pahud Hsieh 撰写的指南,了解如何在 AWS CDK 中 100% 配置推荐的架构。
Kubernetes
请参阅指南并了解如何在 Kubernetes 中部署 APISIX。