网关服务Kong和konga介绍安装使用教程

article/2025/10/7 10:25:48

介绍

Kong是一款基于OpenResty(Nginx + Lua模块)编写的高可用、易扩展的,由Mashape公司开源的API Gateway项目。Kong是基于NGINX和Apache Cassandra或PostgreSQL构建的,能提供易于使用的RESTful API来操作和配置API管理系统,所以它可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各个Server,来应对大批量的网络请求。
Kong是一个在 Nginx 中运行的Lua应用程序,并且可以通过lua-nginx模块实现,Kong不是用这个模块编译Nginx,而是 OpenResty 一起发布,OpenResty已经包含了 lua-nginx-module, OpenResty 不是 Nginx的分支,而是一组扩展其功能的模块。它的核心是实现数据库抽象,路由和插件管理,插件可以存在于单独的代码库中,并且可以在几行代码中注入到请求生命周期的任何位置。

Kong主要有三个组件:

  • Kong Server :基于nginx的服务器,用来接收API请求。
  • Apache Cassandra/PostgreSQL :用来存储操作数据。
  • Kong dashboard:官方推荐UI管理工具,当然,也可以使用 restfull 方式 管理admin api。

Kong的主要功能包括:

  • 高级路由、负载平衡、健康检查——所有这些都可以通过管理 API 或声明性配置进行配置。
  • 使用 JWT、基本身份验证、ACL 等方法对API 进行身份验证和授权。
  • 代理、SSL/TLS 终止以及对 L4 或 L7 流量的连接支持。
  • 用于实施流量控制、req/res转换、日志记录、监控和包括插件开发人员中心的插件。
  • 复杂的部署模型,如声明式无数据库部署和混合部署(控制平面/数据平面分离),没有任何供应商锁定。
  • 本机入口控制器支持服务Kubernetes。

在这里插入图片描述
插件提供了扩展网关使用的高级功能。许多 Kong Inc. 和社区开发的插件(如 AWS Lambda、Correlation ID 和 Response Transformer)都在插件中心展示。
在这里插入图片描述
在这里插入图片描述

官网:
https://docs.konghq.com/

github:

https://github.com/kong/kong
https://github.com/pantsel/konga

安装教程

这里推荐使用docker安装,并且推荐使用docker-compose进行安装,因为可以安装图形化界面konge,省去了kong和konge整合的烦恼,而且安装部署方便。
docker安装可参考我之前写的这篇博文:Docker简易安装教程

如果还是想用linux方式安装,安装方式以及问题可参考这篇博文:https://blog.csdn.net/qq_33067315/article/details/108635407

docker-compose安装

docker-compose安装命令如下:

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

安装成功之使用docker-compose --version查看安装版本,docker-compose的yml的配置文件说明可参考:https://www.runoob.com/docker/docker-compose.html,这里就不再过多描述了。

kong和konga的compose.yml文件

在了解docker-compose之后,我们首先在/opt/目录下创建kong文件夹,然后使用touch命令创建一个docker-compose.yml文件,然后添加如下配置:

docker-compose.yml

version: '3'
services: kong-database:image: postgres:9.6restart: always  #每次总是启动networks: - kong-netenvironment:POSTGRES_USER: kongPOSTGRES_DB: kongPOSTGRES_PASSWORD: kongports:- "5432:5432"
#######################
# 执行数据库迁移
######################kong-migration:image: kong:latestcommand: "kong migrations bootstrap"networks: - kong-netrestart: on-failureenvironment:- KONG_DATABASE=postgres- KONG_PG_DATABASE=kong- KONG_PG_PASSWORD=kong- KONG_PG_HOST=kong-databaselinks: - kong-database #连接的是kong-database服务的depends_on:- kong-database #依赖于kong-database服务#####################
# kong gateway
#####################kong:image: kong:latestrestart: alwaysnetworks:- kong-netenvironment:KONG_DATABASE: postgresKONG_PG_HOST: kong-databaseKONG_PG_PASSWORD: kongKONG_PROXY_LISTEN: 0.0.0.0:8000KONG_PROXY_LISTEN_SSL: 0.0.0.0:8443KONG_ADMIN_LISTEN: 0.0.0.0:8001depends_on:- kong-migrationlinks: - kong-databasehealthcheck:test: ["CMD", "curl", "-f", "http://kong:8001"]interval: 5stimeout: 2sretries: 15ports:- "8001:8001"- "8000:8000"- "8443:8443"
#######################
#以下两个是konga  GUI
#######################konga-prepare:image: pantsel/konga:latestcommand: "-c prepare -a postgres -u postgresql://kong:kong@kong-database:5432/konga"  #注意是用户名:密码@数据库服务名称:端口networks:- kong-netrestart: on-failurelinks:- kong-databasedepends_on:- kong        #依赖kong服务- kong-database #依赖kong-database服务konga:image: pantsel/konga:latestrestart: alwaysnetworks:- kong-netenvironment:DB_ADAPTER: postgresDB_HOST: kong-databaseDB_USER: kongDB_DATABASE: kongaDB_PASSWORD: kong #必须加上密码,不然会失败depends_on:- kong- kong-databaseports:- "1337:1337"
networks:kong-net:driver: bridge

