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

news2024/11/24 14:26:25

文章目录

  • 前言
  • 一、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=$1
  local 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)" ]; then
    yum -y install wget
    if [ $? -eq 0 ]; then
      echo "wget安装完成"
    else
      echo "wget安装失败,请检查"
      exit 1
    fi
  fi
  if [ ! -d "${installDir}" ]; then
    mkdir -p "${installDir}"
    if [ $? -eq 0 ]; then
      echo "安装目录${installDir}已创建"
    else
      echo "请确保您有足够的权限来创建目录,请增加权限后再次执行"
      exit 1
    fi
  fi
  if [ ! -f "/tmp/apinto_v${version}_linux_amd64.tar.gz" ] ; then
    wget "$downloadUrl" -P /tmp
    if [ $? -eq 0 ]; then
      echo "apinto_v${version}_linux_amd64.tar.gz下载成功"
    else
      echo "apinto_v${version}_linux_amd64.tar.gz下载失败,请重试或手动下载到/tmp目录下再次执行"
      echo "下载地址:$downloadUrl"
      exit 1
    fi
  else
    echo "/tmp/apinto_v${version}_linux_amd64.tar.gz文件已存在"
  fi

  if [ -d "${installDir}/apinto" ]; then
    echo "${installDir}/apinto 已存在,正在删除..."
    rm -rf "${installDir}/apinto"
  fi
  tar -zxvf "/tmp/apinto_v${version}_linux_amd64.tar.gz" -C "${installDir}"
  if [ $? -eq 0 ]; then
    echo "apinto_v${version}_linux_amd64.tar.gz解压成功"
  else
    echo "apinto_v${version}_linux_amd64.tar.gz解压失败,请查看异常信息后重试"
    exit 1
  fi

  cd ${installDir}/apinto && ./install.sh install && apinto start
  if [ $? -eq 0 ]; then
    echo "apinto 安装并启动成功"
  else
    echo "apinto 安装失败,请查看异常信息后重试"
    exit 1
  fi
}

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: 3306
  db: apinto
error_log:
  dir: work/logs               # 日志放置目录, 仅支持绝对路径, 不填则默认为执行程序上一层目录的work/logs. 若填写的值不为绝对路径,则以上一层目录为相对路径的根目录,比如填写 work/test/logs, 则目录为可执行程序所在目录的 ../work/test/logs
  file_name: error.log         # 错误日志文件名
  log_level: warning            # 错误日志等级,可选:panic,fatal,error,warning,info,debug,trace 不填或者非法则为info
  log_expire: 7d                # 错误日志过期时间,默认单位为天,d|天,h|小时, 不合法配置默认为7d
  log_period: day               # 错误日志切割周期,仅支持day、hour
redis:
  user_name: \"\"
  password: \"\"
  addr:
   - ${redis_addr1}
   - ${redis_addr2}
   - ${redis_addr3}"

