Apache APISIX 入门教程:如何安全高效地发布你的 API
前言
在现代微服务架构中,API 网关扮演着至关重要的角色。作为一款高性能、可扩展的开源 API 网关,Apache APISIX 提供了丰富的功能来帮助开发者管理和发布 API。本文将详细介绍如何使用 APISIX 发布 API,包括核心概念解析和实际操作步骤。
核心概念解析
在开始实际操作前,我们需要先理解 APISIX 中的几个核心概念:
上游(Upstream)
上游代表后端服务或节点的抽象,主要功能包括:
- 定义一组后端服务节点
- 配置负载均衡策略
- 管理健康检查机制
- 实现服务发现
通过上游对象,我们可以轻松管理多个后端实例,实现流量的动态分配。
路由(Route)
路由是 APISIX 最核心的资源对象,主要包含三部分:
- 匹配规则:定义哪些请求会被该路由处理
- 插件配置:定义请求处理过程中要应用的插件
- 上游信息:指定请求最终转发到的后端服务
路由支持多种匹配条件,包括 URI、HTTP 方法、请求头等。
服务(Service)
服务是一组路由的抽象,通常与上游服务一一对应。使用服务可以实现:
- 多个路由共享相同的上游配置
- 集中管理相关 API 的公共配置
- 简化复杂场景下的路由管理
环境准备
在开始发布 API 前,请确保:
- 已安装并运行 Apache APISIX
- 能够访问 APISIX 的管理接口(默认端口 9180)
- 准备好有效的 Admin API Key(默认值为 edd1c9f034335f136f87ad84b625c8f1)
发布 API 的详细步骤
第一步:创建上游服务
上游服务定义了我们的后端服务节点。以下是创建一个简单上游的示例:
curl "http://127.0.0.1:9180/apisix/admin/upstreams/1" \
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" -X PUT -d '
{
"type": "roundrobin",
"nodes": {
"httpbin.org:80": 1
}
}'
参数说明:
type: 负载均衡算法,这里使用轮询(roundrobin)nodes: 后端服务节点及其权重upstream_id: 设置为 1 便于后续路由引用
第二步:创建路由规则
创建路由将客户端请求映射到我们定义的上游服务:
curl "http://127.0.0.1:9180/apisix/admin/routes/1" \
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" -X PUT -d '
{
"methods": ["GET"],
"host": "example.com",
"uri": "/anything/*",
"upstream_id": "1"
}'
路由配置说明:
methods: 匹配的 HTTP 方法host: 匹配的域名uri: 匹配的 URI 路径(支持通配符)upstream_id: 引用我们之前创建的上游
替代方案:直接在上游中定义路由
对于简单场景,可以直接在路由中定义上游,无需单独创建上游对象:
curl "http://127.0.0.1:9180/apisix/admin/routes/1" \
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" -X PUT -d '
{
"methods": ["GET"],
"host": "example.com",
"uri": "/anything/*",
"upstream": {
"type": "roundrobin",
"nodes": {
"httpbin.org:80": 1
}
}
}'
第三步:测试路由
创建完成后,我们可以测试路由是否正常工作:
curl -i -X GET "http://127.0.0.1:9080/anything/get?foo1=bar1&foo2=bar2" -H "Host: example.com"
预期行为:
- 请求发送到 APISIX(端口 9080)
- APISIX 根据路由规则匹配请求
- 请求被转发到 httpbin.org:80
- 返回 httpbin.org 的响应
进阶建议
- 负载均衡:可以配置多个后端节点,APISIX 支持多种负载均衡算法
- 健康检查:为上游服务配置健康检查,自动剔除不健康的节点
- 插件扩展:考虑添加限流、认证等插件增强 API 安全性
- TLS 加密:为 API 配置 HTTPS 保护数据传输安全
总结
通过本文,我们学习了如何在 Apache APISIX 中发布 API 的基本流程。从创建上游服务到定义路由规则,APISIX 提供了灵活而强大的功能来管理 API 流量。对于生产环境,建议进一步探索 APISIX 的高级功能,如插件系统、流量监控等,以构建更健壮的 API 网关解决方案。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



