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

使用docker-compose安装:
docker-compose.yml

[root@ecs-f841-0003 kong]# cat docker-compose.yml 
version: '3'
services: 
  kong-database:
    image: postgres:9.6
    restart: always  #每次总是启动
    networks: 
      - kong-net
    environment:
      POSTGRES_USER: kong
      POSTGRES_DB: kong
      POSTGRES_PASSWORD: kong
    ports:
      - "5432:5432"
#######################
# 执行数据库迁移
######################
  kong-migration:
    image: kong:latest
    command: "kong migrations bootstrap"
    networks: 
      - kong-net
    restart: on-failure
    environment:
      - KONG_DATABASE=postgres
      - KONG_PG_DATABASE=kong
      - KONG_PG_PASSWORD=kong
      - KONG_PG_HOST=kong-database
    links: 
      - kong-database #连接的是kong-database服务的
    depends_on:
      - kong-database #依赖于kong-database服务

#####################
# kong gateway
#####################
  kong:
    image: kong:latest
    restart: always
    networks:
      - kong-net
    environment:
      KONG_DATABASE: postgres
      KONG_PG_HOST: kong-database
      KONG_PG_PASSWORD: kong
      KONG_PROXY_LISTEN: 0.0.0.0:8000
      KONG_PROXY_LISTEN_SSL: 0.0.0.0:8443
      KONG_ADMIN_LISTEN: 0.0.0.0:8001
    depends_on:
      - kong-migration
    links: 
      - kong-database
    healthcheck:
      test: ["CMD", "curl", "-f", "http://kong:8001"]
      interval: 5s
      timeout: 2s
      retries: 15
    ports:
      - "8001:8001"
      - "8000:8000"
      - "8443:8443"
#######################
#以下两个是konga  GUI
#######################
  konga-prepare:
    image: pantsel/konga:latest
    command: "-c prepare -a postgres -u postgresql://kong:kong@kong-database:5432/konga"  #注意是用户名:密码@数据库服务名称:端口
    networks:
      - kong-net
    restart: on-failure
    links:
      - kong-database
    depends_on:
      - kong        #依赖kong服务
      - kong-database #依赖kong-database服务

  konga:
    image: pantsel/konga:latest
    restart: always
    networks:
      - kong-net
    environment:
      DB_ADAPTER: postgres
      DB_HOST: kong-database
      DB_USER: kong
      DB_DATABASE: konga
      DB_PASSWORD: kong #必须加上密码,不然会失败
    depends_on:
      - kong
      - kong-database
    ports:
      - "1337:1337"
networks:
  kong-net:
    driver: bridge

执行:docker-compose up -d

查看执行结果:docker-compose ps
在这里插入图片描述

docker ps
在这里插入图片描述

启动服务:
启动俩个节点8801和8901服务,用来测试,启动脚本start.sh内容如下:

#!/bin/bash
kill -9 $(sudo netstat -tlnp | grep 8801 |awk '{print $7}'|awk -F '/' '{print $1}')
nohup java -server -Xmx1200m -Xms600m -jar hsa-pss-pw-local-svc-generic.jar --server.port=8801 --spring.config.location=hsa-pss-pw-local-generic.yml > app.log 2>&1 &
kill -9 $(sudo netstat -tlnp | grep 8901 |awk '{print $7}'|awk -F '/' '{print $1}')
nohup java -server -Xmx1200m -Xms600m -jar hsa-pss-pw-local-svc-generic.jar --server.port=8901 --spring.config.location=hsa-pss-pw-local-generic.yml > app22.log 2>&1 &

访问地址为:
http://172.16.6.146:8801/hsa-pss-pw/swagger-ui.html
http://172.16.6.146:8901/hsa-pss-pw/swagger-ui.html

访问konga:
http://172.16.6.146:1337/

使用账号密码登录:
(这里一顿操作猛如虎,也不知道自己干了啥,好像是注册来的。。。然后第一次会让创建首个用户的账号密码)
admin/xxxxxx
输入账号密码登入

配置konga链接kong:
在这里插入图片描述

kong admin url:默认端口是8001
在这里插入图片描述

在配service之前,简单介绍下,个人理解:
1)services:配置要被转发的域名和地址(我们启动的服务)
2)routes:配置转发到的域名和地址(我们前端要访问的地址)
3)consumers:kong的用户管理,可以创建用户
4)plugins:kong的插件,可以安装等
5)cwetificates:域名的证书,https肯定有证书吧,配置在这
6)upstreams:负载均衡

配置service:
在这里插入图片描述
在这里插入图片描述

service参数说明:
在这里插入图片描述

配置路由:
在这里插入图片描述

注:这里的methods没有默认,在输入框中输入GET,POST然后回车键,再保存即可。http/https的输入框同理。(开始时候输入完一直submit报错,这设计也是醉了)
在这里插入图片描述
在这里插入图片描述

router参数说明:
在这里插入图片描述

配置完后,浏览器访问地址:
http://172.16.6.146:8000/hsa-local-test/api/hsa-pss-pw/swagger-ui.html
而原我们启动的其中一个服务的地址是:
http://172.16.6.146:8801/hsa-pss-pw/swagger-ui.html

nginx的反向代理。之前用nginx配置的如下,可以达到同样的效果。。。
在这里插入图片描述

接下来测试配置upstream:
在这里插入图片描述

输入个name,就保存就行,其他什么健康检查啥的,如果需要再搞。(注:名字记住,配service时候会用)
点击details,配置target:
在这里插入图片描述

新建两个启动的俩节点服务,配置上,并且给它set healthy。
在这里插入图片描述

然后,去配置service,除了host和port如下,其他跟之前的配置相同。
在这里插入图片描述

配置router:(就把path改了下,等下访问时候,好区分)
在这里插入图片描述

以上,接下来,就可以测试了

服务器打开启动的俩服务的日志,然后访问:http://172.16.6.146:8000/hsa-local-test/api/hsa-pss-pw-ups/swagger-ui.html

然后,多次访问,两个日志输出方式,是否为轮询交替。就是说负载已经配置完成。

网上随便找的一段nginx负载均衡的例子,如下:
在这里插入图片描述

对比一下,嗯,感觉也就那么回事。。。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