APISIX是一个云原生、高性能、可扩展的微服务 API 网关。它是基于 OpenResty和etcd来实现,和传统API网关相比,APISIX具备动态路由和插件热加载,特别适合微服务体系下的API管理。APISIX通过插件机制,提供动态负载平衡、身份验证、限流限速等功能,并且支持你自己开发的插件。
APISIX是基于云原生的微服务API网关,它是所有业务流量的入口,可以处理传统的南北向流量(server-client),也可以处理服务间的东西向流量(server-server),也可以当做 k8s ingress controller 来使用。
图片来源:官网
https://gitee.com/iresty/apisix
流量流向方向:通常核心网络组件绘制在顶部(NORTH),客户端绘制在底部(SOUTH),而数据中心内的不同服务器水平(EAST-WEST)绘制。
0x01:安装APISIX服务
- 先安装依赖服务
# 安装 epel, `luarocks` 需要它
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -ivh epel-release-latest-7.noarch.rpm
# 添加 OpenResty 源
yum install yum-utils yum-config-manager --add-repo \ https://openresty.org/package/centos/openresty.repo
# 安装 OpenResty, etcd 和 编译工具
yum install -y etcd openresty curl git gcc luarocks lua-devel
# 开启 etcd server
systemctl start etcd
如果在访问过程中遇到访问不到的问题可以,可以试着关闭一下防火墙和selinux
# 防火墙关闭
systemctl stop firewalld.service systemctl disable firewalld.service
# 关闭selinux
setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
- 安装APISIX
yum install -y https://github.com/apache/incubator-apisix/releases/download/1.3/apisix-1.3-0.el7.noarch.rpm
- 启动和关闭apisix
apisix start apisix stop
- 查看服务是否启动
查看进程或者监听端口9080
#查看进程 ps aux|grep apisix #查看端口 netstat -lntp|grep 9080
0x02:安装控制台apisix-dashboard
新版本的APISIX已经内置了dashboard可视化WEB控制台,可以很直观的看到各种router配置、upstream配置等等。浏览器直接访问就可以打开dashboard:
http://127.0.0.1:9080/apisix/dashboard
以下步骤是基于APISIX一些低版本没有内置apisix-dashboard控制台的情况,安装apisix-dashboard控制台。此控制台页面基于VUE开发,需要通过yarn编译生成。官网地址
https://github.com/apache/incubator-apisix-dashboard
安装基础编译环境:node npm yarn
- 安装node和npm
#下载
wget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
#解压部署
tar xvf node-v12.16.1-linux-x64.tar.xz mv node-v12.16.1-linux-x64 /usr/local/node
#配置环境变量
echo 'PATH=/usr/local/node/bin/:$PATH' >> /etc/profile source /etc/profile
#测试环境是否安装成功
node --version npm --version
- 安装yarn
# 下载
wget https://github.com/yarnpkg/yarn/releases/download/v1.22.4/yarn-v1.22.4.tar.gz
#解压部署
tar xvf yarn-v1.22.4.tar.gz mv yarn-v1.22.4 /usr/local/yarn
#配置环境变量
echo 'PATH=/usr/local/yarn/bin/:$PATH' >> /etc/profile source /etc/profile
#测试环境是否安装成功
yarn --version
- 编译dashboard组件,生成静态页面
# git获取源码
git clone https://github.com/apache/incubator-apisix-dashboard.git cd incubator-apisix-dashboard
#切换分支版本和apisix版本一致即可
git checkout 1.0
#下载解决依赖包
yarn
#构建生成页面
yarn build:prod
#复制到访问路径
mkdir -p /usr/local/apisix/dashboard cp -r ./* /usr/local/apisix/dashboard
- 验证是否安装成功
http://127.0.0.1:9080/apisix/dashboard/
0x03:测试验证
- 随便找一个服务,这里启动一个nacos配置服务
- 登录apisix-dashboard控制台
http://127.0.0.1:9080/apisix/dashboard/
- 配置指向后端服务的upstream
- 配置路由规则信息Routes
- 验证方向代理
访问http://127.0.0.1:9080/nacos/
9080是apisix服务的端口;/nacos/是配置的路由规则,只要/nacos/打头的都转发到http://192.168.56.1:8848/nacos/处理。
通过上图,可以查看到已经转发成功,说明反向代理设置成功。另外可以添加多节点进行负载均衡