Kong网关的部署与配置

Kong简介

Kong是一个开源的云原生API网关和微服务管理平台,它可以帮助开发人员和团队轻松构建、部署和管理现代的API和微服务架构。Kong提供了丰富的功能,包括流量控制、认证和授权、日志记录、监控和安全性等,可以帮助用户更好地管理他们的API和微服务。Kong还支持插件化扩展,用户可以根据自己的需求选择合适的插件来增强网关的功能。Kong已经被广泛应用于各种规模的企业和组织中,成为他们构建和管理API和微服务的首选解决方案之一。

Docker部署Kong

Kong网关需要数据库持久化配置信息、路由规则、插件配置等,可以使用Cassandra或者PostgreSQL数据库,下面我们以PostgreSQL为例

  1. 创建一个Docker network

    需要创建一个自定义网络,以允许容器相互发现和通信。在此示例中,kong-net是网络名称,您可以使用任何名称。

sh 复制代码
docker network create kong-net
  1. 启动数据库
sh 复制代码
docker run -d --name kong-database \
           --network=kong-net \
           -p 5432:5432 \
           -e "POSTGRES_USER=kong" \
           -e "POSTGRES_DB=kong" \
           -e "POSTGRES_PASSWORD=123456" \
           -e "POSTGRES_HOST_AUTH_METHOD=trust" \
           postgres:9.6
  1. kong数据库初始化
sh 复制代码
docker run --rm \
    --network=kong-net \
    -e "KONG_LOG_LEVEL=debug" \
    -e "KONG_DATABASE=postgres" \
    -e "KONG_PG_HOST=kong-database" \
    -e "KONG_PG_PASSWORD=123456" \
    -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
    kong:latest kong migrations bootstrap
  1. kong启动配置
sh 复制代码
docker run -d --name kong \
 --network=kong-net \
 -e "KONG_DATABASE=postgres" \
 -e "KONG_PG_HOST=kong-database" \
 -e "KONG_PG_PASSWORD=123456" \
 -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
 -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
 -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
 -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
 -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
 -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
 -p 8000:8000 \
 -p 8443:8443 \
 -p 8001:8001 \
 -p 8444:8444 \
 kong:latest
  1. konga可视化部署

konga是kong的可视化插件,通过konga可以页面配置代理和插件等。

初始化konga数据库

sh 复制代码
docker run --rm --network=kong-net --link kong-database pantsel/konga:latest -c prepare -a postgres -u postgresql://kong:123456@kong-database:5432/konga

konga启动配置

sh 复制代码
docker run -itd -p 1337:1337 --network kong-net --name konga \
--link kong-local --link kong-database \
-e "NODE_ENV=production" \
-e "DB_ADAPTER=postgres" \
-e "DB_URI=postgresql://kong:123456@kong-database:5432/konga" \
pantsel/konga:latest

kong的配置

  1. 访问konga: http://localhost:1337
  2. 注册用户
  3. 链接kong

需要点击链接才连接到kong

到底这里就已经顺利链接上kong网关了,接来可以配置代理和插件了,但是在配置之前,我们简单介绍一下kong的模型

由上图模型可知道有两条链路,取决于要不要配置负载均衡,这里我们两条链路都来配置一下

非负载均衡配置

目标代理地址是http://192.168.0.115:8080/

  1. 首先配置service

2.配置router (router提供了很多匹配模式,示例以path匹配) 3.访问kong的8000端口: http://localhost:8000/test 可以看到已经代理到我们的目标地址8080端口的服务

负载均衡配置

目标是将请求负载均衡到本地服务的8080端口和8887端口

  1. router的配置保持与上面不变
  2. 配置upstream

3.配置traget (负载到多少个服务就有多少个traget) 4.修改service配置 5.访问 http://localhost:8080/test (重复请求可以看到负载均衡效果)

相关推荐
重生之后端学习6 分钟前
day08-Elasticsearch
后端·elasticsearch·spring cloud·中间件·全文检索·jenkins
志辉AI编程41 分钟前
别人还在入门,你已经精通!Claude Code进阶必备14招
后端·ai编程
代码老y1 小时前
Spring Boot项目中大文件上传的高级实践与性能优化
spring boot·后端·性能优化
paishishaba1 小时前
处理Web请求路径参数
java·开发语言·后端
程序无bug1 小时前
Java中的8中基本数据类型转换
java·后端
雨落倾城夏未凉1 小时前
8.Qt文件操作
c++·后端·qt
5171 小时前
Django中序列化与反序列化
后端·python·django
也许明天y1 小时前
Spring Cloud Gateway 自定义分布式限流
redis·后端·spring cloud
一块plus2 小时前
深度详解 Revive 和 Precompile 技术路径
后端·设计模式·架构
iOS开发上架哦2 小时前
没有Mac如何完成iOS 上架:iOS App 上架App Store流程
后端