简介
Apache APISIX 是开源的高性能软件网关, 现属于apache软件基金会的一个顶级项目。
其技术栈是基于 Nginx + LuaJIT,类似OpenResty。以Netcraft的数据为例,Nginx是全球web服务器的首选,OpenResty第三。同架构apisix 凭借一致的可靠性,以及更强的性能,在国内市场中也名列前茅。
APISIX 自带丰富的开源插件,装完即用。活跃的社区,自带中文buffer,沟通毫无压力。自带的ui,小白也可以轻松上手。
安装部署
安装部署请参看官方文档,传送门:apisix。配置文件中的端口需要说明一下:
node_listen: xxx #该端口为客户端访问的
port: xxx #该端口为apix管理控制台UI入口
核心概念
- 路由(Route): 配置路由规则,用来转发请求
域名: 请求的域名匹配到,才会进这个路由/服务
客户端地址: 类似白名单,符合的才能进这个路由/服务
路径改写: 进来的请求路径,可以根据规则加减前缀转发到后端服务
- 服务(Service): 上述路由的聚合
在创建路由中,"绑定服务"使用的就是它了
- 上游(Upstream): 后端服务的聚合,一般高可用场景下用不上.
- 插件(Plugin):提供的丰富的插件,按需选用
由此延伸的使用场景就三种组合搭配:
- 单路由
- 路由+服务
- 路由+服务+上游
插件的使用
APISIX提供的插件都自带文档。
先从自己的需求出发,从插件文档中圈定插件。再确定插件的生效周期: 转发请求前调用插件,比如使用率超高的auth系列.有些是转发请求后调用插件,比如log。
从UI中有两处可以配置插件
- 路由(Route): 请求进来后,匹配这到这条路由规则,根据生效周期,调用一下该路由下面的所有插件。
- 服务(Service): 请求进来后匹配的
通过api也可以全局配
以request-validation为例:
点击"文档" 可以获取相应的插件文档,需要什么参数就复制什么参数到这里
"JSON" 按钮是说明插件的配置参数以json格式保存.