kong网关使用记录

7 篇文章 0 订阅
6 篇文章 0 订阅

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值