kong网关使用记录

news2025/2/24 18:15:08

kong 是一个api网关,类似nginx的网关,一般用于api服务的管理
kong 可以从consul中通过dns获取服务路由,可以自动实现负载均衡

kong

kong最新版没有了conteos的安装文档,现在用Ubuntu来安装kong

1 下载kong

 curl -Lo kong-enterprise-edition-3.1.0.0.all.deb "https://download.konghq.com/gateway-3.x-ubuntu-$(lsb_release -sc)/pool/all/k/kong-enterprise-edition/kong-enterprise-edition_3.1.0.0_amd64.deb"

2 安装kong

sudo dpkg -i  kong-enterprise-edition-3.1.0.0.all.deb

sudo apt-mark hold kong-enterprise-edition

3 新增kong.conf
kong安装完成后在/etc/kong 目录下会生成配置文件
在 kong目录下新增kong.conf

database = postgres           
pg_host = 192.168.1.111.142            # 这里得配置对外ip地址 不能是127.0.0.1
pg_port = 5432                  # pgsql端口
pg_timeout = 5000               # pgsql 连接超时时间

pg_user = kong                  # pgsql 用户名
pg_password = kong                  # pgsql密码
pg_database = kong              # pgsql表

dns_resolver = 127.0.0.1:8600  #这个配置很重要,配置的是consul的dns端口,默认是8600 可以自己修改默认端口
admin_listen = 0.0.0.0:8001 reuseport backlog=16384, 127.0.0.1:8444 http2 ssl reuseport backlog=16384
proxy_listen = 0.0.0.0:80 reuseport backlog=16384, 0.0.0.0:443 http2 ssl reuseport backlog=16384

4 安装postgresql
pgsql 可以使用docker安装启动

docker pull postgres

docker run -d --name kong-database  -p 5432:5432 -e "POSTGRES_USER=kong" 
-e "POSTGRES_DB=kong" -e "POSTGRES_PASSWORD=kong" 
-e "POSTGRES_DB=kong" postgres

5 启动kong

kong migrations bootstrap up -c /etc/kong/kong.conf #初始化数据库

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

konga

konga是kong的可视化管理系统,可以通过ui操作kong的服务、路由配置等

konga 安装

1 使用docker 安装konga

docker pull pantsel/konga

docker run -d -p 1337:1337  --name konga pantsel/konga

2 下载konga汉化包
konga 管理系统是全英文的,可通过插件将konga系统语言改为中文

docker pull  jsonljd/konga-lang-plugin

3 启动konga,将konga中需要汉化的资源复制到本地运行konga-lang-plugin进行汉化

 
docker stop b0d0f905f3f5                    # 停止konga容器
 
docker cp b0d0f905f3f5:/app/assets ./     # 将konga中的 assets资源复制到本地

docker run  --name konga-lang-plugin -v /etc/konga-lang/assets:/app/assets jsonljd/konga-lang-plugin  # 启动konga-plugin 汉化konga的资源文件

docker cp ./assets b0d0f905f3f5:/app/assets      # 将已汉化的konga资源文件复制到konga容器中

docker start  b0d0f905f3f5      # 重启konga容器, 此时konga就已经汉化好了

# 后续启动konga的时候可以直接挂载已汉化的资源文件, 如
docker run -d -p 1337:1337  -v /etc/konga-lang/assets:/app/assets  --name konga pantsel/konga

konga使用

1 konga 操作
在浏览器中输入konga的ip+1337端口就会进入konga管理后台
在这里插入图片描述
此时是konga初始化页面,页面还是英文,等下注册完后登陆页面开始就是中文了
在这里插入图片描述
注册完后可以看到,登陆页面已经变成中文的了
在这里插入图片描述
进入konga需要新增kong的网关地址
在这里插入图片描述
完整的konga页面

2 新增服务

在这里插入图片描述
3 给服务添加路由
只有服务是不行的,还要给服务添加路由,不然无法匹配连接
在这里插入图片描述
点击新增的服务,进入router配置新增路由
在这里插入图片描述
在这里插入图片描述

