Linux安装云原生网关Kong/KongA

news2024/9/29 18:09:51

目录

  • 1 概述
  • 2 创建服务器
  • 3 安装postgres
  • 4 安装kong
  • 5 安装node
  • 6 安装KONGA

1 概述

Kong

Kong是一款基于OpenResty(Nginx+Lua模块)编写的高可用、易扩展的开源API网关,专为云原生和云混合架构而建,并针对微服务和分布式架构进行了特别的优化。Kong网关在世界范围内广受欢迎。它建立在超轻量级代理之上,为海量微服务应用程序提供性能保障和可伸缩性扩展。用户使用Kong网关可以轻松地对流量进行精细化管理和控制。

部署方式

根据底层元数据存储方式的不同,Kong网关可分为三种部署方式,本文使用PostgreSQL数据库模式部署

  • 无数据库部署模式
  • 数据库部署模式,支持PostgreSQL和Cassandra
  • 混合部署模式

提示:本文所涉及安装包已同步上传至CSDN文库,传送地址:kong&konga完整安装包

2 创建服务器

创建服务器

本文选用华为云竞价计费实例,仅用于测试使用,成本低,其它云厂商亦有同类产品。

image-20230226155010500

设置安全组

为保证云服务器安全,建议22ssh登录端口权限仅限自身访问

  • 查询外网IP
curl cip.cc
  • 设置安全组

image-20230226160019960

3 安装postgres

下载postgres

提示:本文所涉及安装包已同步上传至CSDN文库,传送地址:kong&konga完整安装包

mkdir ~/postgres && cd ~/postgres
wget https://ftp.postgresql.org/pub/source/v12.2/postgresql-12.2.tar.gz --no-check-certificate

安装依赖

yum install -y gcc zlib-devel readline-devel readline gcc-c++ make automake

编译安装

# 解压
tar -zxvf postgresql-12.2.tar.gz

# 检查当前环境能否安装pgsql
cd postgresql-12.2
./configure

# 编译安装
make && make install

# 创建postgres用户,用于管理pqsql
adduser postgres

# 初始化数据库
su postgres
/usr/local/pgsql/bin/initdb -D /home/postgres/data

# 启动数据库,并将报错日志存入logfile文件内
/usr/local/pgsql/bin/pg_ctl -D /home/postgres/data -l /home/postgres/logfile start

修改配置文件,开放远程连接

cd /home/postgres/data
vi postgresql.conf

# 搜索localhost,放开注释,改为“*”

image-20230226161406021

配置pg_hba,用于远程访问

# 配置pg_hba,用于远程访问
vi pg_hba.conf
# 搜索IPv4,加入以下规则(本地连接无需密码,远程连接需要输入密码)
host    all             all             0.0.0.0/0               md5

重启

/usr/local/pgsql/bin/pg_ctl -D /home/postgres/data -l /home/postgres/logfile restart

创建kong用户

# 连接pgsql
/usr/local/pgsql/bin/psql

# 创建用户、数据库,注意单引号、分号
create user kong with password '123456';
create database kong owner kong;

测试

/usr/local/pgsql/bin/psql --host 127.0.0.1 --port 5432 --dbname=kong --username=kong

4 安装kong

下载(切回到root用户)

提示:本文所涉及安装包已同步上传至CSDN文库,传送地址:kong&konga完整安装包

# 下载地址 https://download.konghq.com/gateway-3.x-centos-7/Packages/k/
mkdir ~/kong && cd ~/kong
wget https://download.konghq.com/gateway-3.x-centos-7/Packages/k/kong-3.1.1.el7.amd64.rpm

安装

rpm -ivh kong-3.1.1.el7.amd64.rpm

配置

cp /etc/kong/kong.conf.default /etc/kong/kong.conf

# 修改pg连接配置
vi /etc/kong/kong.conf

image-20230226162121256

初始化数据库

kong migrations bootstrap -c /etc/kong/kong.conf

启动

kong start -c /etc/kong/kong.conf

检查是否启动

curl -i http://localhost:8001

5 安装node

下载

提示:本文所涉及安装包已同步上传至CSDN文库,传送地址:kong&konga完整安装包

mkdir ~/node && cd ~/node
wget https://nodejs.org/dist/v14.15.4/node-v14.15.4-linux-x64.tar.xz

解压

# 解压
tar -xvf node-v14.15.4-linux-x64.tar.xz

