问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

服务器部署Kong 和 Konga!终于有自己的网关服务了!

创作时间:
作者:
@小白创作中心

服务器部署Kong 和 Konga!终于有自己的网关服务了!

引用
1
来源
1.
https://cloud.tencent.com/developer/article/2505997

Kong是一个强大的开源API网关,而Konga是它的可视化管理工具。本文将详细介绍如何使用Docker部署Kong和Konga,并通过Konga管理Kong。

前言

最近在想怎么将一个接口给外部提供服务,并且可以根据和对放的关系,设置不同的期限或者服务大小?并且有友好的可视化页面!这让我了解到了API网关,所以我开始研究Kong和Konga的使用。

实际上我最开始研究的apisix,但是部署了好久因为etcd不支持http无法连接成功放弃了!

Kong是一个强大的开源API网关,而Konga是它的一个可视化管理工具。由于Kong使用postgres作为数据存储,所以我们需要三个镜像。

下面是快速搭建Kong和Konga的完整流程,希望能帮助到有类似需求的开发者。

部署可能用到的命令

# 启动
docker-compose up -d
# 关闭
docker-compose stop
# 查看日志
docker logs xxxx
# 查看容器列表
docker ps -a

部署

1. 创建docker-compose.yml文件

首先,在你的工作目录中创建一个docker-compose.yml文件,内容如下:

version: '3.2'
services:
  postgres:
    image: postgres:9.6
    container_name: kong-database
    environment:
      POSTGRES_USER: kong
      POSTGRES_PASSWORD: kong
      POSTGRES_DB: kong
    volumes:
- postgres_data:/var/lib/postgresql/data
    networks:
- kong-net
    restart: unless-stopped

  kong:
    image: kong:2.8.1
    container_name: kong
    environment:
      KONG_DATABASE: postgres
      KONG_PG_HOST: postgres
      KONG_PG_USER: kong
      KONG_PG_PASSWORD: kong
      KONG_PG_DATABASE: kong
      KONG_PROXY_ACCESS_LOG: /dev/stdout
      KONG_ADMIN_ACCESS_LOG: /dev/stdout
      KONG_PROXY_ERROR_LOG: /dev/stderr
      KONG_ADMIN_ERROR_LOG: /dev/stderr
      KONG_ADMIN_LISTEN: 0.0.0.0:8001
      KONG_ADMIN_GUI_URL: http://localhost:8002
    depends_on:
- postgres
    ports:
- "8000:8000"
- "8001:8001"
- "8002:8002"
- "8443:8443"
- "8444:8444"
    networks:
- kong-net
    restart: unless-stopped

  konga:
    image: pantsel/konga:0.14.9
    container_name: konga
    environment:
      TOKEN_SECRET: konga-token-secret
      DB_ADAPTER: postgres
      DB_HOST: postgres
      DB_USER: kong
      DB_PASSWORD: kong
      DB_DATABASE: kong
      NODE_ENV: development # 第一次启动时设置为 development
    depends_on:
- kong
    ports:
- "1337:1337"
    networks:
- kong-net
    command: kong migrations bootstrap
    restart: unless-stopped

networks:
  kong-net:
    driver: bridge

volumes:
  postgres_data:
    driver: local

注意:
konga的NODE_ENV第一次运行时要设置为development,因为生产环境默认是不会自动创建需要的表的。这是为了防止在生产环境破坏现有数据库。

对应的错误:

'Details:  error: relation "public.konga_users" does not exist\n'

2. 启动服务

在包含docker-compose.yml文件的目录中运行以下命令:

docker-compose up -d

3. 初始化Kong数据库

这部分是自动完成的。记得创建成功后修改NODE_ENV为product,在重新启动。

4. 访问Konga并完成设置

  1. 打开浏览器,访问http://localhost:1337

  2. 首次访问时,Konga会提示你创建一个管理员账户。

  3. 登录后,点击Connections->New Connection,配置Kong的连接信息:

  1. 点击Connect,Konga将连接到Kong。
    Connect Page
    Connect Page

5. 验证安装

连接之后看到这个页面说明安装成功了!

连接成功

结尾

今天的分享就这戏了,希望这篇文章能帮助大家快速上手Kong和Konga!
如果有任何问题或建议,欢迎随时交流讨论。感谢大家的阅读,我们下篇文章再见!

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号