install() {
  local version=$1
  local installDir=$2

  mysql -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 ]; then
    echo "apinto 数据库创建成功"
  else
    echo "apinto 数据库创建失败"
    exit 1
  fi
  # 下载地址
  local downloadUrl="https://github.com/eolinker/apinto-dashboard/releases/download/v${version}/apserver_v${version}_linux_amd64.tar.gz"
  if [ -z "$(command -v wget)" ]; then
    yum -y install wget
    if [ $? -eq 0 ]; then
      echo "wget安装完成"
    else
      echo "wget安装失败,请检查"
      exit 1
    fi
  fi
  if [ ! -d "${installDir}" ]; then
    mkdir -p "${installDir}"
    if [ $? -eq 0 ]; then
      echo "安装目录${installDir}已创建"
    else
      echo "请确保您有足够的权限来创建目录,请增加权限后再次执行"
      exit 1
    fi
  fi
  if [ ! -f "/tmp/apserver_v${version}_linux_amd64.tar.gz" ] ; then
    wget "$downloadUrl" -P /tmp
    if [ $? -eq 0 ]; then
      echo "apserver_v${version}_linux_amd64.tar.gz下载成功"
    else
      echo "apserver_v${version}_linux_amd64.tar.gz下载失败,请重试或手动下载到/tmp目录下再次执行"
      echo "下载地址:$downloadUrl"
      exit 1
    fi
  else
    echo "/tmp/apserver_v${version}_linux_amd64.tar.gz文件已存在"
  fi

  if [ -d "${installDir}/apserver_v${version}" ]; then
    echo "${installDir}/apserver_v${version} 已存在,正在删除..."
    rm -rf "${installDir}/apserver_v${version}"
  fi
  tar -zxvf "/tmp/apserver_v${version}_linux_amd64.tar.gz" -C "${installDir}"
  if [ $? -eq 0 ]; then
    echo "apserver_v${version}_linux_amd64.tar.gz解压成功"
  else
    echo "apserver_v${version}_linux_amd64.tar.gz解压失败,请查看异常信息后重试"
    exit 1
  fi

  cd ${installDir}/apserver_v${version}
  ./install.sh
  cd /usr/local/apserver/apserver_v${version}
  echo "$configyml" > config.yml
  echo "apinto-dashboard 下载、安装、配置完成"
  cd /usr/local/apserver/apserver_v${version} && ./run.sh restart
  if [ $? -eq 0 ]; then
    echo "apinto-dashboard 启动成功"
    echo "浏览器访问:$(ip addr | grep 'inet ' | awk '{print $2}'| tail -n 1 | grep -oP '\d+\.\d+\.\d+\.\d+'):${apserver_port}"
    echo "账号:admin   密码:12345678"
  else
    echo "apinto-dashboard 启动失败,请查看异常信息并解决后再次启动"
    echo "日志放置目录:/usr/local/apserver/apserver_v${version}/work/logs"
  fi
  echo "安装目录:/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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1415618.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

powermock: 一个支持 gRPC 的 Mock Server

文章目录 背景选型架构安装配置使用教程快速开始接口定义配置启动 Mock 规则redis 插件HTTP Mock高级配置前置准备场景一 特定 ID 返回特定用户信息场景二 通过脚本返回用户数据 总结参考资料 本文介绍的是如何基于 bilibili 的开源方案 powermock 搭建一套通用的适用于自己公司…

11. 双目视觉之立体视觉基础

目录 1. 深度恢复1.1 单目相机缺少深度信息1.2 如何恢复场景深度?1.3 深度恢复的思路 2. 对极几何约束2.1 直观感受2.2 数学上的描述 1. 深度恢复 1.1 单目相机缺少深度信息 之前学习过相机模型,最经典的就是小孔成像模型。我们知道相机通过小孔成像模…

uniapp scroll-view用法[下拉刷新,触底事件等等...](4)

前言:可滚动视图区域。用于区域滚动 话不多说 直接上官网属性 官网示例 讲一下常用的几个 scroll 滚动时触发 scrolltoupper 滚动到顶部或左边,会触发 scrolltoupper 事件 scrolltolower 滚动到底部或右边,会触发 scrolltolower 事件 1.纵向滚动…

【揭秘】RecursiveAction全面解析

内容概要 RecursiveAction是Java中一个强大的工具,它允许将复杂任务分解为更小的子任务,这些子任务可以并行执行,从而提高整体性能,其主要优点在于能够有效地利用多核处理器,减少任务执行时间,并简化并行编…

SQL注入:盲注

SQL注入系列文章: 初识SQL注入-CSDN博客 SQL注入:联合查询的三个绕过技巧-CSDN博客 SQL注入:报错注入-CSDN博客 目录 什么是盲注? 布尔盲注 手工注入 使用python脚本 使用sqlmap 时间盲注 手工注入 使用python脚本 使…

SpringBoot项目配置SSL后,WebSocket连接失败的解决方案

SpringBoot项目配置SSL后,WebSocket连接应使用wss协议,而不是ws协议。在前端配置WebSocket时,URL以wss://开头。

【计算机网络】中小型校园网构建与配置

拓扑图配置文件传送门 Packet Tracer-中小型校园网配置布局文件文件 相关文章 【计算机网络】IP协议及动态路由算法 【计算机网络】Socket通信编程与传输协议分析 【计算机网络】网络应用通信基本原理 原理 1. Network 广域网,WAN Wide Area Network&#xff…

