Apache Apisix 网关最新2.1源码构建踩坑指南

笔者系统是 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的配置来修改.

本文参考资料

  1. Apisix官方仓库 https://github.com/apache/apisix-dashboard
  2. Apisix-dashboard源码构建文档 https://github.com/apache/apisix-dashboard/blob/master/docs/deploy.md
  3. Nodejs 安装 https://www.runoob.com/nodejs/nodejs-install-setup.html
  4. Go语言环境安装 https://golang.google.cn/dl/

完结撒花, 路过点赞, 月薪10w ! 有问题, 请留言 .

你可能感兴趣的:(Apache Apisix 网关最新2.1源码构建踩坑指南)