当前位置: 首页 > news >正文

API网关-Apinto压缩包方式自动化安装配置教程

文章目录

  • 前言
  • 一、Apinto安装教程
    • 1. 复制脚本
    • 2. 增加执行权限
    • 3. 执行脚本
    • 4. Apinto命令
      • 4.1 启动Apinto
      • 4.2 停止Apinto
      • 4.3 重启Apinto
      • 4.4 查看Apinto版本信息
      • 4.5 加入Apinto集群
      • 4.6 离开Apinto集群
      • 4.7 查看Apinto节点信息
    • 5. 卸载Apinto
  • 二、Apserver(Apinto Dashboard V3)安装教程
    • 1. 安装条件
    • 2. 安装mysql
    • 3. 安装redis
    • 4. 复制脚本
    • 5. 增加执行权限
    • 6. 执行脚本
    • 7. 浏览器访问
    • 8. Apserver命令
      • 8.1 启动
      • 8.2 停止
      • 8.3 重启
    • 9. 卸载Apserver
  • 总结


前言

本教程将介绍如何安装和配置Apinto以及Apserver(Apinto Dashboard V3)。Apinto是一个开源的API管理工具,用于帮助团队设计、测试和发布API。而Apserver则是为了提供更便捷的可视化操作界面,方便用户管理和监控API。


一、Apinto安装教程

1. 复制脚本

首先,将以下脚本内容复制并保存为/tmp/install_apinto.sh文件。

#!/bin/bash# 安装版本
ad_version="0.15.12"
# 安装目录
ad_installDir="/opt/bigdata/apinto"install() {local version=$1local installDir=$2# 下载地址local downloadUrl="https://github.com/eolinker/apinto/releases/download/v${version}/apinto_v${version}_linux_amd64.tar.gz"if [ -z "$(command -v wget)" ]; thenyum -y install wgetif [ $? -eq 0 ]; thenecho "wget安装完成"elseecho "wget安装失败,请检查"exit 1fifiif [ ! -d "${installDir}" ]; thenmkdir -p "${installDir}"if [ $? -eq 0 ]; thenecho "安装目录${installDir}已创建"elseecho "请确保您有足够的权限来创建目录,请增加权限后再次执行"exit 1fifiif [ ! -f "/tmp/apinto_v${version}_linux_amd64.tar.gz" ] ; thenwget "$downloadUrl" -P /tmpif [ $? -eq 0 ]; thenecho "apinto_v${version}_linux_amd64.tar.gz下载成功"elseecho "apinto_v${version}_linux_amd64.tar.gz下载失败,请重试或手动下载到/tmp目录下再次执行"echo "下载地址:$downloadUrl"exit 1fielseecho "/tmp/apinto_v${version}_linux_amd64.tar.gz文件已存在"fiif [ -d "${installDir}/apinto" ]; thenecho "${installDir}/apinto 已存在,正在删除..."rm -rf "${installDir}/apinto"fitar -zxvf "/tmp/apinto_v${version}_linux_amd64.tar.gz" -C "${installDir}"if [ $? -eq 0 ]; thenecho "apinto_v${version}_linux_amd64.tar.gz解压成功"elseecho "apinto_v${version}_linux_amd64.tar.gz解压失败,请查看异常信息后重试"exit 1ficd ${installDir}/apinto && ./install.sh install && apinto startif [ $? -eq 0 ]; thenecho "apinto 安装并启动成功"elseecho "apinto 安装失败,请查看异常信息后重试"exit 1fi
}install "$ad_version" "$ad_installDir"exit 0

2. 增加执行权限

在终端中执行以下命令,为脚本添加执行权限。

chmod a+x /tmp/install_apinto.sh

3. 执行脚本

执行以下命令,运行脚本开始下载、安装和配置Apinto。

/tmp/install_apinto.sh

请等待安装完成,如有异常会有提示。

成功如下图所示:

在这里插入图片描述

4. Apinto命令

4.1 启动Apinto

apinto start

4.2 停止Apinto

apinto stop

4.3 重启Apinto

apinto restart

4.4 查看Apinto版本信息

apinto version

4.5 加入Apinto集群

被加入的节点自动成为领导者,第一次被加入的节点始终是领导者。例如:从192.168.145.103节点执行apinto join --addr=192.168.145.105:9401,则192.168.145.105是集群的领导者。然后再从192.168.145.104执行apinto join --addr=192.168.145.103:9401192.168.145.105依旧是领导者。

apinto join --addr=192.168.145.105:9401

