千家信息网

怎么安装Docker并搭建Kong

发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,Kong 是在客户端和(微)服务间转发API通信的API网关,通过插件扩展功能。概念术语upstream: 是对上游服务器的抽象;target: 代表了一个物理服务,是 ip + port 的抽象;s
千家信息网最后更新 2025年02月06日怎么安装Docker并搭建Kong

Kong 是在客户端和(微)服务间转发API通信的API网关,通过插件扩展功能。
概念术语
upstream: 是对上游服务器的抽象;
target: 代表了一个物理服务,是 ip + port 的抽象;
service: 是抽象层面的服务,他可以直接映射到一个物理服务(host 指向 ip + port),也可以指向一个 upstream 来做到负载均衡;
route: 是路由的抽象,他负责将实际的 request 映射到 service。
默认情况下,KONG监听的端口为:
8000: 此端口是KONG用来监听来自客户端传入的HTTP请求,并将此请求转发到上有服务器;
8443: 此端口是KONG用来监听来自客户端传入的HTTP请求的。它跟8000端口的功能类似,但是它只是用来监听HTTP请求的,没有转发功能。可以通过修改配置文件来禁止它;
8001: Admin API,通过此端口,管理者可以对KONG的监听服务进行配置;
8444: 通过此端口,管理者可以对HTTP请求进行监控.

环境部署
1.安装docker

export REGISTRY_MIRROR=https://registry.cn-hangzhou.aliyuncs.comyum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum repolistyum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engineyum install -y docker-ce-18.09.7 docker-ce-cli-18.09.7 containerd.iosystemctl start docker && systemctl status docker && systemctl daemon-reload

2.禁用防火墙

systemctl disable firewalld && systemctl stop firewalld && systemctl status firewalldsetenforce 0 && sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

3.禁用交换分区,设置路由转发

swapoff -a && yes | cp /etc/fstab /etc/fstab_bakcat /etc/fstab_bak | grep -v swap > /etc/fstabcat /etc/fstabsudo vi /etc/sysctl.confnet.ipv4.ip_forward = 1net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1

安装
1.创建docker网络

docker network create kong-net

2.运行prostgres 9.6数据库镜像

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

3.数据库准备,初始化Kong数据

docker run --rm \--network=kong-net \-e "KONG_DATABASE=postgres" \-e "KONG_PG_HOST=kong-database" \kong:0.14.1 kong migrations up

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:0.14.1

5.创建并运行Kong dashboard容器

docker run -d \--network=kong-net \--link kong:kong -p 8008:8080 pgbi/kong-dashboard start \--kong-url http://kong:8001 \--basic-auth kong=kong

然后访问 http://你的IP:8008,
登录账号为kong,密码为kong

1.为 http://mockbin.org 添加一个名为 example-service 的服务

使用Admin API添加服务,发出以下cURL请求以将您的第一个服务(指向Mockbin API)添加到Kong:

curl -i -X POST \--url http://localhost:8001/services/ \--data 'name=example-service'  --data 'url=http://mockbin.org'

2.为上面创建的服务添加一个路由

curl -i -X POST \--url http://localhost:8001/services/example-service/routes \--data 'hosts[]=example.com'

勾选"strip_path"选项,并点击"updata"

3. 运行下面的命令,会返回 http://mockbin.org 的信息

curl -i -X GET --url http://localhost:8000/ --header 'Host: example.com'

添加认证

1.配置密钥身份验证插件

curl -i -X POST \  --url http://localhost:8001/services/example-service/plugins/ \  --data 'name=key-auth'

注意:此插件还接受一个config.key_names参数,默认为['apikey']。它是应该在请求期间包含apikey的标头和参数名称(均受支持)的列表

2.确认插件配置正确

curl -i -X GET --url http://localhost:8000/ --header 'Host: example.com'

由于您未指定所需的apikey标题或参数,因此响应应为401 Unauthorized

增加消费者

curl -i -X POST \  --url http://localhost:8001/consumers/ \  --data "username=Jason"

为上面的用户添加一个 key。下面命令中的 "ENTER_KEY_HERE" 需要替换成想要设置的密钥。

curl -i -X POST \  --url http://localhost:8001/consumers/Jason/key-auth/ \  --data 'key=ENTER_KEY_HERE'

在第3步的请求中添加 key 的信息后,可以正常访问了。命令如下:

curl -i -X GET \  --url http://localhost:8000 \  --header "Host: example.com" \  --header "apikey: ENTER_KEY_HERE"

服务 端口 监听 插件 配置 功能 参数 命令 客户 客户端 指向 数据 路由 运行 信息 密钥 数据库 服务器 物理 管理者 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 江西 网络安全 公司 中国现阶段最牛的网络安全教授 南昌工控软件开发 pubg地铁逃生哪个服务器好 九台区品质网络技术咨询参考价格 南京市溧水区网络技术 程序中数据如何存储在数据库 服务器随机装软件吗 espace服务器地址怎么设置 重返帝国服务器连接失败原因 app调用本机数据库吗 税务系统 网络安全周 伊春市趣玩网络技术有限公司 网络安全可以研发什么产品 网络安全微视频剧本 空岛战争服务器 计算机网络技术第六章题库 广州市天河高森软件开发部 网络安全日感受 数据库计算某列总和的函数名称 香港服务器设置管理员账户权限 中国现阶段最牛的网络安全教授 服务器做系统 网络安全法律法规都有哪些 手机怎么登录轻量级服务器 机器人和网络安全专业哪个好 电商网络安全需求 国税 网络安全宣传周 辽宁智能软件开发批发价 1000个摄像头服务器
0