上述配置完毕之后,在/opt/kong该目录下输入如下命令,进行启动

docker-compose up -d

然后输入docker-compose ps进行查看是否启动成功,成功示例图如下:

在这里插入图片描述

一个简单使用示例

本示例主要讲解一下网关中最常用的路由转发,原先是A服务配置B服务的地址,然后A服务直接请求B,现在则是A服务配置网关服务的地址,然后请求网关服务,网关服务将A的请求转发到B服务。

这里需要使用konga,因为有图形化界面,操作较为简单明了,当然用命令也可以实现,方法在上述的官方文档中给出了示例,这里就不再过多描述了。

在浏览器输入konga的地址,地址为:ip:1337,打开界面之后,默认是需要创建一个管理员的账号的,按照示例图的填写即可,示例图如下:
在这里插入图片描述

注册完毕之用创建的账和密码进行登录,然后填写kong服务的ip和端口,我这里设置的是8001,名称这里我填写的kong,可以随意,示例图如下:

在这里插入图片描述
**注:**由于当时填写忘记截图了,就用了配置好的截图,实际效果基本一致。

一个简单路由转发示例:

kong服务地址: 192.168.10.102
本地服务version查看地址: 192.168.6.14

登录konga,点击services,点击add new service,创建一个服务,配置信息填写如下:
在这里插入图片描述

然后点击该服务,在里面添加路由,然后填写路由相关信息。
在这里插入图片描述

配置信息如下:

在这里插入图片描述
然后在本地的电脑的hosts文件添加如下kong服务和域名的映射:
windows路径: C:\Windows\System32\drivers\etc\hosts
linux路径: /etc/hosts

192.168.10.102 pancm.com

映射ok之后,启动本地的服务,在浏览器访问 http://pancm.com:8000/或http://pancm.com:8000/version都可看到版本信息

在这里插入图片描述

在这里插入图片描述

完整的请求流程如下:

浏览器域名请求->通过hosts文件找到地址->请求kong服务地址->根据服务路由配置进行转发->请求配置服务的接口地址->返回数据

其他

音乐推荐

原创不易,如果感觉不错,希望给个推荐!您的支持是我写作的最大动力!
版权声明:
作者:虚无境
博客园出处:http://www.cnblogs.com/xuwujing
CSDN出处:http://blog.csdn.net/qazwsxpcm    
个人博客出处:http://www.panchengming.com


http://chatgpt.dhexx.cn/article/iwXDUYc6.shtml

相关文章

Kong(三)Konga UI安装和使用

一 konga 的github地址 konga安装参考 ① Kong 可视化UI 选择 官方kong-dashboard 1)收费:当前kong的社区版是没有dashboard的,但是付费的企业版是有带的2)kong-dashboard最新版本v3.6.0,只支持到kongv0.14.x,对于更高的kong版本,功能支…

openresty+kong+konga+postgresql

一、基础环境配置 1、依赖安装 yum install -y make cmake gcc gcc-c autoconf automake libpng-devel libjpeg-devel zlib libxml2-devel ncurses-devel bison libtool-ltdl-devel libmcrypt mhash mcrypt pcre-devel openssl-devel freetype-devel libcurl-devel lua-deve…

Linux安装云原生网关Kong/KongA

目录 1 概述2 创建服务器3 安装postgres4 安装kong5 安装node6 安装KONGA 1 概述 Kong Kong是一款基于OpenResty(NginxLua模块)编写的高可用、易扩展的开源API网关,专为云原生和云混合架构而建,并针对微服务和分布式架构进行了特…

kong笔记——kong/konga的搭建

kong笔记 目录导航 本篇及以后的此系列文章皆为实战篇 版本介绍(重点,重点,一定要观察版本,防止不兼容情况!!): kong 2.5.0 konga 0.14.9 pgsql 9.6 linux centos 7 简述 对于kong的搭建,官网…

KONG和KONGA部署及配置

个人理解,仅供参考: 首先,kongkonga除去其他高级功能,个人觉得就是把nginx,变成可以页面配置的了。比如,配置的router,service就是反向代理,配置upstream就是负载均衡。 本文只介绍K…

KONG管理界面KONGA安装使用

功能 管理所有Kong Admin API的对象.从数据库、文件和API等导入Consumers。管理Kong多个节点。备份、恢复、迁移Kong Nodes使用快照。使用健康检测监控节点和API状态。Email和Slack消息通知支持多管理用户和设置不同权限支持数据库MySQL, postgresSQL, MongoDB, SQL Server。 …

Konga 使用说明

1、概要 konga 目前作为一个查看 kong 配置的平台使用,具体在设置 kong 参数时,仍存在一定问题。目前配置在 kong dashbord 较为方便。 2、konga 使用 1)环境选择 步骤 2 中点选对应环境的小星星。步骤如下: connections.png …

