笔者系统是 centos 7.8 源码构建, centos 8.x 由于lua 的组件的一些原因, 无法安装, 请使用docker 的方式构建 . 如果组件不确定, 可以先执行( 2. 下载最新的发行版源码包), 执行 make deps 的时候会检查出那些依赖没有安装,可以根据这个安装缺少的组件
1. Apisix 依赖
Apisix 依赖于 Openresty, 和 etcd ( nosql 中间件), 并且还要编译依赖 luarocks(lua 包管理工具). 请保证, 系统已经安装好了上述三个组件.
2. 下载最新的发行版源码包
mkdir apisix-2.1
wget https://downloads.apache.org/apisix/2.1/apache-apisix-2.1-src.tgz
tar zxvf apache-apisix-2.1-src.tgz -C apisix-2.1
## 检查是否安装好上述的依赖
make deps
## 查看版本
./bin/apisix version
## 开启apisix
./bin/apisix start
## 获取apisix 的常用命令介绍
./bin/apisix help
## 判断是否能够访问,在命令行中执行
curl --location --request GET 'http://localhost:9080'
获得到结果: {"error_msg":"404 Route Not Found"} , 表示你的apisix 已经安装完成
3. 源码构建 apisix-dashboard
3.1 go环境搭建
wget https://golang.google.cn/dl/go1.15.6.linux-amd64.tar.gz
rm -rf /usr/local/go
tar -zxf go1.15.6.linux-amd64.tar.gz -C /usr/local/
vim /etc/profile/
## 将下面 4行 , 写到文件末尾
export GO111MODULE=on
export GOROOT=/usr/local/go
export GOPATH=/home/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
保存后 执行 source /etc/profile
3.2 nodejs 和yarn 安装
直接使用已编译好的包, Node 官网已经把 linux 下载版本更改为已编译好的版本了,我们可以直接下载解压后使用:
wget https://nodejs.org/dist/v14.15.3/node-v14.15.3-linux-x64.tar.xz // 下载
tar xf node-v10.9.0-linux-x64.tar.xz // 解压
cd node-v10.9.0-linux-x64/ // 进入解压目录
./bin/node -v // 执行node命令 查看版本
解压文件的 bin 目录底下包含了 node、npm 等命令,我们可以使用 ln 命令来设置软连接:
ln -s /usr/software/nodejs/bin/npm /usr/local/bin/
ln -s /usr/software/nodejs/bin/node /usr/local/bin/
## 执行node 是否出现, 版本信息, 如果有安装成功
node
## 如果速度慢考虑使用taobao 源
npm config set registry=http://registry.npm.taobao.org
## 升级npm 到最新版本
npm install -g npm
## 安装 yarn
npm install -g yarn
3.3 编译apisix-dashboard
## 请确保环境已经安装了git
git clone -b v2.2 https://github.com/apache/apisix-dashboard.git
cd apisix-dashboard
## make build 执行很忙, 请耐心等待
make build
cd ./output
## 启动管理版本,
./manager-api
## 如果要后台运行
nohup ./manager-api &
## 查看是否运行, 如果有返回, 说明搭建成功, 端口默认9000
curl --location --request GET 'http://localhost:9000'
4. 出现的一些问题:
- 请确保 Apisix 和 Apisix-dashboard 的版本兼容, 目前截至(2020-12-27), Apisix 2.1,对应 Apisix- dashboard 2.2, 版本不对应将造成不可使用的问题
- Apisix 的端口为什么是9080 , 这个是Apisix 默认监听的端口, 可以通过 apisix 构建包下面的conf/apisix.yaml, 修改 监听端口, node_listen, 并且这里可以修改 etcd 的等相关配置.
- Apisix-dashboard 在外网不能访问, 这是由于安全问题,apiaix 维护者默认只能本地访问,可以在Apisix-dashboard 的包路径下面的output 路径修改 /output/conf/conf.yaml, 修改允许访问的host, conf.listen.host 修改为0.0.0.0, 如果你要限制为允许某个ip段, 访问也可以写成某个ip端也可以.
- Apisix-dashboard 的密码可以通过 /output/conf/conf.yaml 里面的authentication.users的配置来修改.
本文参考资料
- Apisix官方仓库 https://github.com/apache/apisix-dashboard
- Apisix-dashboard源码构建文档 https://github.com/apache/apisix-dashboard/blob/master/docs/deploy.md
- Nodejs 安装 https://www.runoob.com/nodejs/nodejs-install-setup.html
- Go语言环境安装 https://golang.google.cn/dl/
完结撒花, 路过点赞, 月薪10w ! 有问题, 请留言 .
有疑问加站长微信联系(非本文作者)