一、简介
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:[email protected]: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 路径下。
完
我的 Github:Github
CSDN: CSDN
个人网站: sirius blog
E-mail: [email protected]
相关资料:
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