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、数据挖掘概述 数据挖掘:寻找数据中隐含的知识并用于产生商业价值 数据挖掘产生原因:海量数据、维度众多、问题复杂 数…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
【LeetCode】算法详解#6 ---除自身以外数组的乘积
1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...
