Apache APISIX 教程
apisixThe Cloud-Native API Gateway项目地址:https://gitcode.com/gh_mirrors/ap/apisix
1. 项目介绍
Apache APISIX 是一款高性能、动态实时的 API 网关,基于 NGINX 和 etcd 实现。它提供丰富的流量管理特性,如负载均衡、动态上游、灰度发布、熔断机制、认证、可观测性等。不仅能处理传统的南北向流量,还适配东西向微服务间的通信。此外,它还可以作为 Kubernetes 的 ingress 控制器。
2. 项目快速启动
安装依赖
确保你的系统中已安装以下软件:
nginx
etcd
luarocks
安装 Apache APISIX
首先通过 LuaRocks 安装 APISIX:
luarocks install https://raw.githubusercontent.com/apache/apisix/master/rocks/apisix-rockspec.apisix-latest.rockspec
启动 etcd
# 使用默认配置启动 etcd
etcd
配置 Apache APISIX
创建一个简单的路由配置文件(例如:apisix.yaml
):
apisix:
node_listen: 9080 # APISIX 监听端口
etcd:
hosts:
- "http://127.0.0.1:2379" # etcd 地址
然后加载配置:
apisix init --config-file=apisix.yaml
启动 Apache APISIX
apisix start
现在,Apache APISIX 已经在监听 9080 端口,你可以通过访问 http://localhost:9080
来测试是否正常运行。
3. 应用案例和最佳实践
一个典型的使用场景是将 Apache APISIX 用于 API 认证和限流。以下是如何设置简单的限流策略:
- 在 etcd 中创建一个限流插件配置:
curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f03433ff8be652bca225fc1668' -X PUT -d '
{
"uri": "/hello",
"plugins": {
"rate-limiting": {
"allow": 10,
"second": 1
}
},
"upstream": {
"type": "round-robin",
"nodes": {
"127.0.0.1:8080": 1
}
}
}'
- 测试限流功能:
for i in {1..11}; do curl http://127.0.0.1:9080/hello; done
在此示例中,每秒只允许10个请求,第11个请求会被限制。
4. 典型生态项目
- etcd:作为 Apache APISIX 的数据存储,用于保存路由配置和状态信息。
- SkyWalking: 提供强大的分布式追踪和监控能力,可以集成到 APISIX 以监控 API 性能。
- Prometheus & Grafana:用于收集和展示 APISIX 的监控指标,构建可视化仪表盘。
- Kubernetes:可以配合 APISIX 作为 ingress 控制器,管理和调度容器服务的入口流量。
通过以上步骤,你应该已经对 Apache APISIX 有了初步了解并成功搭建了本地环境。继续探索官方文档,了解更多高级特性和插件配置,以满足特定的业务需求。
apisixThe Cloud-Native API Gateway项目地址:https://gitcode.com/gh_mirrors/ap/apisix