apisix安装详解

蓝亚之舟
蓝亚之舟
蓝亚之舟
57
文章
16
评论
2021年9月9日20:19:14
评论
9,747 3412字阅读11分22秒

1、api网关介绍

api网关现在使用的是一个开源项目(apisix),然后在其上进行的二次开发(修改配置和增加插件),api网关本身相当于是代理服务器,或者说其本质就是一个代理服务器。

2、apisix安装

2.1 安装依赖

因为apisix是基于OpenResty和etcd实现的,所以需要先安装OpenResty和etcd软件包。

方法一(推荐,理由是安装版本不一致)

先使用yum安装,这个最方便,同时会配好系统环境:

使用该方法安装完后,发现etcd版本与apisix2.7需求的版本不一致,yum库里面的etcd版本是3.3(已经是最新了),但是apisix(版本是2.7的)需要3.4版本,没办法,只能用yum卸载etcd,然后去GitHub下载最新的3.4。

安装方法参考下面的etcd安装方法。

方法二(推荐)

安装前需要安装相关依赖:OpenResty ,etcd。若已安装,可忽略。

问题一:wget命令未找到

apisix安装详解

使用wget命令时,提示为找到命令,安装wget命令:

问题二:ssl链接未建立

在使用wget下载etcd时,因为是在GitHub上下载,建链经常出现问题,可以参考:https://www.shuzhiduo.com/A/q4zVyXp7dK/

但是,说实话,上面的两种方法依然没有作用,只好本地下载,然后通过rz上传到服务上(不会使用rz命令,可以参考:https://www.cnblogs.com/patrick-yeh/p/12922829.html

为什么需要etcd

etcd 是一个分布式、可靠 key-value 存储的分布式系统——也就是一个数据库。当然,它不仅仅用于存储,还提供共享配置及服务发现。

etcd是apisix的配置中心,除了存储配置,etcd还可以为apisix提供以下特性:

  1. 集群支持
  2. 事务
  3. 历史版本管理
  4. 变化通知
  5. 高性能

APISIX 需要一个配置中心,上面提到的很多功能是传统关系型数据库和 KV 数据库是无法提供的。与 etcd 同类软件还有 Consul、ZooKeeper 等,更详细比较可以参考这里:etcd why,在将来也许会支持其他配置存储方案。

2.2 安装apisix

2.2.1 安装

安装2.7版本:

需要注意的是:

  • 上面的链接是2.7版本,随着时间流逝,老版本的链接可能会发生变化,如果你想下载其他版本的apisix,先找到:https://github.com/apache/apisix/releases,然后找到对应的版本链接,替换掉上面的即可。
  • 安装环境与执行目录无关,我在apisix-2.7目录下执行命令,执行完毕,发现该目录下什么都没有。

安装好后,检测apisix是否安装完成:

启动apisix(需要先启动etcd数据库):

默认会安装在/usr/local/apisix路径下,默认端口9080,可通过如下命令检查:

2.2.2 配置问题

安装完成,如果使用其他设备远程发布命令给apisix,需要更改一个配置。

位置:/usr/local/apisix/conf/config-defualt.yaml

apisix安装详解

将所有ip都注释掉即可。

2.2.3 遇到问题

问题一:apisix无法安装成功

和安装etcd一样,无法从GitHub上下载内容,暂时只能从本地下载,然后通过rz上传到服务器上。

问题二:apisix目录

使用yum安装,默认安装在/usr/local目录下:

apisix安装详解

2.3 APISIX dashboard(控制台)安装

APISIX早先版本中,dashboard是内置在apisix中的,只需要安装apisix就可以使用其控制台,但是新版本将其扩展成了两个项目(类似于mysql和Navicat了),所以这里需要安装一下。

2.3.1 两种安装方式

第一种方法是命令行安装:

注意:dashboard版本需要与apisix版本一致。

因为上面的方法需要服务器从GitHub上下载,我这边下载时不断报错,连接不上GitHub,只好使用第二种方法,先本地下载,下载地址就是上面的连接:

https://github.com/apache/apisix-dashboard/releases/download/v2.7/apisix-dashboard-2.7-0.x86_64.rpm

然后通过rz上传到服务器上,在上传目录运行:

卸载控制台:

2.3.2 修改配置文件

配置文件路径:/usr/local/apisix/dashboard/conf/conf.yaml

打开以后,如果远程登录要进行配置:

apisix安装详解

将远程登录IP添加进去,或者将所有的注释掉,这样会默认所有的主机都可以远程访问。

2.3.3 控制台启动

运行命令:

2.3.4 远程登录

第一件事,就是关闭防火墙(因为这个问题困扰了半天,将配置文件改来改去就是不对,最后才发现是防火墙没有关闭,也是醉了)

通过“ip addr”查询虚拟机IP地址,然后登陆:

apisix安装详解

登陆账户和密码一样,均为admin。

2.4 问题

问题一:重启系统,发现无法启动apisix

apisix安装详解

报错:nginx: [emerg] invalid IPv6 address in resolver "[fe80::4e50:77ff:fe44:181c%enp0s3]" in /usr/local/apisix/conf/nginx.conf:82

根据报错信息,发现第82行多了几个乱码,删除之后,启动apisix,发现还是这个问题,之前删除的乱码又出现了,删除配置文件nginx.conf,启动apisix,依然报错。

后来根据nginx.conf删除,又生成,以为是etcd数据库的问题,里面存储了apisix的配置文件内容,无论你怎么删除,下次启动apisix都会去etcd查询配置,然后再次生成。

按照这个思路解决问题,删除etcd数据库里面的内容

然,并没有效果。

最后不断看报错信息,怀疑是虚拟机网络配置问题,最终找到问题所在:

apisix安装详解

如上图所示,将ipv6初始化改成no即可。

问题二:

apisix安装详解

这个我重启了一下就成功了,不知道问题出现在哪里,当然之前将网络文件配置了一下,所有的ipv6选项都变成no。

问题三:远程登录不上去

报错信息如下:

apisix安装详解

这个是因为你的远程登录ip没有写入apisix的控制台运行列表中(参考2.3.2)。

问题四:登录报错The manager-api and apache apisix are mismatched.

apisix安装详解

GitHub上也报了这个问题:https://github.com/apache/apisix-dashboard/issues/1811

继续阅读
蓝亚之舟
Linux

linux命令之top详解

1、top命令简介 top命令是linux系统常用命令之一,能够实时显示系统各个进程的资源占用情况,类似于windows系统的任务管理器。 需要注意的是:top命令监控的最小单位是进程,如果想监控更小...
Linux

linux文件操作权限详解

前言 如上图所示,在使用 Linux 命令的时候经常见到红框框出来的内容,但是大都不太了解。 今天遇到一个关于文件权限问题,这里整理一下关于此类的相关内容。 1、三种权限 在 Linux 命令中,ch...

发表评论