记录浏览器能打开github.com,android studio无法拉取github项目,并且ping github.com也拼不通的问题

问题: Android studio编译flutter工程突然碰上如下问题: 在浏览器打开该地址能正常打开,尝试ping: 解决方式 通过搜索,查到如下办法: 1、首先在ipaddress.com中查询github.com域名的固定ip地址&#xff…

nginx使用stream模块代理端口

今天原本准备将本地金仓的54321端口进行代理的,但是发现代理后总是无法访问。后来突然发现之前使用nginx代理的是一个地址而不是端口。因此做以下笔记用来做记录。 一、stream安装与配置 假设nginx在usr/local/nginx中 1. 测试当前nginx是否有stream模块 ./usr/…

【数据结构1-1】线性表

线性表是最简单、最基本的一种数据结构,线性表示多个具有相同类型数据“串在一起”,每个元素有前驱(前一个元素)和后继(后一个元素)。根据不同的特性,线性表也分为数组(vector&#…

JVM基础知识汇总篇

☆* o(≧▽≦)o *☆嗨~我是小奥🍹 📄📄📄个人博客:小奥的博客 📄📄📄CSDN:个人CSDN 📙📙📙Github:传送门 📅&a…

【Docker】附录二:热门镜像介绍

作者主页: 正函数的个人主页 文章收录专栏: Docker 欢迎大家点赞 👍 收藏 ⭐ 加关注哦! 热门镜像介绍 本章将介绍一些热门镜像的功能,使用方法等。包括 Ubuntu、CentOS、MySQL、MongoDB、Redis、Nginx、Wordpress、No…

k8s学习-DaemonSet和Job

1.1DaemonSet是什么 Deployment部署的副本Pod会分布在各个Node上,每个Node都可能运行好几个副本。DaemonSet的不同之处在于:每个Node上最多只能运行⼀个副本。DaemonSet的典型应用场景有: (1)在集群的每个节点上运⾏存…

Adobe ColdFusion 反序列化漏洞复现(CVE-2023-38203)

0x01 产品简介 Adobe ColdFusion是美国奥多比(Adobe)公司的一套快速应用程序开发平台。该平台包括集成开发环境和脚本语言。 0x02 漏洞概述 Adobe ColdFusion存在代码问题漏洞,该漏洞源于受到不受信任数据反序列化漏洞的影响,攻击者通过漏洞可以代码执行,可导致服务器失…

6.小时表天分区和小时分区顺序错误,怎么办?

目录 一、解决思路二、修复表结构2.1 建表2.2查询数据2.3查询数据路径2.4删表重建2.5查询表结构2.6查询数据 三、恢复数据3.1方案1 直接移动原分区数据到新分区下3.2方案2 将分区路径指导原数据路径3.3方案3 通过临时表恢复数据 一、解决思路 对于这个问题,主要分为…

C++类和对象——构造函数与解析函数介绍

目录 1.构造函数和析构函数 1.构造函数,进行初始化 2.析构函数,进行清理 2.构造函数的分类及调用 1.括号法 注意: 2.显示法 3.隐式转化法 匿名对象 3.拷贝构造函数调用时机 4.构造函数调用规则 1.定义有参构造函数,不…

微信小程序之页面导航、生命周期和WXS脚本

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

机器学习的数据库积累........

https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf1_detection_zoo.md ​​​​​​​ 另一个database:(网址:Object Detection Made Easy with TensorFlow Hub: Tutorial) Object Detection Made Easy with Ten…

【Java Kubernates】Java调用kubernates提交Yaml到SparkOperator

背景 目前查询框架使用的是trino,但是trino也有其局限性,需要准备一个备用的查询框架。考虑使用spark,spark operator也已经部署到k8s,现在需要定向提交spark sql到k8s的sparkoperator上,使用k8s资源执行sql。 对比 …

RCC——使用HSE/HSI配置时钟

RCC 文章目录 前言一、背景二、仿真计算周期 2.1 2.2 三、MCO引脚输出时钟总结 前言 前期疑问:1、RCC是什么意思。 2、最终配好的72M是系统时钟吗? 3、一共有哪些时钟 本文目标:将PLL时钟配置成72M 疑问解答:最终配好的时钟是…