物联网网关神器 Kong( 二 )
上一篇我们已经已经了解了什么是 Kong,本篇就来带领大家了解如何安装 Kong。 接下来我们将使用 Docker 安装。如果你有其他的特殊要求,请参照 官方文档 。
Docker 安装 Kong。
首先,你想安装它,就要有 Docker。如果你没有或者不知道什么是Docker,请点击传送门
一、获取镜像
获取 Kong 的docker 镜像
docker pull kong
查看 Docker 镜像
docker images
二、创建网络
需要创建同一个网络用以后面数据库与 Kong 的通信。
docker network create kong-net
三、创建数据库
我们将使用 PostgreSQL 来用作 Kong 的配置存储。
docker run -d --name kong-db \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=kong" \
postgres:9.6
接下来查看容器状态
docker ps
现在可以看到 PostgreSQL 已经正常启动,并对外开放了 5432 端口。
四、初始化数据库结构
我们需要为为刚创建的数据库进行初始化,生成 Kong 所需要的表结构和数据。
docker run --rm --network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-db" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_PASSWORD=kong123456" \
kong kong migrations bootstrap
Tips: 如果你不理解下面的命令就看这一段。
kong kong migrations bootstrap
根据 docker run 的规范
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
说明第一个 Kong 为容器名,第二个 Kong 为为命令 ( Command ) 后面的为参数。简单来说其流程就是:
- 运行一个 Kong 容器。
- 进入该容器并执行
kong migrations bootstrap
命令
五、启动 Kong 容器
为了启动 Kong 容器,我们做了那么多的准备工作,现在终于开始运行起来了。
docker run -d --name kong --network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-db" \
-e "KONG_PG_PASSWORD=kong" \
-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 80:8000 \
-p 443:8443 \
-p 8001:8001 \
-p 8444:8444 \
kong
六、测试是否安装成功
curl -i -X GET --url http://<DNSorIP>:8001/services
将 <DNSorIP>
替换为你的 IP 或 DNS。
如果成功将返回 HTTP/1.1 200 OK
常规配置 Kong
Kong 提供了 Http/Rest 接口,用来动态创建配置文件。
配置反向代理
Kong 是基于 Nginx 的,所以它将会基于配置动态构建出 Nginx 的配置文件。
Nginx 配置文件
upstream example{
server localhost:8080 weight=100;
}
server{
listen:80;
location /hi {
proxy_pass http://example
}
}
使用 Kong API 进行配置
-
配置upstream
curl -X POST http://<DNSorIP>:8001/upstreams --data "name=example"
相当于配置 Nginx 的 upstream 部分。
upstream example{ }
-
配置target
curl -X POST http://<DNSorIP>:8001/upstreams/example/targets --data "target=localhost:6023" --data "weight=100"
相当于配置 Nginx 的 upstream 内的主机部分。
upstream example{ server localhost:8080 weight=100; }
-
配置service
curl -X POST http://<DNSorIP>:8001/services --data "name=hi" --data "host=example"
相当于配置 Nginx 的 server。
server{ listen:80; }
-
配置route
curl -X POST http://<DNSorIP>:8001/routes --data "paths[]=/hi" --data "service.id= < service_id >"
- service_id 为上一步配置 service 时的返回的Id。
相当于配置 Nginx server 内的 location。
server{ listen:80; location /hi { proxy_pass http://example } } ``
访问服务进行测试
我们之前已经运行起了一个 Docker 服务,将端口服务映射到 6023 端口。现在我们可以看到,我们的请求已经经过 Kong API 进行了反向代理到 6023 端口上。
总结
本篇文章我们讲解了利用 Docker 来安装 Kong ,并利用 Kong 的 Rest API 进行了动态配置。让我们来仔细看着这些 API,是不是脑中灵光一显?对,我们可以将Rest API 动态配置的功能做成图形化界面。这样就可以更方便的配置了。 下一篇我们就会接着讲 Kong 的图形化管理界面 - Konga。
- 分享
- 举报
-
浏览量:5119次2021-04-25 15:58:58
-
2021-05-15 14:40:10
-
浏览量:4436次2021-05-08 15:03:49
-
2021-05-11 15:09:01
-
浏览量:1392次2020-03-18 09:55:40
-
浏览量:2512次2022-04-29 16:36:53
-
浏览量:5659次2021-04-16 15:01:12
-
浏览量:5446次2021-04-14 11:06:55
-
浏览量:3954次2021-12-10 19:58:10
-
浏览量:5865次2021-04-08 16:25:20
-
浏览量:5016次2021-04-03 14:12:54
-
浏览量:25240次2020-12-31 14:58:17
-
浏览量:2963次2021-06-15 09:44:15
-
浏览量:1867次2022-01-01 09:00:13
-
浏览量:4513次2021-04-07 20:01:21
-
浏览量:1785次2019-11-22 09:03:33
-
浏览量:3592次2020-10-10 09:30:52
-
浏览量:5050次2021-03-17 17:15:34
-
浏览量:2081次2019-10-09 10:35:18
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
这把我C
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明