余瑜的博客 余瑜的博客
首页
  • 并发
  • 线程池
  • spring
  • maven
  • 其他
  • redis
  • mysql
  • linux
  • zookeeper
  • docker
  • terminal
  • kong插件开发
  • 资料
  • leetCode-简单
  • blog
  • 其他
关于
GitHub (opens new window)
首页
  • 并发
  • 线程池
  • spring
  • maven
  • 其他
  • redis
  • mysql
  • linux
  • zookeeper
  • docker
  • terminal
  • kong插件开发
  • 资料
  • leetCode-简单
  • blog
  • 其他
关于
GitHub (opens new window)
  • linux

  • zookeeper

  • docker

  • terminal

  • kong插件开发

    • 开发环境搭建
      • 前言
      • kong插件介绍
        • 现有的数据访问流程
        • 使用kong插件后的流程
      • 本地搭建架构图
      • 定义网络
      • consul
      • postgres 数据库
      • 安装kong
        • 安装
        • 配置文件
        • 初始化kong数据库
        • 启动
      • 安装konga
        • konga添加kong链接注意事项
    • go注册consul
    • konga配置
    • 插件开发
    • 调用c文件
    • 踩坑
  • 运维
  • kong插件开发
余瑜
2021-02-03
目录

开发环境搭建

# 前言

项目中前端访问后端的数据流为 前端发起http请求 => 后端应用层 => kong网关 => 后端服务层 , 为了保证后端应用层到服务层之间的数据安全性, 我们增加了 aksk 验签操作, 只有验签通过的请求才会进行处理, 但是之前的aksk 是写在后端服务层 代码里的, 如果有一些非法请求进行访问, 会造成一端无效的请求命中后端服务, 会对系统的性能造成一定的影响, 所以决定使用kong 网关的插件功能, 在kong 中进行验签操作

# kong插件介绍

# 现有的数据访问流程

image-20210607161026146

# 使用kong插件后的流程

image-20210607161101026

# 本地搭建架构图

docker部署特别方便, 本次环境搭建除了kong 网关其他的均使用docker方式搭建

image-20210607161301763

# 定义网络

docker network create kong-net
1

# consul

docker run --name consul --network=kong-net -d -p 8500:8500 -p 8600:8600/udp -h node-dev consul
1

访问地址验证http://127.0.0.1:8500

# postgres 数据库

docker run -d --name kong-database \
               --network=kong-net \
               -p 5432:5432 \
               -e "POSTGRES_USER=kong" \
               -e "POSTGRES_DB=kong" \
               -e "POSTGRES_PASSWORD=kong" \
               postgres:9.6
1
2
3
4
5
6
7

这里注意postgres版本号为9.6,高版本不支持konga(konga部署2种方式,依赖数据库,另外一种不依赖数据库。依赖数据库的方式:postgres版本号为9.6可以与之兼容)

# 安装kong

# 安装

brew install kong
1

# 配置文件

下载 kong.conf.default (opens new window) 并将文件移动到 /etc/kong/kong.conf

注意:这个kong.conf配置文件的信息需要修改,其中包括配置postgres数据库的地址账号密码等信息

database = postgres             # Determines which of PostgreSQL or Cassandra
                                 # this node will use as its datastore.
                                 # Accepted values are `postgres`,
                                 # `cassandra`, and `off`.

pg_host = 127.0.0.1             # pg数据库在docker中,所以填写本机地址
pg_port = 5432                  # pg数据库端口号
pg_timeout = 5000               # Defines the timeout (in ms), for connecting,
                                 # reading and writing.

pg_user = kong                  # Postgres user.
pg_password = kong
pg_database = kong              # The database name to connect to.

dns_resolver = 127.0.0.1:8600   # 配置consul
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 初始化kong数据库

kong migrations up -c /etc/kong/kong.conf
1

# 启动

kong start -c /etc/kong/kong.conf
1

验证

浏览器访问127.0.0.1:8001,返回Json数据,说明Kong网关已经启动成功。

如果访问不通则尝试使用localhost:8001 , 如果使用localhost可以访问, 则将配置文件中的admin_listen的值 从localhost 修改 为 127.0.0.1 ,修改配置文件重新启动生效

# 安装konga

docker run -p 1337:1337  --name konga  -e "NODE_ENV=production"  pantsel/konga
1

浏览器访问 http://127.0.0.1:1337 (opens new window)

# konga添加kong链接注意事项

Konga 是部署在docker中的, 而kong部署在宿主机上, 两者之间网络是隔离的, docker容器访问宿主机需使用docker.for.mac.host.internal 代替localhost

上次更新: 2021/06/09, 11:15:04

← github拉取代码慢问题 go注册consul→

Theme by Vdoing | Copyright © 2018-2022 逆光世间 | 备案号: 京ICP备19016086号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式