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.debsudo 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 postgresdocker 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/kongadocker 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

kong网关使用记录相关推荐

  1. kong 网关日志格式修改

    kong 网关日志格式修改 kong网关默认日志在/usr/local/kong/logs,主要有access.log,admin_access.log,error.log,access.log和ng ...

  2. kong 网关教程入门

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 为什么使用API-Gateway 1. 方便客户端维护-- 每个请求方不用管理多个api url,统一访问api-gateway即可 2. 接口重构时 ...

  3. Kong网关upstream健康检查机制

    目录 upstream概念及作用 健康检查 健康检查方式 判定target是否健康 判定upstreams是否健康 两种康检查的区别 启用和禁用健康检查 禁用健康检查 使用总结 upstream概念及 ...

  4. API网关之Kong网关简介

    1. Kong简介 Kong是一款基于OpenResty(Nginx + Lua模块)编写的高可用.易扩展的,由Mashape公司开源的API Gateway项目.Kong是基于NGINX和Apach ...

  5. API网关产生背景以及kong网关产品介绍

    最近在整理API网关的培训资料,也想来谈一谈我们为什么需要API网关,以及kong网关的一些特性分析.互联网的大环境下,以及微服务架构盛行的今天,为解决企业对外部互联网集成交互的高效和高质量,采用分布 ...

  6. kong 网关access.log日志格式修改

    kong网关默认日志在/usr/local/kong/logs,主要有access.log,admin_access.log,error.log,access.log和nginx的access日志类似 ...

  7. centos6.5 安装 kong 网关

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 最近要求了解下kong网关,然后在网上一顿找,说实话,度娘的力量还是不行啊,找出来的那些跟着配置,不 ...

  8. 以Docker方式安装和配置Kong网关和Konga控制台

    文章目录 以Docker方式安装和配置Kong网关和Konga控制台 前言 安装Kong 创建容器网络 启动PostgreSQL数据库 初始化数据 对Kong Admin API作安全防护 启动Kon ...

  9. Kong网关简介安装

    转载 李亚飞 大佬的文章:https://www.lyafei.com/ 背景 我们有批设备卖给了海外的服务商,老外请了第三方检测机构,检测设备与我们系统的安全性,结果找到了近 40+ 的安全漏洞,有 ...

最新文章

  1. FPGA之道(43)编写纯净的组合或时序逻辑
  2. Testing for SSL renegotiation
  3. Linux下统计局域网流量
  4. 【数据竞赛】Kaggle秘技,用Sigmoid函数做回归问题!
  5. Project Euler Problem 9-Special Pythagorean triplet
  6. php中的数组用什么统计,php数组元素统计与值汇总
  7. WPF ListBox(ListView) 自定义 Button 项,获取 ListBox(ListView)的SelectedValue
  8. Ajax-jQuery_Ajax_实例 ($.ajax、$.post、$.get)
  9. 【学习 OpenCV】—— imgproc.hpp 核心api
  10. 毕业设计《项目管理》总结06之ajax的初步使用经验
  11. 多目标跟踪的评价指标
  12. RouterOS 端口映射
  13. c++的两个冒号::四个点是什么意思,什么作用呢?
  14. Springboot集成MybatisPlus、Druid
  15. Python调用百度API实现语音识别
  16. CentOS7 忘记密码——重置
  17. macOS Mojave(软件篇):微信 for Mac 防撤回插件(WeChatTweak-macOS)
  18. 用c语言验证5阶魔方矩阵,穷举法打印n阶魔方矩阵
  19. php 心跳包检测,redis的对端心跳检测
  20. Android之拍照后删除图片

热门文章

  1. Windows 7系统盘合成
  2. 照相馆预约系统的功能介绍
  3. Windows局域网无访问权限解决办法
  4. 远山优化 高度图转模型问题
  5. Docker部署war包
  6. 基于Python3爬取并下载网易云歌曲!
  7. UA OPTI570 量子力学31 氢原子Fine Structure简介
  8. 安装Windows7之后出现“Bootmgr is missing”的解决办法
  9. 《送你一朵小红花》怎么投资?成本多少?怎么参与?
  10. module java.base does not “opens java.xxx“ to unnamed module @xxxx