Repolode
apache

apache/apisix

基于 NGINX 和 etcd 构建的动态高性能 API 网关,支持路由、认证、限流及 AI 大模型流量管理。

可替代:Kong GatewayAWS API Gateway

Star
17,239
Fork
2,973
未关闭 Issue
256
最近提交
4天前

这是什么?

Apache APISIX 是一款 API 网关,既处理客户端进入服务的南北向流量,也处理服务之间的东西向流量。它基于 NGINX 和 etcd 构建,路由、上游、证书和插件都可以通过 REST Admin API 在运行时修改,无需重启进程。它也可以作为 Kubernetes Ingress Controller 使用。

项目提供负载均衡、健康检查、金丝雀发布、流量切分、熔断和流量镜像等流量管理能力,并支持 key-auth、JWT、OpenID Connect 等认证方式,以及 IP 和 Referer 访问控制和多种限流插件。可观测性方面可对接 Prometheus、Zipkin、SkyWalking 及多种外部日志系统,服务发现支持 etcd、Consul、Nacos、Eureka 和 Zookeeper。

APISIX 支持 TCP/UDP、gRPC(含 gRPC 到 JSON 转码)、MQTT、Dubbo 等多种协议代理。插件可以用 Lua 编写,也可以通过 RPC 使用 Java、Go、Python、Node.js,或借助 Proxy Wasm SDK 开发。其 AI 网关模式支持代理多家大模型服务、跨模型负载均衡与故障转移,以及基于 Token 的限流。

核心功能

  • 01路由、上游和插件支持运行时动态更新,无需重启
  • 02提供负载均衡、健康检查、金丝雀发布、流量切分和熔断
  • 03内置 key-auth、JWT、basic-auth、OpenID Connect 等认证插件
  • 04可对接 Consul、Nacos、Eureka 等服务发现系统
  • 05插件可用 Lua、Java、Go、Python、Node.js 编写,或通过 Proxy Wasm 开发
  • 06提供大模型代理、故障转移和基于 Token 的限流等 AI 网关能力

适用场景

  • 作为微服务的统一入口,将请求转发到后端服务
  • 作为 Kubernetes Ingress Controller 管理集群流量
  • 在多个大模型服务前部署统一网关,实现限流和故障转移
  • 基于请求头、Cookie 或参数做金丝雀发布和 A/B 测试

快速上手

  1. 1

    使用快速启动脚本安装并运行 APISIX(需要 Docker)

    按 README 中的官方说明安装
  2. 2

    验证 APISIX 在 9080 端口上运行

    curl "http://127.0.0.1:9080" --head | grep Server
  3. 3

    通过 9180 端口的 Admin API 创建第一条路由

    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 } } }'
  4. 4

    通过 APISIX 发送请求以确认路由生效

    curl "http://127.0.0.1:9080/get"

使用前须知

  • 快速启动需要先安装 Docker。
  • Admin API 默认只允许 127.0.0.1 访问,并使用 key 认证,远程访问需要额外配置。

标签

常见问题

apisix 是什么?
基于 NGINX 和 etcd 构建的动态高性能 API 网关,支持路由、认证、限流及 AI 大模型流量管理。 Apache APISIX 是一款 API 网关,既处理客户端进入服务的南北向流量,也处理服务之间的东西向流量。它基于 NGINX 和 etcd 构建,路由、上游、证书和插件都可以通过 REST Admin API 在运行时修改,无需重启进程。它也可以作为 Kubernetes Ingress Controller 使用。
apisix 可以免费使用吗?用的什么许可证?
apisix 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
apisix 还在维护吗?
活跃维护中。apisix 最近一次提交是在 2026年10月16日。
apisix 适合用来做什么?
作为微服务的统一入口,将请求转发到后端服务 作为 Kubernetes Ingress Controller 管理集群流量 在多个大模型服务前部署统一网关,实现限流和故障转移 基于请求头、Cookie 或参数做金丝雀发布和 A/B 测试
apisix 怎么安装和运行?
使用快速启动脚本安装并运行 APISIX(需要 Docker) 验证 APISIX 在 9080 端口上运行: curl "http://127.0.0.1:9080" --head | grep Server 通过 9180 端口的 Admin API 创建第一条路由: 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 } } }' 通过 APISIX 发送请求以确认路由生效: curl "http://127.0.0.1:9080/get"
在哪里获取 apisix?
源代码和安装说明在 GitHub 上:https://github.com/apache/apisix

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目