Apisix-linux下的内网安装
1.背景
一般测试环境都是没有外网的,apisix官网写了安装方式,但是感觉描述的并不好,结合自己的实际体验整理了下。
2.离线安装
假设现在有两台相同的机器
我刚开始没注意到这个问题,A机是centos8,B机是centos7,下载后的rpm文件在B机上就用不了了。
A机:拥有外网,可以执行yum相关操作。
B机:目标机器,需要安装apisix的内网机。
2.1 配置中心ECTD
一个分布式键值存储系统,类似于一个轻量级的分布式数据库。
在安装 APISIX 之前,需要在主机上安装 etcd。
APISIX 使用 ETCD 作为配置中心进行保存和同步配置。
2.1 A机下载文件
使用wget进行下载
wget https://github.com/etcd-io/etcd/releases/download/v${ETCD_VERSION}/etcd-v${ETCD_VERSION}-linux-amd64.tar.gz
替换下${ETCD_VERSION}
为当前版本3.5.4
# ETCD_VERSION='3.5.4'
wget https://github.com/etcd-io/etcd/releases/download/v3.5.4/etcd-v3.5.4-linux-amd64.tar.gz
2.2 B机执行安装
tar -xvf etcd-v${ETCD_VERSION}-linux-amd64.tar.gz && \
cd etcd-v${ETCD_VERSION}-linux-amd64 && \
sudo cp -a etcd etcdctl /usr/bin/
nohup etcd >/tmp/etcd.log 2>&1 &
替换下${ETCD_VERSION}
为当前版本3.5.4
# 解压
tar -xvf etcd-v3.5.4-linux-amd64.tar.gz
cd etcd-v3.5.4-linux-amd64
# 配置全局命令
cp -a etcd etcdctl /usr/bin/
3.3 启动
B机器部署并调整好权限后,执行下方命令启动。
# 启动
nohup etcd >/tmp/etcd.log 2>&1 &
哦,又是常见的nohup命令,来我给你顺带复习下。
将 etcd 命令的输出保存到 /tmp/etcd.log 文件中,并在后台持续运行 etcd。
这个命令你要拆解成5个部分来理解。
-
nohup
这是一个用于在后台运行命令的命令行工具。它允许你在关闭终端或注销用户后继续运行命令,将命令的输出重定向到指定的文件。
-
etcd
应用程序名
-
>/tmp/etcd.log
>
符号将命令的标准输出重定向到指定的文件/tmp/etcd.log
,即将 etcd 命令的输出写入/tmp/etcd.log
文件中。 -
2>&1
2
表示标准错误输出,1
表示标准输出。2>&1
将错误输出重定向到与标准输出相同的位置。服啦,复制过来的解释叽叽歪歪:意思就是错误日志和普通日志输出到同一个文件。
-
&
这个符号将命令放入后台执行,不会阻塞当前终端的使用,即使关闭终端,应用仍会继续在后台运行。
etcd启动后,默认监听2379
和2380
端口,分别用于监听客户端通
信和etcd服务间
通信。
2.2 网关APISIX
2.1 A机下载文件
# cd任意目录
mkdir -p apisix
yum install -y https://repos.apiseven.com/packages/centos/apache-apisix-repo-1.0-1.noarch.rpm
yum clean all && yum makecache
yum install -y --downloadonly --downloaddir=./apisix apisix
执行完成后,会将相关依赖下载到apisix这个文件夹中。
需要的文件都下载完了,可以通过下面的命令移除掉A机的依赖。
# 执行完成后,可以执行下面的命令移除上面第2个命令添加的依赖,把A机复原。
yum remove -y apache-apisix-repo
2.2 B机执行安装
将A操作完后的apisix文件夹,拷贝到B机任意位置。
linux上我一般习惯将安装包放在software下,软件放到app下,比如此处我将A机的文件放到software下了。
进入到apisix目录后,执行安装命令。
yum install *.rpm
等待安装完成。
可以看到,默认被安装到了/usr/local/apisix
目录下。
2.3 启动
执行初始化与启动。
apisix init
apisix start
2.3 后管Apisix Dashboard
3.扩展
3.1 权限调整
# 查看用户名和用户组
id {user}
3.1.1 etcd调整至普通用户
内网B机器安装时可能需要使用sudo或者root,后续运维修改成xx用户组的权限。
# 安装时的这行将etcd相关内容添加成了全局命令
# cp -a etcd etcdctl /usr/bin/
此时用root对/usr/bin/下的文件授权即可。
chown -R {user}:{group} /usr/bin/etc*
# 重新查看权限
ls -l /usr/bin/etc*
3.1.2 apisix调整至普通用户
内网B机器安装时可能需要使用sudo或者root,后续运维修改成xx用户组的权限。
# apisix被默认安装在/usr/local/apisix
chown -R {user}:{group} /usr/local/apisix
# 755权限:-rwxr-xr-x
chmod -R 755 /usr/local/apisix
# 全局命令
chown -R {user}:{group} /usr/bin/apisix