本文共 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 network create kong-net
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
这里使用临时的 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
$ 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
$ curl -i http://localhost:8001/
$ docker run --rm pantsel/konga:latest -c prepare -a postgres -u postgresql://kong:@xxx.xxx.2xx.53:5432/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:@ 后面的地址为数据库所在的地址
http://123.56.219.53:1337/register
注册登录后,根据页面的引导添加 Kong ADMIN URL,地址为你的域名,端口号为 Kong 的管理端口号 8001。
http://xxx.xx.xx9.53:8001
以下为不使用 Docker 的安装方式
安装详情见 https://blog.csdn.net/Sirius_hly/article/details/103426482
yum install -y https://kong.bintray.com/kong-rpm/centos/7/kong-1.3.0.el7.noarch.rpm
kong version
#切换用户su -postgres
#进入psql 客户端psql
#进入客户端后执行以下语句CREATE USER kong; CREATE DATABASE kong OWNER kong;
kong migrations bootstrap -c /etc/kong/kong.conf.default
cp /etc/kong/kong.conf.default /etc/kong/kong.conf
kong start
curl -i http://localhost:8001/
管理工具直接跑 Docker,如果需要连接外部的 PSQL 或者是 Kong ,也可以这样使用。
在 psql 客户端输入以下命令创建 konga 数据库
CREATE DATABASE "konga" WITH ENCODING='UTF8';
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 数据库地址
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
连接 http://xx.xx.2.xx7:8001
如果 Konga 无法连接 Kong,需要修改 Kong 配置文件为admin_listen = 0.0.0.0:8001, 127.0.0.1:8444 ssl
配置文件在 /etc/kong 路径下。
完
公众号:【星尘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