Apache APISIX 开源、云原生、高性能的 API 网关 (小白版完整详解)

laoluo
laoluo
laoluo
管理员
228
文章
0
粉丝
教程评论17阅读模式

Apache APISIX 是开源、云原生、高性能的 API 网关,相当于所有后端服务的统一大门
用户请求先打到 APISIX,由它判断转发到哪个后端服务,同时做鉴权、限流、监控、灰度发布等,改配置不用重启网关,这是它最大亮点。

它是 Apache 基金会顶级项目,底层基于 Nginx+LuaJIT,用 etcd 存配置,支持 HTTP/HTTPS/gRPC/WebSocket/TCP/UDP,现在也可以作为 AI 网关管理大模型接口。

Apache APISIX 开源、云原生、高性能的 API 网关 (小白版完整详解)

一、架构:控制平面 + 数据平面(重点,小白最容易懵)

  1. 数据平面(Data Plane):干活的
    就是 APISIX 网关节点,监听端口(默认9080HTTP,9443HTTPS),接收用户请求、路由匹配、执行插件、转发到后端服务
    所有流量在这里处理,性能很高,单核心可达约 18000QPS,增加延迟只有 0.2ms 左右。
  2. 控制平面(Control Plane):管配置的
    • etcd:分布式配置仓库,保存路由、上游、插件全部配置;所有网关节点实时监听 etcd 变化,配置热更新,不需要重启 APISIX(Nginx 原生改配置需要 reload)
    • Admin API:接口,用来增删改查配置(curl / 脚本调用)
    • Dashboard(可选):图形化网页后台,点点鼠标配置,小白首选

简单比喻:
数据平面 = 门店前台接待客户;控制平面 = 后台办公室,修改规则,前台立刻生效,不用关门重启。

二、6 大核心概念(必须看懂)

名词 通俗解释 作用
Route 路由 导航规则 匹配请求(域名、路径、请求方法),决定这个请求交给谁,绑定插件
Upstream 上游 后端服务集群 真实业务服务器,可以多台机器,自带负载均衡、健康检查;路由转发目标
Service 服务 公共配置模板 多个路由共用同一套上游 + 插件,避免重复写配置
Consumer 消费者 API 调用方 调用接口的用户 / 应用,配置 key、token 身份认证,做权限控制
Plugin 插件 功能插件包 网关能力,开箱即用,100 + 插件:限流、密钥认证、日志、监控、CORS、WAF、灰度发布等
SSL 证书 HTTPS 证书,绑定域名,APISIX 统一管理证书

一个请求完整流程(浏览器访问 https://api.xxx.com/user/list

  1. 用户请求到达 APISIX(9443 端口)
  2. APISIX 匹配 SSL 证书,完成 HTTPS 解密
  3. Route 路由匹配:看域名 + 路径 /user/list 匹配哪条路由
  4. 执行路由绑定的插件:比如验证 token、限流、记录访问日志
  5. 找到对应的Upstream 上游,通过负载均衡选一台健康后端服务器
  6. 转发请求给后端业务服务
  7. 后端返回结果,APISIX 再经过插件处理,返回给浏览器

✨核心亮点:所有配置修改,实时生效,不用重启网关。传统 Nginx 改配置需要 reload,流量会短暂抖动。

三、常用功能(日常会用到)

  1. 动态路由:按域名、URL、请求头、IP 匹配转发
  2. 负载均衡:轮询、加权轮询、IP 哈希,自带健康检查,自动剔除宕机后端
  3. 身份认证:key-auth、JWT、Basic Auth,没有凭证直接拒绝访问
  4. 限流熔断:限制单用户每秒请求数,防止后端被打崩;后端故障自动熔断
  5. 灰度 / 金丝雀发布:一小部分流量转发新版本服务,用来测试新版本
  6. 可观测:采集请求耗时、状态码,对接 Prometheus、SkyWalking、ELK 日志
  7. HTTPS 证书管理:动态上传、更新证书,不用改 Nginx 配置
  8. 协议转换:HTTP 转 gRPC,支持 WebSocket、Dubbo、MQTT 等协议

四、APISIX vs Nginx / Kong(小白怎么选)

  1. Nginx:静态 web 服务器,也能反向代理;缺点:配置文件静态,改配置必须 reload,复杂服务治理需要自己写大量脚本。
  2. Kong:老牌 API 网关,也是 Nginx+Lua;APISIX 优势:原生云原生、etcd 动态配置、国内社区活跃、插件丰富,性能更强。
  3. APISIX:专为微服务 API 管理设计,动态配置是核心优势,K8s 友好,适合 API 统一入口、微服务集群。

简单选型:

  • 只是简单网站反向代理:Nginx 足够
  • 大量 API 接口、微服务、频繁变更路由、灰度发布:优先 APISIX

五、快速上手:Docker 一键启动(小白推荐,不用装一堆依赖)

前提:装好 Docker + Docker Compose

# docker-compose.yml
version: "3.8"
services:
  apisix:
    image: apache/apisix:3.16.0
    restart: always
    volumes:
      - ./apisix_conf:/usr/local/apisix/conf
    ports:
      - "9080:9080"
      - "9180:9180" # Admin API端口
      - "9443:9443"
    depends_on:
      - etcd
  etcd:
    image: bitnami/etcd:3.5
    restart: always
    environment:
      ETCD_ADVERTISE_CLIENT_URLS: http://etcd:2379
      ETCD_LISTEN_CLIENT_URLS: http://0.0.0.0:2379
      ALLOW_NONE_AUTHENTICATION: yes

启动:

docker-compose up -d

  • 网关访问地址:http://127.0.0.1:9080
  • Admin API:http://127.0.0.1:9180/apisix/admin
  • Dashboard:单独部署,网页可视化管理

创建第一条路由示例(curl 命令)

/get请求转发到httpbin.org测试服务:

curl -i "http://127.0.0.1:9180/apisix/admin/routes/1" -X PUT -d '
{
"uri": "/get",
"upstream": {
"type": "roundrobin",
"nodes": {
"httpbin.org:80": 1
}
}
}'

测试访问:

curl http://127.0.0.1:9080/get

能返回 json 就代表成功了。

六、适合什么场景 & 不适合场景

✅适合:

  • 微服务项目,统一所有 API 入口
  • 对外提供开放 API 平台,需要鉴权、限流
  • 需要灰度发布、蓝绿发布
  • K8s 集群作为 Ingress 网关
  • AI 大模型接口统一管理(AI 网关)

❌不适合:

  • 纯静态网站,简单反向代理(Nginx 足够,没必要多维护一套组件)
  • 单机极小项目,没有多个后端服务

七、小白常见坑提醒

  1. Admin API 端口 9180:生产环境一定要加 IP 白名单,不能对公网开放,否则任何人都能篡改网关配置
  2. etcd 是核心:etcd 挂掉,APISIX 无法更新配置;生产 etcd 必须集群部署
  3. 插件是热加载,但部分插件参数修改要看插件文档,不是所有修改都完全无感知
  4. 不要把 APISIX 直接暴露公网,前面可以套一层 CDN/WAF

八、学习路线(小白循序渐进)

  1. Docker 本地跑 APISIX+Dashboard,网页上手动新建 Route、Upstream,直观感受转发
  2. 练习插件:key-auth 密钥认证、limit-req 限流
  3. 学习灰度发布、健康检查
  4. 接入监控 Prometheus 看指标
  5. 集群部署、K8s Ingress 使用

 
laoluo
  • 本文由 laoluo 发表于2026年9月16日 12:08:25
  • 转载请务必保留本文链接:https://www.mydata-api.com/tutorials/547.html
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证