Apisix-linux下的内网安装

发布时间 2023-07-03 16:15:41作者: 羊37

1.背景

一般测试环境都是没有外网的,apisix官网写了安装方式,但是感觉描述的并不好,结合自己的实际体验整理了下。

APISIX-官网

APISIX-GitHub

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启动后,默认监听23792380端口,分别用于监听客户端通信和etcd服务间通信。

image-20230630144115180

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这个文件夹中。

image-20230630111840538

需要的文件都下载完了,可以通过下面的命令移除掉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目录下。

image-20230630162147330

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