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` 需要它
wgethttp://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
# 添加 OpenResty 源
yuminstallyum-utils
yum-config-manager--add-repo \
https://openresty.org/package/centos/openresty.repo
# 安装 OpenResty, etcd 和 编译工具
yuminstall -y etcd openresty curl git gcc luarocks lua-devel
# 开启 etcd server
systemctlstart etcd
如果在访问过程中遇到访问不到的问题可以,可以试着关闭一下防火墙和selinux
# 防火墙关闭
systemctlstopfirewalld.service
systemctldisablefirewalld.service
# 关闭selinux
setenforce0
sed -i's/SELINUX=enforcing/SELINUX=disabled/'/etc/selinux/config
安装APISIX
yum install -yhttps://github.com/apache/incubator-apisix/releases/download/1.3/apisix-1.3-0.el7.noarch.rpm
启动和关闭apisix
apisixstart
apisixstop
查看服务是否启动
查看进程或者监听端口9080
#查看进程
ps aux|grepapisix
#查看端口
netstat -lntp|grep9080
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
#下载
wgethttps://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
# 下载
wgethttps://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获取源码
gitclonehttps://github.com/apache/incubator-apisix-dashboard.git
cdincubator-apisix-dashboard
#切换分支版本和apisix版本一致即可
gitcheckout1.0
#下载解决依赖包
yarn
#构建生成页面
yarnbuild: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/处理。
通过上图,可以查看到已经转发成功,说明反向代理设置成功。另外可以添加多节点进行负载均衡
网友评论