调用接口
在这里插入图片描述
可以看到请求地址是两个blog,第一个blog是kong路由的路由入口,第二个blog是后端服务器的blog路由入口
网页没有css js 等一系列文件,这是因为该后端服务器是mvc的服务,kong没有配置静态文件代理,所以才会出现这样的情况

konga负载均衡配置

1 新增负载均衡管理
在这里插入图片描述
2 进入新创建的负载均衡detail 中 添加服务配置
在这里插入图片描述
3 添加服务或将已有的服务改为负载均衡的名称
在这里插入图片描述
4 路由配置
在这里插入图片描述

查看效果:
在这里插入图片描述
在这里插入图片描述
在浏览器上访问两次接口,可以看到,每一个服务都被访问了一次,实现了负载均衡效果

接入consul

api服务器接入consul教程:服务接入consul

在这里插入图片描述
在这里插入图片描述

新增consul服务器后,给服务添加路由,路由添加同上

服务添加完成后, 当请求进来的时候,kong会判断是否是consul服务,如果是consul服务的话会自动从consul中获取api服务器的ip+端口然后进行服务调用,consul的服务自动实现负载均衡功能,kong从consul中获取到服务对应的ip后会ip中选一个调用,一个consul服务器可以有多个api

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

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

相关文章

ERROR: Failed building wheel for box2d-py 解决方法

当我们在一个全新的Python环境中构建一个AI/ML项目时,往往会在pip install -r requirements.txt阶段遇到这样一个错误: Building wheel for box2d-py (setup.py) ... error .... swig.exe -python -c -IBox2D -small -O -includeall -ignoremissing -w2…

Java中常见的注解

一、注解 二、三种JDK内置的基本注解 1、Override 表示该方法是重写的父类方法。 为什么要写Override? 其实方法前不写Override是ok的,并且仍然是重写了父类方法。However!如果方法前有Override注解,编译器就会去检查该方法是否真…

ToB SaaS公司如何低成本高效获客

今年SaaS行业有些冷,如何过冬成了热门话题。原来天天对外讲帮客户降本增效,现在自个儿降本增效。调整组织架构,精简人员,砍预算,大抵都要来一遍。隔三岔五听说某家公司裁员,某家公司工资减半。市场预算自然…

CSS基础总结(一)

文章目录 一、CSS概述 (1)简介 (2)语法规范 (3)代码风格 二、CSS基础选择器 (1)标签选择器 (2)类选择器 (3)多类名选择器 &am…

STM32F103xx随记

关于STM32F103xx单片机的一些零碎知识,随时整理下来,方便查阅。 STM32F103xx随记STM32 & STM8 命名STM32F103xx引脚定义表引脚信息芯片手册地址大佬那里抄来的图STM32F103xxADC笔记STM32 & STM8 命名 STM32F103xx引脚定义表 今天在给新的模块添…

直播弹幕系统(二)- 整合RabbitMQ进行消息广播和异步处理

直播弹幕系统(二)- 整合RabbitMQ进行消息广播和异步处理前言一. Socket服务整合RabbitMQ二. 弹幕服务创建2.1 创建一个公共maven项目2.2 弹幕服务项目创建2.2.1 创建队列和广播型交换机2.2.2 生产者发送最终弹幕数据2.2.3 消费者监听原始弹幕数据2.3 Soc…

安卓11上的存储权限问题

这篇文章,想来发布的有些晚了,安卓11已经发布多时了,关于安卓11上的存储权限变更的文章数不胜数,所以这篇文章只做为自己的一个简单的记录吧! 在说11之前,我们先回忆以下10上存储权限的变更:每…

GaiaX开源解读 | 给Stretch(Rust编写的Flexbox布局引擎)新增特性,我掉了好多头发

GaiaX(盖亚),是在阿里文娱内广泛使用的Native动态化方案,其核心优势是性能、稳定和易用。本系列文章《GaiaX开源解读》,带大家看看过去三年GaiaX的发展过程。 GaiaX的布局方案 - Flexbox 阿里文娱业务作为一个内容分发…

Linux调试器——gdb