儿童编程积木

学习机器人编程必须运用到各种知识,包括数学、物理、科学以及自然等课本理论知识,只有熟悉掌握了这些,才能运营一个机器人,让它完成规定的动作。格物斯坦小坦克认为学习机器人就是学习一种机器人编程思维。 基于机器人的科学探究实…

scratch(图形化编程工具)做3.0版本的猫咪积木模拟器。

视频效果如下: 代码部分如下: 猫咪积木素材如下,有N个造型动作: 好了,今天的内容就分享到这里了。 好了,今天的教程就分享到这里吧。 本篇文章完整代码和素材我已经放到VIP的QQ群文件中,大家自行下载&#…

数组积木问题 c语言,全排列算法及解决数字搭积木问题

如果你是做这道题不会,那么你可以看这道题的解题思路,如果你是不太理解全排列算法,那么你可以通过这个题来理解。 题目描述: 小明最近喜欢搭数字积木。一共有10块积木,每个积木上有一个数字,0~9。 搭积木规…

Vue实现图形化积木式编程(一)

Babylon.js基础场景搭建 路由前言最终实现效果本文实现效果技术选型1.前端2.后端 完整代码代码分解0.npm安装相关依赖1.引入模块2.场景初始化3.ArcRotateCamera 相机初始化4.灯光初始化5.地面初始化5-1. 绿地5-2.网格地面 6.正方体物体初始化7.天空盒初始化 后续计划Babylon.js…

Vue实现图形化积木式编程(十二)

执行Blockly生成代码 路由下一篇历史回顾Babylon.js部分Blockly部分 前言最终实现效果本文内容实现思路问题分析问题原因不优雅解决优雅解决 完整代码 后续计划开源项目GitHub链接资源下载链接你的点赞是我继续编写的动力 路由 下一篇 Vue实现图形化积木式编程(十三) ---- 步…

Vue实现图形化积木式编程(二)

Babylon.js加载模型到场景中 路由下一篇历史回顾 前言最终实现效果本文实现效果完整代码操作分解(Babylon.js模型格式转换与导入)0.在开源模型网上下载一个模型/自己制作一个1.转换为.babylon文件2.将模型文件放在服务器上方案一(最新发现的方…

python积木式编程_TurnipBit—MicroPython开发板:从积木式编程语言开始学作小小创客...

编程、建模、制做动画和游戏……这些当初咱们默认只有成年人玩得转的事情,如今早已经被无数小孩子给颠覆甚至玩出新境界了。热爱科技和动手的“创客”(Maker)如今在全世界都煊赫一时。今年以来,对青少年的创客教育在中国不管是庙堂仍是大众而言亦是热门话题。编程 从TurnipBi…

c++手机编程软件_积木编程软件手机版下载-积木编程软件下载v1.0.1 安卓版

积木编程软件是可以在线可以学习编程的软件,平台给用户提供了大量的编程学习教程,软件还支持在线编程,学习内容丰富,让用户学习起来不会枯燥乏味,就算你是零基础的小白,也可以体验到编程的乐趣。 积木编程官方简介 积木…

Vue实现图形化积木式编程(十三)

步骤运行代码块高亮 路由历史回顾Babylon.js部分Blockly部分 前言最终实现效果本文内容实现1. 安装依赖2. 简化语法3. 引入js解析器4. 运行代码5. 加入高亮 完整代码本文章的用例代码已经同步到github上,运行程序后访问链接即可查看效果: [http://localhost:3000/#/…

搭积木php编程,Primo Toys,一款可以同时搭积木与编程的玩具

原标题:Primo Toys,一款可以同时搭积木与编程的玩具 时下社会,“编程”一词早已不是成人世界的一个职业,如今,编程能力就像蜗牛日常的读写一样,渗透到孩子生活的方方面面,不论是APP,游戏&#x…

python的积木式编程

edu.codemao.cn https://wood.codemao.cn/ https://static.codemao.cn/wood_docs/web/code/Control.html 编程猫和scratch大同小异,和其他Python平台相比较: 优势: 支持硬件编程丰富的Python库积木/代码一键转换搭积木 学编程使用方便&a…

c语言的积木编程,c语言入门第3节,掌握它就能随心所欲的编程了,自己造积木...

前面两节介绍了如何快速搭建 C 语言开发学习环境,并且给出并解释了 hello world 的代码。上一节介绍了C语言的函数,应该注意到,到目前为止,我们使用的函数都是现有的系统函数(例如 printf,sin 等函数)。事实上&#xf…

等边三角形的积木编程

用Scratch里的画笔,可以很方便的画出等边三角形。步骤如下: 1、定义"等边三角形"积木 点击Scratch里的"自制积木" --》制作新的积木 --》直线 --》添加4个参数,如图(1)、(2)所示: 图(1) 定义"等边三角…