Kong 网关 | 快速安装与入门

一、简介

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 路径下。

推荐阅读
史上最全,最完美的 JAVA 技术体系思维导图总结,没有之一!
全站导航 | 我为什么要写这些博客?

我的 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

发布了81 篇原创文章 · 获赞 373 · 访问量 27万+

猜你喜欢

转载自blog.csdn.net/Sirius_hly/article/details/103402889