博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kong 网关 | 快速安装与入门
阅读量:4104 次
发布时间:2019-05-25

本文共 3954 字,大约阅读时间需要 13 分钟。

一、简介

Kong主要有三个组件:

1、Kong Server :基于 nginx 的服务器,用来接收API请求。

2、Apache Cassandra/PostgreSQL :用来存储操作数据。

3、Kong dashboard:官方推荐 UI 管理工具,也可以使用 RESTful 方式 管理 ADMIN API。

Kong采用插件机制进行功能定制,插件集(可以是0或N个)在API请求响应循环的生命周期中被执行。插件使用Lua编写,目前已有几个基础功能:HTTP基本认证、密钥认证、CORS(Cross-Origin Resource Sharing,跨域资源共享)、TCP、UDP、文件日志、API请求限流、请求转发以及Nginx监控。

二、docker 安装 Kong

1、创建网桥
$ docker network create kong-net
2、创建数据库,Kong 支持 Cassandra 或者 PostgreSQL,任选其一,以下以 PostgreSQL 为例

2.1 启动 PostgreSQL 容器

$ docker run -d --name kong-database \               --network=kong-net \               -p 5432:5432 \               -e "POSTGRES_USER=kong" \               -e "POSTGRES_DB=kong" \               postgres:9.6

2.2 启动 Cassandra 容器

$ docker run -d --name kong-database \               --network=kong-net \               -p 9042:9042 \               cassandra:3
3、初始化数据库

这里使用临时的 docker 容器进行初始化,初始化结束后即删除容器。

$ docker run --rm \     --network=kong-net \     -e "KONG_DATABASE=postgres" \     -e "KONG_PG_HOST=kong-database" \     -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \     kong:latest kong migrations bootstrap
4、启动 Kong
$ docker run -d --name kong \     --network=kong-net \     -e "KONG_DATABASE=postgres" \     -e "KONG_PG_HOST=kong-database" \     -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
5、查看 Kong 是否在运行
$ curl -i http://localhost:8001/

三、docker 安装 UI 管理工具 Konga

1、初始化数据
$ docker run --rm pantsel/konga:latest -c prepare -a postgres -u postgresql://kong:@xxx.xxx.2xx.53:5432/konga
2、启动 Konga
$ docker run -p 1337:1337 \        --network kong-net \        --name konga \        -e "NODE_ENV=production"  \        -e "DB_ADAPTER=postgres" \        -e "DB_URI=postgresql://kong:@xxx.xxx.2xx.53:5432/konga" \        pantsel/konga

kong:@ 后面的地址为数据库所在的地址

3、浏览器访问 Konga UI 管理界面
http://123.56.219.53:1337/register
4.添加 Kong ADMIN URL

注册登录后,根据页面的引导添加 Kong ADMIN URL,地址为你的域名,端口号为 Kong 的管理端口号 8001。

http://xxx.xx.xx9.53:8001

四、CentOS 安装 Kong

以下为不使用 Docker 的安装方式

1.安装 PostgreSQL

安装详情见 https://blog.csdn.net/Sirius_hly/article/details/103426482

2.安装 Kong
yum install -y https://kong.bintray.com/kong-rpm/centos/7/kong-1.3.0.el7.noarch.rpm
3.查看 Kong 版本
kong version
4.为数据库添加用户 kong 和创建数据库 kong
#切换用户su -postgres
#进入psql 客户端psql
#进入客户端后执行以下语句CREATE USER kong; CREATE DATABASE kong OWNER kong;
5.导入 kong 数据
kong migrations bootstrap -c /etc/kong/kong.conf.default
6.启动 kong
cp /etc/kong/kong.conf.default /etc/kong/kong.conf
kong start
6、查看 Kong 是否在运行
curl -i http://localhost:8001/

五、Docker 安装 Konga 连接 Kong

管理工具直接跑 Docker,如果需要连接外部的 PSQL 或者是 Kong ,也可以这样使用。

1、创建 Konga 数据库

在 psql 客户端输入以下命令创建 konga 数据库

CREATE DATABASE "konga" WITH ENCODING='UTF8';
2、初始化 Konga 数据库
docker run --rm pantsel/konga:0.14.1 -c prepare -a postgres -u postgresql://postgres:psql123456@1*.*.*.20*:5432/konga

参数详情:

docker run --rm pantsel/konga:0.14.1 -c prepare -a postgres -u postgresql://{
DB-user}:{
DB-pass}@{
DB-host}:{
DB-port}/konga
-c 命令-a postgres or mysql-u 数据库地址
3、Docker 运行 Konga
docker run -p 1337:1337 \        --network kong-net \        --name konga \        -e "NODE_ENV=production"  \        -e "DB_ADAPTER=postgres" \        -e "DB_URI=postgresql://postgres:passsword@1x.x.x.207:5432/konga" \        pantsel/konga
4、连接 Kong 管理 URL 端口 8001

连接 http://xx.xx.2.xx7:8001

如果 Konga 无法连接 Kong,需要修改 Kong 配置文件为

admin_listen = 0.0.0.0:8001, 127.0.0.1:8444 ssl

配置文件在 /etc/kong 路径下。

ABOUT

公众号:【星尘Pro】

github:

推荐阅读

相关资料:

Kong 官网: https://docs.konghq.com/install/docker/?_ga=2.57853485.644726668.1575523155-387198522.1573265154
Kong Github:https://github.com/Kong/kong
Konga Github:https://github.com/pantsel/konga
Konga参数相关文章:https://www.mayi888.com/archives/58889

你可能感兴趣的文章
android 开发资源
查看>>
九度1001 A+B for Matrices
查看>>
九度1002 Grading
查看>>
九度1003 A+B
查看>>
__INT64的用法
查看>>
九度1004
查看>>
九度OJ 题目17:所有员工年龄排序
查看>>
进入IT企业必读的324个Java面试题
查看>>
九度OJ 题目1169:比较奇偶数个数
查看>>
九度OJ 题目1089:数字反转
查看>>
九度OJ 题目1098:字母统计
查看>>
九度OJ 题目1032:ZOJ
查看>>
九度OJ 题目1115:数字求和
查看>>
九度OJ 题目1022:游船出租
查看>>
九度OJ 题目1206:字符串连接
查看>>
九度OJ 题目1192:回文字符串
查看>>
九度OJ 题目1196:成绩排序
查看>>
九度OJ 题目1203:IP地址
查看>>
九度OJ 题目1179:阶乘
查看>>
九度OJ 题目1180:对称矩阵
查看>>