gdb什么是gdbdebug与releasegdb的基本操作查看代码与断点执行与调试监视变量什么是gdb 之前用的一直都是VS编译器进行调试,调试是一个非常重要的过程,在Linux中调试需要用到一个工具就是gdb。 在调试思路上VS编译器和gdb是一样的,但是调试过…

【云原生进阶之容器】第一章Docker核心技术1.5.1节——cgroup综述

1. cgroups概述 1.1 为什么需要cgroup 在Linux里,一直以来就有对进程进行分组的概念和需求,比如session group, progress group等,后来随着人们对这方面的需求越来越多,比如需要追踪一组进程的内存和IO使用情况等,于是出现了cgroup,用来统一将进程进行分组,并在分组的…

51单片机——静态数码管实验,小白讲解

数码管介绍: 数码管是一种半导体发光器件,其基本单元是发光二极管。数码管也称LED数码管,不同行业人士对数码管的称呼不一样,其实都是同样的产品。数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多…

中国计算机大会CNCC【笔记】

中国计算机大会CNCC【笔记】前言推荐中国计算机大会CNCCCNCC 青年精英思想秀主题:当呼吸化为空气——物联网安全云原生一站式数据管理与服务 : 构建云计算数据平台生态计算产业未来应用场景与创新方向展望用开源打造云原生数据库的生态系统CCF 优博的培养与成长最后…

华为HI第二款车,阿维塔11的智能化有什么特点?

作者 | 德新 编辑 | 于婷阿维塔11,这款车不用过多介绍,长安 x 宁德 x 华为 3家联合打造。外观独特,在宝马17年的顶尖设计师Nader Faghihzadeh主导的设计;用料也很足,90度 - 116度的电池,34.99万的起售价&am…

利用 ALV 实现增删改查系列之一:让 ALV 报表进入可编辑状态试读版

在 CSDN 和我的知识星球里有朋友向我提出同样的问题,询问如何在 ALV 里实现增删改查操作。 虽然需求只有一句话,但是这个需求背后涉及到的知识点不少,因此笔者会通过几篇文章的篇幅,来介绍这个需求的详细实现步骤。 本文先解决第…

【Linux学习】之访问命令行

【Linux学习】之访问命令行 文章目录【Linux学习】之访问命令行一、基础知识二、练习1.使用 date 命令来显示当前的日期和时间。2.以12小时制显示当前时间(例如,11:42:11AM)。3. 查看/home/student/zcat 的文件类型,是否被人读取?4.使用wc命令和 Bash 快…

看过来,2022最后一期大咖说-大厂可观测来啦~

可观测性的应用创新与落地研讨会 「UGeek大咖说-大厂可观测」 最后一期 活动时间:2022/12/21 15:00 — 17:30 活动平台:线上网络直播间 主办单位:优维科技 内容介绍 白驹过隙,转眼就到了2022年末啦~ 「UGeek大咖说-大厂可观…

A. Tower(暴力 + 看数据范围)

Problem - A - Codeforces 彭教授建造了n个不同高度的积木塔。第i座塔的高度为ai。 寿教授不喜欢这些塔,因为它们的高度是任意的。他决定首先精确地移除其中的m个,然后执行以下一些(或不执行)操作。 选择一座塔,将其…

MongoDB——Java Client API(Spring Data MongoDB)

[TOC](MongoDB——Java Client API(Spring Data MongoDB)) MongoDB——Java Client API(Spring Data MongoDB) 关于文档注解 由于mongoDB使用是BSON进行存储,Java则是类与对象的概念,所以设计了一套注解用于标注 Document 范围:类 作用&…

表的增删查改基本查询(where-group by-having)

文章目录表的操作表的创建修改表属性(轻易不要改)数据类型分类类型测试表的增删查改增加插入insert插入否则更新替换Retrieve(检索)查找selectwhere条件语句的添加姓孙的和孙某where语句无法使用别名的问题?语文成绩&g…

OAK相机depthai最全上手教程

编辑:OAK中国 首发:oakchina.cn 喜欢的话,请多多👍⭐️✍ 内容可能会不定期更新,官网内容都是最新的,请查看首发地址链接。 ▌前言 Hello,大家好,这里是OAK中国,我是助手…