APISIX 是一个云原生、高性能、可扩展的微服务 API 网关。
它是基于 OpenResty 和 etcd 来实现,和传统 API 网关相比,APISIX 具备动态路由和插件热加载,特别适合微服务体系下的 API 管理。
如果你正在构建网站、移动设备或 IoT(物联网)的应用,那么你可能需要使用 API 网关来处理接口流量。
APISIX 是基于云原生的微服务 API 网关,可以处理传统的南北向流量,也可以处理服务间的东西向流量。
APISIX 通过插件机制,提供动态负载平衡、身份验证、限流限速等功能,并且支持你自己开发的插件。
更多详细的信息,可以查阅 APISIX 的白皮书
rewrite
,access
,header filer
,body filter
和log
,还允许挂载 balancer
阶段。我们部署了一个在线的 dashboard ,方便您了解 APISIX。
APISIX 在以下操作系统中做过安装和运行测试:
操作系统 | OpenResty | 状态 |
---|---|---|
CentOS 7 | 1.15.8.1 | √ |
Ubuntu 16.04 | 1.15.8.1 | √ |
Ubuntu 18.04 | 1.15.8.1 | √ |
Debian 9 | 1.15.8.1 | √ |
Mac OSX | 1.15.8.1 | √ |
现在有两种方式来安装: 如果你是 CentOS 7 的系统,推荐使用 RPM 包安装;其他的系统推荐使用 Luarocks 安装。
NOTE: APISIX 目前仅支持 etcd 的 v2 协议存储,但最新版的 etcd (3.4 开始)已经默认关闭 v2 协议。 需要在启动参数中添加 --enable-v2=true
,才能启用 v2 协议。支持 etcd 的 v3 协议开发工作已经开始,很快就能与大家见面。
sudo yum install yum-utils sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo sudo yum install -y openresty etcd sudo service etcd start sudo yum install -y https://github.com/iresty/apisix/releases/download/v0.7/apisix-0.7-0.el7.noarch.rpm
如果安装成功,就可以参考 快速上手 来进行体验。如果失败,欢迎反馈给我们。
APISIX 是基于 openresty 之上构建的, 配置数据的存储和分发是通过 etcd 来完成。
我们推荐你使用 luarocks 来安装 APISIX,不同的操作系统发行版本有不同的依赖和安装步骤,具体可以参考: 安装前的依赖
sudo luarocks install --lua-dir=/usr/local/openresty/luajit apisix
如果你得到 unknow flag --lua-dir
这类错误,这是因为 luarocks
版本过低。这时我们需要移除 lua-dir
选项重新运行:luarocks install apisix
。
如果一切顺利,你会在最后看到这样的信息:
apisix is now built and installed in /usr (license: Apache License 2.0)
恭喜你,APISIX 已经安装成功了。
如果你是一个开发者,可以从 开发文档 中获取搭建开发环境和运行测试案例的步骤.
sudo apisix start
你可以测试限流插件,来上手体验 APISIX,按照限流插件文档的步骤即可.
更进一步,你可以跟着文档来尝试更多的插件.
APISIX 内置了 dashboard,使用浏览器打开 http://127.0.0.1:9080/apisix/dashboard
即可使用, 不用填写用户名和密码,直接登录。
dashboard 默认只放行了 127.0.0.0/24
的本地 IP,其他地址禁止访问。 你可以自行修改 conf/config.yaml
中的 allow_admin
字段,来增加更多可以访问 dashboard 的 IP。
使用谷歌云的 4 核心服务器来运行 APISIX,QPS 可以达到 60000,同时延时只有 0.5 毫秒。
你可以看出性能测试文档来了解更多详细内容。
APISIX 被纳入 云原生软件基金会 API 网关全景图:
在社区中经常会有开发者问到的一些问题,我们整理在下面这份 FAQ 中:
如果你关心的问题没有在其中,欢迎提交 issue 或者加入下面的 QQ 群和我们沟通。
如果你对 APISIX 的开发和使用感兴趣,欢迎加入我们的 QQ 群来交流:
灵感来自 Kong 和 Orange。