Apache APISIX is a dynamic, real-time, high-performance API gateway.
APISIX provides rich traffic management features such as load balancing, dynamic upstream, canary release, circuit breaking, authentication, observability, and more.
You can use Apache APISIX to handle traditional north-south traffic, as well as east-west traffic between services. It can also be used as a k8s ingress controller.
The technical architecture of Apache APISIX:
#apisix
on our Slack to meet the team and ask questions#ApacheAPISIX
You can use Apache APISIX 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.
All platforms
Multi protocols
client_id
, both support MQTT 3.1.*, 5.0.Full Dynamic
host
, uri
, schema
, enable_websocket
, headers
of the request before send to upstream.Fine-grained routing
cookie
, args
, etc. as routing conditions to implement canary release, A/B testing, etc.{"arg_age", ">", 24}
Security
OPS friendly
allow_admin
field in conf/config.yaml
to specify a list of IPs that are allowed to call the Admin API. Also, note that the Admin API uses key auth to verify the identity of the caller. The admin_key
field in conf/config.yaml
needs to be modified before deployment to ensure security.Highly scalable
rewrite
, access
, header filter
, body filter
and log
, also allows to hook the balancer
stage.balancer
phase.APISIX Installed and tested in the following systems:
CentOS 7, Ubuntu 16.04, Ubuntu 18.04, Debian 9, Debian 10, macOS, ARM64 Ubuntu 18.04
There are several ways to install the Apache Release version of APISIX:
Source code compilation (applicable to all systems)
Installation runtime dependencies: OpenResty and etcd, and compilation dependencies: luarocks. Refer to install dependencies documentation
Download the latest source code release package:
$ mkdir apisix-2.6
$ wget https://downloads.apache.org/apisix/2.6/apache-apisix-2.6-src.tgz
$ tar zxvf apache-apisix-2.6-src.tgz -C apisix-2.6
Install the dependencies:
$ make deps
check version of APISIX:
$ ./bin/apisix version
start APISIX:
$ ./bin/apisix start
Docker image (applicable to all systems)
By default, the latest Apache release package will be pulled:
$ docker pull apache/apisix
The Docker image does not include etcd
; you can refer to docker compose example to start a test cluster.
RPM package(only for CentOS 7)
$ sudo yum install -y https://github.com/apache/apisix/releases/download/2.6/apisix-2.6-0.x86_64.rpm
check the version of APISIX:
$ apisix version
start APISIX:
$ apisix start
Note: Apache APISIX would not support the v2 protocol of etcd anymore since APISIX v2.0, and the minimum etcd version supported is v3.4.0. Please update etcd when needed. If you need to migrate your data from etcd v2 to v3, please follow etcd migration guide.
For developers, you can use the latest master branch to experience more features
$ git clone git@github.com:apache/apisix.git
$ cd apisix
$ make deps
$ git clone https://github.com/apache/apisix-docker.git
$ cd apisix-docker
$ sudo docker build -f alpine-dev/Dockerfile .
Getting started
The getting started guide is a great way to learn the basics of APISIX. Just follow the steps in Getting Started.
Further, you can follow the documentation to try more plugins.
Admin API
Apache APISIX provides REST Admin API to dynamic control the Apache APISIX cluster.
Plugin development
You can refer to plugin development guide, and sample plugin echo
documentation and code implementation.
Please note that Apache APISIX plugins' added, updated, deleted, etc., are hot-loaded without restarting the service.
For more documents, please refer to Apache APISIX Document Index
Using AWS's eight-core server, APISIX's QPS reaches 140,000 with a latency of only 0.2 ms.
Benchmark script, test method and process has been open source, welcome to try and contribute.
Features | Apache APISIX | KONG |
---|---|---|
Dynamic upstream | Yes | Yes |
Dynamic router | Yes | Yes |
Health check | Yes | Yes |
Dynamic SSL | Yes | Yes |
L4 and L7 proxy | Yes | Yes |
Opentracing | Yes | Yes |
Custom plugin | Yes | Yes |
REST API | Yes | Yes |
CLI | Yes | Yes |
Features | Apache APISIX | Kong |
---|---|---|
Belongs to | Apache Software Foundation | Kong Inc. |
Tech Architecture | Nginx + etcd | Nginx + Postgres |
Communication channels | Mail list, Wechat group, QQ group, GitHub, Slack, meetup | GitHub, Freenode, forum |
Single-core CPU, QPS(enable limit-count and Prometheus plugins) | 18000 | 1700 |
Latency | 0.2 ms | 2 ms |
Dubbo | Yes | No |
Configuration rollback | Yes | No |
Route with TTL | Yes | No |
Plug-in hot loading | Yes | No |
Custom LB and route | Yes | No |
REST API <--> gRPC transcoding | Yes | No |
Tengine | Yes | No |
MQTT | Yes | No |
Configuration effective time | Event-driven, < 1ms | polling, 5 seconds |
Dashboard | Yes | No |
IdP | Yes | No |
Configuration Center HA | Yes | No |
Speed limit for a specified time window | Yes | No |
Support any Nginx variable as routing condition | Yes | No |
Benchmark comparison test details data
visit here to generate Contributor Over Time.
A wide variety of companies and organizations use APISIX for research, production and commercial product, including:
Users are encouraged to add themselves to the Powered By page.
APISIX enriches the
CNCF API Gateway Landscape.
Inspired by Kong and Orange.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。