Linux安装云原生网关Kong/KongA
目录
- 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 创建服务器
创建服务器
本文选用华为云竞价计费实例,仅用于测试使用,成本低,其它云厂商亦有同类产品。

设置安全组
为保证云服务器安全,建议22ssh登录端口权限仅限自身访问
- 查询外网IP
curl cip.cc
- 设置安全组

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,放开注释,改为“*”

配置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

初始化数据库
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.jsonnpm install --unsafe-perm=true --allow-root
不出意外还是会编译失败
这个是科学上网的问题,本文通过在其它机器编译好打包,然后scp过来安装,安装包【konga-0.14.9-install.tgz】已上传到文库,传送地址:kong&konga完整安装包

解压已编译好的安装包
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端口,浏览器访问:

相关文章:
Linux安装云原生网关Kong/KongA
目录1 概述2 创建服务器3 安装postgres4 安装kong5 安装node6 安装KONGA1 概述 Kong Kong是一款基于OpenResty(NginxLua模块)编写的高可用、易扩展的开源API网关,专为云原生和云混合架构而建,并针对微服务和分布式架构进行了特别…...
Vue学习笔记(2)
2.1 事件处理 2.1.1 事件监听器 JavaScript:通过获取DOM对象再往DOM对象上使用addEventListener注册监听事件 const btn document.querySelector(#my-button) btn.addEventListener(click, function() {alert(点击事件!) })jQuery:通过$选择器绑定对象…...
2023年三月份图形化四级打卡试题
活动时间 从2023年3月1日至3月21日,每天一道编程题。 本次打卡的规则如下: 小朋友每天利用10~15分钟做一道编程题,遇到问题就来群内讨论,我来给大家答疑。 小朋友做完题目后,截图到朋友圈打卡并把打卡的截图发到活动群…...
Python操作Excel
Python中对Excel文件的操作包括:读、写、修改。如果要对其进行如上的操作需要导入Python的第三方模块:xlrd、xlwd、xlutils,其分别对应Python的读、写、修改的操作 一、安装Python的第三方模块 二、操作Excel的基本步骤 1、导入响对应的模…...
Codeforces Round #853 (Div. 2) C. Serval and Toxel‘s Arrays【统计次数,算贡献】
链接 传送门 分析 这道题想法其实很简单,样例的计算方法一定要看懂。以样例1为例,根据他的操作方法可以得到两个新的数组,和一个原来的数组,总共三个数组。 1 2 3 4 2 3 4 5 3 他们两两配对去重,求出总的value。由于每…...
微信小程序-1:比较两数的大小
程序来源》微信小程序开发教程(第二章) 主编:黄寿孟、易芳、陶延涛 ISBN: 9787566720788 程序运行结果: <!--index.wxml--> <view class"container"> <text>第一个数字:&…...
数据结构——树
深度优先/广度优先遍历深度优先:访问根节点对根节点的 children 挨个进行深度优先遍历const tree {val: "a",children: [{val: "b",children: [{val: "d",children: [],},{val: "e",children: [],},],},{val: "c&quo…...
【华为OD机试模拟题】用 C++ 实现 - 找到它(2023.Q1)
最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 去重求和(2023.Q1) 文章目录 最近更新的博客使用说明找到它题目输入输出示例一输入输出示例二输入输出说明Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD …...
python中yield的使用
在 Python 中,yield 是一个关键字,它用于定义生成器函数。生成器函数是一个特殊的函数,可以返回一个迭代器,当生成器函数被调用时,它不会立即执行,而是返回一个生成器对象,通过迭代生成器对象可…...
GO进阶(4) 深入Go的内存管理
Go语言成为高生产力语言的原因之一自己管理内存:Go抛弃了C/C中的开发者管理内存的方式,实现了主动申请与主动释放管理,增加了逃逸分析和GC,将开发者从内存管理中释放出来,让开发者有更多的精力去关注软件设计ÿ…...
【C++】类与对象理解和学习(下)
放在专栏【C知识总结】,会持续更新,期待支持🌹建议先看完【C】类与对象理解和学习(上)【C】类与对象理解和学习(中)本章知识点概括Ⅰ本章知识点概括Ⅱ初始化列表前言在上一篇文章中,…...
【Neo4j】Spring Data Neo4j APi阅读随笔
引言 关于Spring boot整合Neo4j的官方api翻译&学习随笔 (TOC) 一、准备工作 1.注入依赖 <dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-jpa</artifactId></dependency>2.配置yml文件 这里是本…...
JVM内存模型简介
1 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器来完。 ja…...
k8s如何给node添加标签
一、为什么需要标签? k8s集群如果由大量节点组成,可将节点打上对应的标签,然后通过标签进行筛选及查看,更好的进行资源对象的相关选择与匹配 二、怎么查看目前node上具有的标签 [rootmaster01 ~]# kubectl get node --show-labels NAME …...
【大数据Hive】Hive ddl语法使用详解
一、前言 使用过关系型数据库mysql的同学对mysql的ddl语法应该不陌生,使用ddl语言来创建数据库中的表、索引、视图、存储过程、触发器等,hive中也提供了类似ddl的语法。本篇将详细讲述hive中ddl的使用。 二、hive - ddl 整体概述 在Hive中,DA…...
Connext DDS录制服务 Recording Service(2)
2.4 远程管理 控制客户端(如RTI管理控制台)可以使用此接口远程控制录制服务。 注:记录服务远程管理基于第10.3节中描述的RTI远程管理平台。有关录制服务中远程管理工作的详细讨论,请参阅该手册 下面是所有支持操作的API引用。 2.4.1 启用远程管理 默认情况下,在录制服务中…...
mysql数据类型选择
数据类型选择 完整性约束 是完整性约束是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。 通常包括:实体完整性约束、参照完整性约束、域完整性约束、用户自定义完整性约束。 实体完整性(Entity integrity)是指主键必须非空…...
【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 配置…...
AtCoder Beginner Contest 290 G. Edge Elimination(思维题 枚举+贪心)
题目 T(T<100)组样例,每次给出一棵深度为d的k叉树, 其中,第i层深的节点个数为 保证k叉树的所有节点个数tot不超过1e18, 求在k叉树上构建一棵大小恰为x的连通块,所需要断开的最少的树边的条数(x<tot<1e18)…...
数据挖掘概述
目录1、数据挖掘概述2、数据挖掘常用库3、模型介绍3.1 分类3.2 聚类3.3 回归3.4 关联3.5 模型集成4、模型评估ROC 曲线5、模型应用1、数据挖掘概述 数据挖掘:寻找数据中隐含的知识并用于产生商业价值 数据挖掘产生原因:海量数据、维度众多、问题复杂 数…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
