apisix README

The project's README from github.com/apache/apisix. As one markdown file: README.md.

Apache APISIX API Gateway | AI Gateway

APISIX logo

Build Status License GitHub release GitHub stars Docker Pulls Commit activity GitHub issues Slack

Apache APISIX is a dynamic, real-time, high-performance API Gateway.

APISIX API Gateway provides rich traffic management features such as load balancing, dynamic upstream, canary release, circuit breaking, authentication, observability, and more. You can use it to handle traditional north-south traffic, as well as east-west traffic between services. It can also be used as a Kubernetes ingress controller.

Table of Contents

Why APISIX

APISIX is built on top of NGINX and etcd. Compared with traditional API gateways, APISIX has dynamic routing and hot-loading of plugins, which is especially suitable for API management under a microservice architecture.

The technical architecture of Apache APISIX:

Technical architecture of Apache APISIX

AI Gateway

APISIX can serve as an AI Gateway through its flexible plugin system, providing:

APISIX also provides the mcp-bridge plugin to seamlessly convert stdio-based MCP servers to scalable HTTP SSE services.

Get Started

Install and run APISIX with a single command using the quickstart script (requires Docker):

curl -sL https://run.api7.ai/apisix/quickstart | sh

This starts APISIX (listening on port 9080) together with its etcd configuration store. Verify it is running:

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

Create your first route via the Admin API (port 9180) to proxy requests to an upstream service:

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

Send a request through APISIX to confirm the route works:

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

To learn more, follow the Getting Started guide and the installation documentation for other deployment methods. To extend APISIX, see the plugin development guide, the plugin concept, and the REST Admin API reference.

For more documents, please refer to the Apache APISIX Documentation site.

Features

You can use APISIX API Gateway as a traffic entrance to process all business data, including dynamic routing, dynamic upstream, dynamic certificates, A/B testing, canary release, blue-green deployment, limit rate, defense against malicious attacks, metrics, monitoring alarms, service observability, service governance, etc.

Benchmark

Using AWS's eight-core server, APISIX's QPS reaches 140,000 with a latency of only 0.2 ms.

Benchmark script has been open sourced, welcome to try and contribute.

APISIX also works perfectly in AWS graviton3 C7g.

Community

User Stories

Who Uses APISIX API Gateway?

A wide variety of companies and organizations use APISIX API Gateway for research, production and commercial product, below are some of them:

Logos

Acknowledgments

Inspired by Kong and Orange.

License

Apache 2.0 License

apisix (apache/apisix)

Searching Database…

17.2K ·GitHub
这是什么东西?Apache APISIX 是一个开源的、动态的、实时的、高性能 API 网关,同时也可以作为 AI 网关使用。它为南北向和东西向流量提供流量管理功能——负载均衡、金丝雀发布、熔断、身份认证、可观测性等。
它是部署在我的应用前面的服务,还是我要在代码里调用的库?它是一个需要你自行部署的独立网关服务:基于 NGINX 构建,使用 etcd 作为配置存储,运行时你可以通过 REST Admin API 来管理它。
我该怎么快速试一下?运行快速启动脚本(需要 Docker):它会启动 APISIX 并监听 9080 端口,同时启动作为配置存储的 etcd。然后通过 9180 端口上的 Admin API 创建你的第一条路由,并发送一个测试请求试试看。
etcd 需要单独部署,还是已经内置了?快速启动脚本会把 etcd 和 APISIX 一起启动。在生产环境中,你可以在同一个集群里配置多个 etcd 地址以实现高可用,也可以使用独立(standalone)模式,从本地 YAML 文件加载路由规则——这种模式对 Kubernetes 很友好。
Admin API 默认是受限访问的吗?是的——默认情况下它只接受来自 127.0.0.1 的请求;要允许其他 IP 访问,你需要修改 conf/config.yaml 中的 allowadmin 字段,而且调用方需要通过 key 鉴权。
它和传统 API 网关相比有什么不同?它支持动态路由和插件热加载,无需重启即可生效,项目方表示这使它特别适合微服务架构下的 API 管理。它的设计灵感来自 Kong 和 Orange。
它在运维和监控方面提供了什么?提供 Prometheus 指标、Zipkin 链路追踪和 Apache SkyWalking APM,支持把访问日志导出到 Kafka、ClickHouse、Elasticsearch、Datadog、Splunk 等系统,还带有控制台仪表盘,并且节点无状态,通过 etcd 组成集群。
What are similar projects?kong, tyk, busbar, istio, tengine, coredns, evenfire, ingress-nginx
Creator
apache
Size
47.7 MB
Stars
17.2K
Age
7y
Commits · 90 Days