# 移动
mv node-v14.15.4-linux-x64 /usr/local/node

添加环境变量

ln -s /usr/local/node/bin/node /usr/local/bin/
ln -s /usr/local/node/bin/npm /usr/local/bin/

测试

node -v
npm -v

6 安装KONGA

下载

提示:本文所涉及安装包已同步上传至CSDN文库,传送地址:kong&konga完整安装包

# 官方地址: https://github.com/pantsel/konga
mkdir ~/konga && cd ~/konga
wget https://github.com/pantsel/konga/archive/refs/tags/0.14.9.tar.gz

安装并配置git(编译需要)

yum install -y git
git config --global http.sslVerify false
git config --global url."https://".insteadOf git://

解压+编译

# 解压
tar -zxvf 0.14.9.tar.gz

# 编译
cd konga-0.14.9/
rm package-lock.json

npm install --unsafe-perm=true --allow-root

不出意外还是会编译失败

这个是科学上网的问题,本文通过在其它机器编译好打包,然后scp过来安装,安装包【konga-0.14.9-install.tgz】已上传到文库,传送地址:kong&konga完整安装包

image-20230226163814739

解压已编译好的安装包

mv konga-0.14.9-install.tgz ~/konga 
cd konga
tar -zxvf konga-0.14.9-install.tgz

后台启动

nohup npm start >log.txt 2>&1 &

# 查询端口是否启动
lsof -i:1337

控制台安全组放开1337端口,浏览器访问:

image-20230226165442997

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

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

相关文章

蓝桥杯算法模板

