概述
文章目录
- APISIX
- 核心对象
- Router对象代表的含义是什么?
- upstream对象代表的含义是什么?
- Router与Upstream的关系
- 环境搭建
- APISIX搭建
- apisix-dashboard
- 测试路由功能
调研网关调研好久,了解到kong,gravitte之类的网关,最后还是觉得APISIX 666实在。据说性能比Kong要好。下面记录下搭建笔记
APISIX
在Web Gateway中我整理了网关到底是什么东西,这里我来介绍下APISIX对于网关的封装。
APISIX官网上的图不太清楚,我自己整理下流程大概就是这样:
客户端请求到达APISIX网关,APISIX首先进行路由匹配,然后执行最终匹配路由所绑定的插件,插件执行完可能请求会被拦截(认证失败等),可能会被路由到最终目标服务上。这里它引入了一个Upstream对象,相当于一个服务实例列表的抽象。
核心对象
Router对象代表的含义是什么?
其实这里的路由和nginx中路由概念是相当的。一个路由包含匹配路径和所属域名。
另外包含所绑定的插件和upstream(后端服务实例列表)。
选择Upstream对象,底下的都是默认信息填充的。
选择插件(包括限流,认证插件…)
upstream对象代表的含义是什么?
upstream是服务实例列表对象
填写实例的端口和IP等信息,还可以选择什么样的负载均衡算法。
Router与Upstream的关系
Router和Upstream是1对N关系,比如你一个应用有两套API,管理员和用户,权限不一样。/app/user
,/app/admin
两个Router就可以绑定到同一个upstream对象。
环境搭建
APISIX前后端分离的,我搭建主要是为了验证我理解的概念,用spring boot简单跑个web应用试一下。
APISIX搭建
先得装一堆依赖,最好电脑联网,参考依赖安装。
然后下载apisix rpm
sudo yum install -y https://github.com/apache/apisix/releases/download/2.1/apisix-2.1-0.el7.noarch.rpm
# start apisix
apisix start
启动完之后,应该是安装在CentOS7的/usr/local/apisix
下。日志也在那里。
apisix-dashboard
安装golang 13+,nodev14+,yarn(类似npm)
# golang
yum -y install golang
go env -w GOPROXY=https://goproxy.cn,direct
# yarn
wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
sudo yum -y install yarn
# nodejs
tar xz node-v15.3.0-linux-x64.tar.xz
ln -s /var/lib/node/node-v15.3.0-linux-x64/bin/node /usr/bin/node
然后下载前端项目:
git clone -b v2.0 https://github.com/apache/apisix-dashboard.git
cd apisix-dashboard
make build
有点慢,yarn可能会出现node版本问题,再执行下:
ln -s /var/lib/node/node-v15.3.0-linux-x64/bin/node /usr/bin/node
把前端项目跑起来:
$ cd ./output
$ ./manager-api
# or running in background
$ nohup ./manager-api &
这个前端项目跑的端口号和地址,你可以去output文件夹下有个conf/conf.yaml
看,
conf:
listen:
host: 0.0.0.0 # `manager api` listening ip or host name
port: 8080 # `manager port
测试路由功能
随便跑个web项目。比如localhost:7000
上,先在dashboard上新建一个upstream:
配个路由,填路径,比如你的web项目根路径是/
,就填/*
,如果是/app
,就填/app/*
:
然后绑定到刚才创建的upstream对象:
ok,搞定后,通过网关端口访问你填的那个路径:
# route的名字不影响路由啊,所以最好每个应用有个根路径比如/app
curl http://$ip:9080/app/getDate
最后
以上就是坦率爆米花为你收集整理的APISIX的全部内容,希望文章能够帮你解决APISIX所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复