物联网网关神器Kong (四) -利用Konga设置生产环境的安全连接在Konga前篇中,介绍了Konga的构建和与Kong的默认连接。 本文介绍了基于生产验证的连接Kong,并详细介绍了其参数。
如果需要在预准备生产环境中使用,可以只监听127.0.0.1的admin端口,Kong自己进行代理,以提高效果。
首先,可以使用默认方法连接到Kong admin并轻松设置。 然后创建服务。
服务(Service )服务是对Kong服务的抽象概念。 为我们定制的上游服务器可以通过Kong的根抽象(Route )来转发请求,或者通过Kong的插件机制(Plugins )来处理。
以下对Route和Plugins进行说明。
下面我们将展示如何创建一个 Service。
属性详解:
Name :服务的名称。 Description :用于说明定制服务。 Tags :标记此服务,以便通过tag更容易区分。 URL :轻松设置协议、主机、端口和路径。 protocol :使用http/https连接到代理服务。 主机:为代理服务的主机。 端口:代理提供服务的端口。 Path为代理服务的路径。 Retries :代理请求失败,重试几次。 默认值为5秒。 Connect timeout :与代理服务建立连接的超时时间。 Write timeout :与代理服务的写入请求完成之前的超时时间。 Read timeout :与代理服务的读取请求完成之前的超时时间。 客户端证书:证书的id。 填写“如何配置证书”相关属性以构建新服务。
创建成功后,将显示我们创建的kong-admin的新列表
然后,您需要单击此Name进入服务设置页面。
进入配置页面时,左侧有选择栏,右侧有此服务的详细配置。
左侧选择栏的说明:
服务的详细构成。 路由:服务路由。 Plugins :此服务使用的插件。 用于eligibleconsumers:ACLKong插件。 (具体使用方法日后说明) Route ) Route是对Kong的服务路由的抽象。 其功能类似于Nginx的位置结构块。
下面我们将展示如何创建一个 Route
属性详解:
Name:Route的名称Tags :标记此根目录,以便通过tag进行区分。 Hosts :根匹配的域名。 可以填写多个。 (填写后,在按回车之前不记录数据) Paths )根匹配域名的路径。 标题:在匹配的HTTP请求标题中路由携带的参数。 Path handling :用于控制在代理服务期间如何传输请求路径。 (值为V0,V1 ) V0 -其主要实现如下:
请求/user=路由的path /a最后分组为/a/user
V1 -主要实现如下:
请求/user=路由的path /a最后分组为/auser
Https redirect status code :匹配根后,如果协议不匹配,Kong是否会积极响应该状态? 默认值为426。 Regex priority :正则匹配优先级。 在使用正则进行路由匹配时,利用该标志,使用优先顺序最高的。 如果根匹配,Regex priority也相同,则根据最初创建的规则进行匹配。
方法: http请求方法。 例如,GET、POST、PATCH和PUTStrip Path :是否删除根匹配的路径。 例如,路由规则为/a,请求为/a/user。 如果Kong接受请求,则在传输过程中将路径更改为=/user
preserve host:protocols :是否保留接受请求方host的协议。 HTTP或HTTPSSNIs使用套接字路由时与此路由匹配的SNI的列表。 如果使用tcp或tls协议,则必须设置SNIs、源或目标。 源-使用套接字路由时,与此路由匹配的传入连接的IP源列表。 它的格式是IP :端口。 目的—使用套接字路由时与此路由匹配的目标连接的IP源列表。 它的格式是IP :端口。 已创建服务路由
然后,您可以使用此域名访问Kong admin。
Con
sumer ( 消费者 )为了配置 Kong 的插件,我们首先要了解什么是 Consumer 。 Consumer 代表服务的使用者或用户。 首先,我们创建一个 Consumer。
点击我们新建的 kong-admin 然后配置 Credentials 的 API KEYS。
点击 Create API KEY 来新建一个 key。
key - 密钥。如果为空则会自动生成一个。记住生成的密钥,待会儿会用。
Plugin ( 插件 )刚才我们已经成功创建了密钥,接下来我们就要配置权限登陆了。
我们选取之前提到的 Key Auth 来进行验权安全登陆。
首先,打开 Plugins 的页面。
添加一个 Key Auth 插件。
填写相关的参数。
属性详解:
consumer:用于区分 Kong 插件的消费者,为空则对应所有的消费者。key names:key 的名称,可支持多个 key 。hide credentials:是否隐藏凭据到上游 API 服务器。anonymous:配置匿名访问者的 id 。 重启 Kong 容器经过这么多步骤的配置,现在我们我们已经对 Kong 的管理接口进行了验权。我们只需要重启 Docker 容器,使得其端口只监听内部的请求即可。
成功安全连接到 Kong现在,我们已经配置好了安全连接。当我们访问刚才测试的域名时会得到一个异常。
好,接下来我们配置 Konga 进行安全连接。选择 Key AUTH 的登陆方式。然后把刚才记录的密钥填上。
Name:连接名称Loopback API URL:kong 的管理端口 URL。格式为 http://… 或 https:// …API key:密钥现在我们已经使用安全连接成功的连接到 Kong 服务。
总结本篇文章利用配置安全连接 Kong 服务来讲解了 Kong 的 Service、Route、Consumer 和 Key Auth 插件。