4.6 离开Apinto集群

apinto leave

4.7 查看Apinto节点信息

apinto info

如下图所示,三个节点,一个领导者。
在这里插入图片描述

5. 卸载Apinto

删除对应文件和目录即可。

rm -rf /run/apinto
rm -rf /etc/apinto
rm -rf /var/lib/apinto
rm -rf /var/log/apinto
rm -rf /tmp/apinto
rm -rf /usr/sbin/apinto
rm -rf /opt/bigdata/apinto

二、Apserver(Apinto Dashboard V3)安装教程

1. 安装条件

  • Mysql 5.7.x或以上版本
    • 作用:存储控制台交互配置
  • Redis 5.0-6.2.7版本,且Redis使用Cluster模式启动
    • 作用:控制台缓存数据库、服务治理节点转发缓存数据库
  • InfluxDB 2.x版本
    • 作用:监控时序数据库,监控程序依赖数据库

2. 安装mysql

  • mysql5.7.44自动化安装教程
  • mysql5.7.37自动化安装教程

3. 安装redis

  • redis6.2.7自动化安装教程

4. 复制脚本

首先,将以下脚本内容复制并保存为/tmp/install_apserver.sh文件。

#!/bin/bash# 安装版本
ad_version="3.3.2"
# 安装目录
ad_installDir="/opt/bigdata/apinto-dashboard"
# mysql设置
mysql_ip='192.168.145.104'
mysql_user='root'
mysql_pw='root'
# Redis扩展集群地址
redis_addr1='192.168.145.105:30001'
redis_addr2='192.168.145.105:30002'
redis_addr3='192.168.145.105:30003'
apserver_port='18080'configyml="port: ${apserver_port}
mysql:user_name: ${mysql_user}password: \"${mysql_pw}\"ip: ${mysql_ip}port: 3306db: apinto
error_log:dir: work/logs               # 日志放置目录, 仅支持绝对路径, 不填则默认为执行程序上一层目录的work/logs. 若填写的值不为绝对路径,则以上一层目录为相对路径的根目录,比如填写 work/test/logs, 则目录为可执行程序所在目录的 ../work/test/logsfile_name: error.log         # 错误日志文件名log_level: warning            # 错误日志等级,可选:panic,fatal,error,warning,info,debug,trace 不填或者非法则为infolog_expire: 7d                # 错误日志过期时间,默认单位为天,d|天,h|小时, 不合法配置默认为7dlog_period: day               # 错误日志切割周期,仅支持day、hour
redis:user_name: \"\"password: \"\"addr:- ${redis_addr1}- ${redis_addr2}- ${redis_addr3}"install() {local version=$1local installDir=$2mysql -h ${mysql_ip} -P 3306 -u${mysql_user} -p${mysql_pw} -e "CREATE DATABASE IF NOT EXISTS apinto CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"if [ $? -eq 0 ]; thenecho "apinto 数据库创建成功"elseecho "apinto 数据库创建失败"exit 1fi# 下载地址local downloadUrl="https://github.com/eolinker/apinto-dashboard/releases/download/v${version}/apserver_v${version}_linux_amd64.tar.gz"if [ -z "$(command -v wget)" ]; thenyum -y install wgetif [ $? -eq 0 ]; thenecho "wget安装完成"elseecho "wget安装失败,请检查"exit 1fifiif [ ! -d "${installDir}" ]; thenmkdir -p "${installDir}"if [ $? -eq 0 ]; thenecho "安装目录${installDir}已创建"elseecho "请确保您有足够的权限来创建目录,请增加权限后再次执行"exit 1fifiif [ ! -f "/tmp/apserver_v${version}_linux_amd64.tar.gz" ] ; thenwget "$downloadUrl" -P /tmpif [ $? -eq 0 ]; thenecho "apserver_v${version}_linux_amd64.tar.gz下载成功"elseecho "apserver_v${version}_linux_amd64.tar.gz下载失败,请重试或手动下载到/tmp目录下再次执行"echo "下载地址:$downloadUrl"exit 1fielseecho "/tmp/apserver_v${version}_linux_amd64.tar.gz文件已存在"fiif [ -d "${installDir}/apserver_v${version}" ]; thenecho "${installDir}/apserver_v${version} 已存在,正在删除..."rm -rf "${installDir}/apserver_v${version}"fitar -zxvf "/tmp/apserver_v${version}_linux_amd64.tar.gz" -C "${installDir}"if [ $? -eq 0 ]; thenecho "apserver_v${version}_linux_amd64.tar.gz解压成功"elseecho "apserver_v${version}_linux_amd64.tar.gz解压失败,请查看异常信息后重试"exit 1ficd ${installDir}/apserver_v${version}./install.shcd /usr/local/apserver/apserver_v${version}echo "$configyml" > config.ymlecho "apinto-dashboard 下载、安装、配置完成"cd /usr/local/apserver/apserver_v${version} && ./run.sh restartif [ $? -eq 0 ]; thenecho "apinto-dashboard 启动成功"echo "浏览器访问:$(ip addr | grep 'inet ' | awk '{print $2}'| tail -n 1 | grep -oP '\d+\.\d+\.\d+\.\d+'):${apserver_port}"echo "账号:admin   密码:12345678"elseecho "apinto-dashboard 启动失败,请查看异常信息并解决后再次启动"echo "日志放置目录:/usr/local/apserver/apserver_v${version}/work/logs"fiecho "安装目录:/usr/local/apserver/apserver_v${version}"echo "启动apinto-dashboard:cd /usr/local/apserver/apserver_v${version} && ./run.sh start"echo "停止apinto-dashboard:cd /usr/local/apserver/apserver_v${version} && ./run.sh stop"echo "重启apinto-dashboard:cd /usr/local/apserver/apserver_v${version} && ./run.sh restart"}install "$ad_version" "$ad_installDir"exit 0

5. 增加执行权限

在终端中执行以下命令,为脚本添加执行权限。

chmod a+x /tmp/install_apserver.sh

6. 执行脚本

执行以下命令,运行脚本开始下载、安装和配置Apserver。

echo y | /tmp/install_apserver.sh

请等待安装完成,如有异常会有提示。

成功如下图所示:

在这里插入图片描述

7. 浏览器访问

浏览器输入输出信息中提示的网址进行访问,然后输入账号密码登录,如下图所示。

在这里插入图片描述
在这里插入图片描述

8. Apserver命令

8.1 启动

cd /usr/local/apserver/apserver_v3.3.2
./run.sh start

8.2 停止

cd /usr/local/apserver/apserver_v3.3.2
./run.sh stop

8.3 重启

cd /usr/local/apserver/apserver_v3.3.2
./run.sh restart

9. 卸载Apserver

删除对应文件和目录即可。

cd /usr/local/apserver/apserver_v3.3.2
./run.sh stop
rm -rf /usr/local/apserver

总结

通过这篇教程,我们学习了如何安装和配置apinto 和 apserver。首先,在第一部分中我们详细讲解了 apinto 的安装过程,并提供了相关命令行指令来启动/停止/重启它。接着,在第二部分中我们介绍了 apserver (Dashboard) 的要求以及安装过程,并提供了相应的命令行指令来管理它。

希望本教程对您有所帮助!如有任何疑问或问题,请随时在评论区留言。感谢阅读!

参考链接:

  • https://help.apinto.com/docs/apinto/system/
  • https://help.eolink.com/tutorial/Apinto/c-1406

相关文章:

API网关-Apinto压缩包方式自动化安装配置教程

文章目录 前言一、Apinto安装教程1. 复制脚本2. 增加执行权限3. 执行脚本4. Apinto命令4.1 启动Apinto4.2 停止Apinto4.3 重启Apinto4.4 查看Apinto版本信息4.5 加入Apinto集群4.6 离开Apinto集群4.7 查看Apinto节点信息 5. 卸载Apinto 二、Apserver(Apinto Dashboard V3)安装教…...

内网穿透natapp使用教程(Linux)

我的使用场景:在家访问学校服务器,由于不在一个局域网,所以需要使用内网穿透,我使用的是natapp。需要在有局域网的时候做好以下步骤。 (natapp官网:https://natapp.cn/) 1. 下载客户端 &#x…...

php函数 二

一 字符串包含 1.1 str_starts_with(string $haystack, string $needle) php8版本中新函数。 检查字符串是否以指定子串开头,区分大小写。返回布尔值。 $haystack待判断的字符串,$needle需要查询的内容。 function test1() {$str "Qwe asd zx…...

IDC机房交换机核心技术与应用指南

IDC机房交换机核心技术与应用指南 ​ 在这个快速发展的数字时代,数据中心作为信息技术的心脏,不仅承载着海量数据的处理、存储和传输,更是支撑着全球企业运营和互联网服务的关键基础设施。在众多构成数据中心的组件中,IDC机房交换…...

Compose | UI组件(五) | Button 按钮组件

文章目录 前言Button 是什么?Button的创建Button显示水平方向的UI IconButton是什么?IconButton是创建 FloatingActionButton是什么?FloatingActionButton创建 ExtendedFloatingActionButton是什么? 总结 前言 随着移动端的技术不…...

【leetcode刷刷】235. 二叉搜索树的最近公共祖先 、701.二叉搜索树中的插入操作 、450.删除二叉搜索树中的节点

235. 二叉搜索树的最近公共祖先 class Solution:def lowestCommonAncestor(self, root: TreeNode, p: TreeNode, q: TreeNode) -> TreeNode:# 递归if not root: return if root.val p.val: return pif root.val q.val: return qleft Noneright Noneif root.val > p.…...

YoloV8改进策略:BackBone改进|DCNv4最新实践|高效涨点|多种改进教程|完整论文翻译

摘要 涨点效果:在我自己的数据集上,mAP50 由0.986涨到了0.993,mAP50-95由0.737涨到0.77,涨点明显! DCNv4是可变形卷积的第四版,速度和v3相比有了大幅度的提升,但是环境搭建有一定的难度,对新手不太友好。如果在使用过程遇到编译的问题,请严格按照我写的环境配置。 …...

高中数学常识

一、大小关系 |x| > |sinx| 理由: 很明显,在圆内,弧长x>垂线sinx 3x、2x 、 1 2 \frac{1}{2} 21​x 理由: log 1 2 _\frac{1}{2} 21​​x、log 2 _2 2​x、 log 3 _3 3​x 二、(xy)? 的求法 利用二项式定理 三、平…...

docker之部署青龙面板

青龙面板是一个用于管理和监控 Linux 服务器的工具,具有定时运行脚本任务的功能。在实际情况下也可以用于一些定期自动签到等任务脚本的运行。 本次记录下简单的安装与使用,请提前安装好docker,参考之前的文章。 一、安装部署 1、拉取镜像 # …...

Type-C平板接口协议芯片介绍,实现单C口充放电功能

在现代平板电脑中,Type-C接口已经成为了一个非常常见的接口类型。相比于传统的USB接口,Type-C接口具有更小的体积、更快的传输速度和更方便的插拔体验。但是,在使用Type-C接口的平板电脑上,如何实现单C口充电、放电和USB2.0数据传…...

系统架构演变

1.1系统架构的演变 2008年以后,国内互联网行业飞速发展,我们对软件系统的需求已经不再是过去”能用就行”这种很low的档次了,像抢红包、双十一这样的活动不断逼迫我们去突破软件系统的性能上限,传统的IT企业”能用就行”的开发思…...

Oracle PL/SQL Programming 第2章:Creating and Running PL/SQL Code 读书笔记

总的目录和进度,请参见开始读 Oracle PL/SQL Programming 第6版 暂不考虑系统设计或单元测试之类的任务,所有 PL/SQL 程序员必须熟悉的基本操作任务包括: 浏览数据库创建和编辑 PL/SQL 源代码编译 PL/SQL 源代码,并更正编译器注…...

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Swiper容器组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Swiper容器组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Swiper容器组件 滑块视图容器,提供子组件滑动轮播显示的能力。…...

『建议收藏』OpenAI官方出的Prompt提示词教程中文版来了!

一些结论 六大策略: 写清晰的指令 提供参考文本 将复杂任务分解为更简单的子任务 给模型时间“思考” 使用外部工具 系统性测试变化 提高结果质量的六大策略 写清晰的指令 这些模型无法读懂你的想法。如果输出过长,要求简短回复;如果输出过于简单…...

牛刀小试 - C++ 推箱子小游戏

参考文档 C笔记:推箱子小游戏 copy函数 memcpy()函数用法(可复制数组) 使用memcpy踩出来的坑,值得注意 完整代码 /********************************************************************* 程序名:推箱子小游戏 说明&#x…...

手机视频压缩怎么压缩?一键瘦身~

现在手机已经成为我们日常生活中必不可少的工具,而在手机的应用领域中,文件的传输和存储是一个非常重要的问题。很多用户都会遇到这样一个问题,那就是在手机上存储的文件太多太大,导致手机存储空间不足,那么怎么在手机…...

目标主力能源:华为智能光伏的时代指南针

让新能源成为人类主要的能源来源,是实现“双碳目标”的核心方案。而光伏能源则是目前新能源体系中的主要选择之一。以光伏为核心构建新型电力系统,让光伏能源成为主力能源值得关注和期待。 过去几年,光伏能源极速发展。但如何百尺竿头更进一步…...

每日一题 力扣2846 边权重均等查询

2846. 边权重均等查询 题目描述: 现有一棵由 n 个节点组成的无向树,节点按从 0 到 n - 1 编号。给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges ,其中 edges[i] [ui, vi, wi] 表示树中存在一条位于节点 ui 和节点 vi 之间、权重…...

【Docker】Docker学习⑨ - 单机编排之Docker Compose

【Docker】Docker学习⑨ - 单机编排之Docker Compose 一、Docker简介二、Docker安装及基础命令介绍三、Docker镜像管理四、Docker镜像与制作五、Docker数据管理六、网络部分七、Docker仓库之单机Dokcer Registry八、Docker仓库之分布式Harbor九、单机编排之Docker Compose1 基础…...

ES6笔记-symbol

ES6 symbol 是什么 ES5的对象属性名是字符串,这容易造成属性名的冲突。symbol是一种机制,保证每个属性的名字都是独一无二的。这样就从根本上防止属性名冲突。 它是一种原始数据类型Symbol,表示独一无二的值。它属于javaScript语言的原生数据类型之一。…...

C++设计模式介绍:优雅编程的艺术

物以类聚 人以群分 文章目录 简介为什么有设计模式? 设计模式七大原则单一职责原则(Single Responsibility Principle - SRP)开放封闭原则(Open/Closed Principle - OCP)里氏替换原则(Liskov Substitution …...

GitLab升级版本(任意用户密码重置漏洞CVE-2023-7028)

目录 前言漏洞分析影响范围查看自己的GitLab版本升级路程 升级过程13.1.1113.8.8 - 14.0.1214.3.614.9.5 - 16.1.6 前言 最近GitLab发了个紧急漏洞需要修复,ok接到命令立刻着手开始修复,在修复之前先大概了解一下这个漏洞是什么东西 漏洞分析 1、组件…...

Unity——八叉树的原理与实现

八叉树原理 八叉树(Octree)是一种用于在三维空间中进行空间分割的数据结构。它将三维空间递归地划分为八个子空间,每个子空间对应于一个八叉树节点。这种分割方式可以有效地组织和管理场景中的对象,提高检索效率,特别…...

android 自定义软键盘的显示和隐藏

记一下,以后不用找在InputMethodService中有这两个方法可以看到软键盘显示状态 //软键盘隐藏 override fun onWindowHidden() {super.onWindowHidden() } //软键盘显示 override fun onWindowShown() {super.onWindowShown() } 在activity中可以通过这种方法看到软键盘显示状…...

基于openssl v3搭建ssl安全加固的c++ tcpserver

1 概述 tcp server和tcp client同时使用openssl库,可对通信双方流通的字节序列进行加解密,保障通信的安全。本文以c编写的tcp server和tcp client为例子,openssl的版本为v3。 2 安装openssl v3 2.1 安装 perl-IPC-Cmd openssl项目中的co…...

11.2 Web开发_CSS入门(❤❤)

11.2 Web开发_CSS入门❤❤ 1. CSS简介1.1 基础案例2. CSS书写的位置2.1 行内式2.2 内嵌式2.3 外链式3. CSS基础选择器3.1 标签选择器3.2 id选择器3.3 类选择器3.4 选择器优先级3.5 通配符选择器4. 多类名5. 样式的两种特性5.1 层叠性...

[docker] Docker的数据卷、数据卷容器,容器互联

一、数据卷(容器与宿主机之间数据共享) 数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容…...

ATF(TF-A)安全通告TF-V11——恶意的SDEI SMC可能导致越界内存读取(CVE-2023-49100)

目录 一、ATF(TF-A)安全通告TFV-11 (CVE-2023-49100) 二、透过事务看本质SDEI是干啥的呢? 三、CVE-2023-49100 1、GICv2 systems 2、GICv3 systems 四、漏洞修复 一、ATF(TF-A)安全通告TFV-11 (CVE-2023-49100) Title 恶意的SDEI SMC可能导致越界内存读取&am…...

如何查找SpringBoot应用中的请求路径(不使用idea)

背景 昨天有个同事向我咨询某个接口的物理表是哪个,由于公司业务较多、这块业务的确不是我负责的,也没有使用idea不能全局搜索(eclipse搜不到jar内的字符串),也就回复了不清楚。 除了自己写代码输出servlet的路径和类外,发现了一…...

56. 合并区间 - 力扣(LeetCode)

题目描述 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 题目示例 输入:intervals [[1,3…...