模拟散列表拉链法import java.io.*; import java.util.*; public class a1 {static int n;static int N100003;static int[] hnew int[N];static int[] enew int[N];static int[] nenew int[N]; static int idx; static void insert(int x){int k(x%NN)%N;e[idx]x;ne[idx]h[k];…

终端软件架构说

目录 零:前言 一,基于服务的架构 二,基于多进程多线程的架构 三,以数据为中心的架构 四,类Android的分层架构设计 五,总结 零:前言 谈到架构,可能大家的第一感觉是信息系统的…

2023年三月份图形化三级打卡试题

活动时间 从2023年3月1日至3月21日,每天一道编程题。 本次打卡的规则如下: 小朋友每天利用10~15分钟做一道编程题,遇到问题就来群内讨论,我来给大家答疑。 小朋友做完题目后,截图到朋友圈打卡并把打卡的截图发到活动群…

Vue 3第三章:模板语法及指令介绍

文章目录1. 插值表达式1.1. 声明变量可直接在模板中使用,采用{{变量名称}}的方式1.2. 模板语法支持三元表达式1.3. 模板语法支持运算1.4. 模板语法支持方法调用2. 指令2.1. v-bind:用于绑定属性或动态绑定对象的值到元素上。2.2. v-if、v-else-if、v-els…

C#学习记录——接口的实现

一小部分知识精英依旧直面核心困难,努力地进行深度钻研,生产内容;而大多数信息受众始终在享受轻度学习,消费内容。如果我们真的希望在时代潮流中占据一席之地,那就应该尽早抛弃轻松学习的幻想,锤炼深度学习…

Burp Suite 常用模块简介

Burp Suite 常用模块分为 目标站点(target)模块 代理(proxy)模块 攻击(Intruder)模块 重放(Repeater) 模块 Target模块是对站点资源的收集,与站点各资源包发出和相应包的记录 Proxy模块是核心模块,可以拦截数据包发送往浏览器,进行修改后再…

网络协议分析(2)判断两个ip数据包是不是同一个数据包分片

一个节点收到两个IP包的首部如下:(1)45 00 05 dc 18 56 20 00 40 01 bb 12 c0 a8 00 01 c0 a8 00 67(2)45 00 00 15 18 56 00 b9 49 01 e0 20 c0 a8 00 01 c0 a8 00 67分析并判断这两个IP包是不是同一个数据报的分片&a…

Android JetPack之启动优化StartUp初始化组件的详解和使用

一、背景 先看一下Android系统架构图 在Android设备中,设备先通电(PowerManager),然后加载内核层,内核走完,开始检查硬件,以及为硬件提供的公开接口,然后进入到库的加载。库挂载后开…

Winform控件开发(16)——Timer(史上最全)

前言: Timer控件的作用是按用户定义的时间间隔引发事件的计时器,说的直白点就是,他就像一个定时炸弹一样到了一定时间就爆炸一次,区别在于定时炸弹炸完了就不会再次爆炸了,但是Timer这个计时器到了下一个固定时间还会触发一次,上面那张图片就是一个典型的计时器,该定时器…

【Java】Spring Boot 配置文件

文章目录SpringBoot 配置文件1. 配置文件的作用2. 配置文件的格式3. properties配置文件说明3.1 properties基本语法3.2 读取配置文件3.3 properties缺点分析4. yml配置文件说明4.1 yml基本语法4.2 yml使用进阶4.2.1 yml配置不同的数据类型及null4.2.1 yml配置的读取4.2.2 配置…

Python蓝桥杯训练:基本数据结构 [哈希表]

Python蓝桥杯训练:基本数据结构 [哈希表] 文章目录Python蓝桥杯训练:基本数据结构 [哈希表]一、哈希表理论基础知识1、开放寻址法2、链式法二、有关哈希表的一些常见操作三、力扣上面一些有关哈希表的题目练习1、[有效的字母异位词](https://leetcode.cn…

0101基础概念-图-数据结构和算法(Java)

文章目录1 图1.1 定义1.2 4种图模型2 无向图2.1 定义2.2 术语后记1 图 1.1 定义 图是一种非线性的数据结构,表示多对多的关系。 图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V, E)&#xf…

ecology9-谷歌浏览器下-pdf.js在渲染时部分发票丢失文字 问题定位及解决

问题 问题描述 : 在谷歌浏览器下,pdf.js在渲染时部分发票丢失文字;360浏览器兼容模式不存在此问题 排查思路:1、对比谷歌浏览器的css样式和360浏览器兼容模式下的样式,没有发现关键差别 2、✔使用Fiddler修改网页js D…

什么是线程死锁?如何解决死锁问题

死锁,一组互相竞争的资源的线程之间相互等待,导致永久阻塞的现象。 如下图所示: 与死锁对应的,还有活锁,是指线程没有出现阻塞,但是无限循环。 有一个经典的银行转账例子如下: 我们有个账户类…

操作系统权限提升(十四)之绕过UAC提权-基于白名单AutoElevate绕过UAC提权

系列文章 操作系统权限提升(十二)之绕过UAC提权-Windows UAC概述 操作系统权限提升(十三)之绕过UAC提权-MSF和CS绕过UAC提权 注:阅读本编文章前,请先阅读系列文章,以免造成看不懂的情况!! 基于白名单AutoElevate绕过…

2-MATLAB APP Design-下拉菜单栏的使用

一、APP 界面设计展示 1.新建一个空白的APP,在此次的学习中,我们会用到编辑字段(文本框)、下拉菜单栏、坐标区,首先在界面中拖入一个编辑字段(文本框),在文本框中输入内容:下拉菜单栏的使用,调整背景颜色,字体的颜色为黑色,字体的大小调为26. 2.在左侧组件库常用栏…

Qt音视频开发17-vlc内核回调拿图片进行绘制

一、前言 在众多播放器中,支持的种类格式众多,并支持DVD影音光盘,VCD影音光盘及各类流式协议,提供了sdk进行开发,这点是至关重要的,尽管很多优秀的播放器很牛逼,由于没有提供sdk第三方开发&…

【网络编程套接字(一)】

网络编程套接字(一)理解源IP地址和目的IP地址理解源MAC地址和目的MAC地址理解源端口号和目的端口号PORT VS PID认识TCP协议和UDP协议网络字节序socket编程接口socket常见APIsockaddr结构简单的UDP网络程序服务端创建套接字服务端绑定字符串IP VS 整数IP客…

面试官: 你知道 JWT、JWE、JWS 、JWK嘛?

想起了 之前做过的 很多 登录授权 的项目 它相比原先的session、cookie来说,更快更安全,跨域也不再是问题,更关键的是更加优雅 ,所以今天总结了一篇文章来介绍他 JWT 指JSON Web Token,如果在项目中通过 jjwt 来支持 J…

Springboot整合 Thymeleaf增删改查一篇就够了

很早之前写过Thymeleaf的文章,所以重新温习一下,非前后端分离,仅仅只是学习 官网: https://www.thymeleaf.org/ SpringBoot可以快速生成Spring应用,简化配置,自动装配,开箱即用。 JavaConfigur…