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



















