再了解下Plugin、Upstream、Target、SNI、Certificate - 玩转Kong网关

各种API的用法好像差不多,还是自己查官网吧,后面就不在多说了。下面再介绍下 PluginUpstreamSNICertificateTarget,然后就结束这一篇吧。

Plugin对象

Plugin(插件),在HTTP请求/响应生命周期中执行。是Kong服务添加功能的方式,例如认证或速率限制。通过 Plugins Gallery 可以找到更多关于插件安装和使用的教程。

当向服务添加插件配置时,客户端对该服务发出的每个请求都将运行该插件。如果一个插件需要为特定的消费者设置不同的值,可以通过指定consumer_id 值来做到这一点。

当一个插件被配置多次时,优先级是:

1、在一个Route、一个Service和一个Consumer的组合上配置的插件。(Consumer意味着请求必须经过身份验证)。
2、在Route和Consumer的组合上配置的插件。(Consumer意味着请求必须经过身份验证)。
3、在Service和Consumer的组合上配置的插件。(Consumer意味着请求必须经过身份验证)。
4、在Route和Service的组合上配置的插件。
5、在Consumer上配置的插件。(Consumer意味着请求必须经过身份验证)。
6、在Route上配置的插件。
7、在Service上配置的插件。
8、配置为在全局运行的插件。

反正就是能添加一些额外的功能,例如:身份验证、安全、流量控制、分析和监控、转换请求和响应、日志记录、自定义等。

请求主体

属性描述
name要添加的插件的名称。
consumer_id可选 使用者的唯一标识符
config.{property}插件的配置属性
enabled是否应用了插件。默认: true.


Upstream对象

Upstream对象,代表一个虚拟主机名,可以用来在多个服务(目标)上对传入的请求进行负载平衡。例如,一个名为service.v1.xyz的upstream针对一个hostservice.v1.xyz的服务对象。对该服务的请求将被提交到upstream定义的目标。

Upstream还包括一个健康检查器,它能够根据自己的能力或无法服务请求来启用和禁用目标。健康检查器的配置存储在上游对象中,并应用于它的所有目标。

反正就是Nginx的Upstream

请求主体

属性描述
name这是一个主机名, 必须是Service的host
slot 可选 负载均衡器算法中的槽数 (10-65536, 默认: 1000).
hash_on 可选 hash值对象: none, consumer, ip, 或者header (默认: none 是一个加权循环方案).
hash_fallback 可选 hash_on对象输入失败时处理: none, consumer, ip, 或者header (默认 none).
hash_on_header 半可选 头部作为hash的名称(当 hash_on 设置为 header时需要).
hash_fallback_header半可选 头部hash失败时备选方案.
healthchecks.active.timeout可选 套接字健康检查超时时间(以秒为单位).
healthchecks.active.concurrency可选 健康检查中要同时检查的目标数量。
healthchecks.active.http_path可选 探测活动健康检查的访问路径.
healthchecks.active.healthy.interval可选 健康检查之间的间隔(以秒为单位)。值为0表示不执行
healthchecks.active.healthy.http_statuses可选 一个HTTP状态数组,表示在健康检查中返回时的成功状态
healthchecks.active.healthy.successes可选 healthchecks.active.healthy.http_statuses返回成功的数量
healthchecks.active.unhealthy.interval可选 检查失败目标的间隔时间(秒). 0表示不检查
healthchecks.active.unhealthy.http_statuses可选 一个HTTP状态数组,表示在健康检查中返回时的失败状态
healthchecks.active.unhealthy.tcp_failures可选 返回TCP失败的数量
healthchecks.active.unhealthy.timeouts可选 失败目标的超时次数
healthchecks.active.unhealthy.http_failures可选 healthchecks.active.unhealthy.http_statuses返回失败状态的数量.
healthchecks.passive.healthy.http_statuses可选 被动检查.
healthchecks.passive.healthy.successes可选 被动检查
healthchecks.passive.unhealthy.http_statuses可选 被动检查.
healthchecks.passive.unhealthy.tcp_failures可选 被动检查
healthchecks.passive.unhealthy.timeouts可选 被动检查.
healthchecks.passive.unhealthy.http_failures可选 被动检查.


Target对象

Target对象,目标是一个ip地址/主机名,带有一个端口,用来标识后端服务的实例。每个upstream都可以有许多目标,并且可以动态地添加目标。

为同一个upstream创建相同目标不同权限,新的会覆盖旧的设置。要禁用目标,请发布一个新的目标weight=0;或者使用DELETE禁用目标。

反正这个就是Upstream下负载请求的目标对象。

请求主体

属性描述
target目标地址(ip或主机名)和端口。 默认端口:8000. 如果主机名解析为SRV记录, port 值将被dns记录中的值覆盖。
weight 可选 此目标在上游负载均衡器中的权重 (0-1000, 默认值:100). 如果主机名解析为SRV记录,weight值将被dns记录中的值覆盖。


SNI对象

SNI对象,表示主机名到证书的多对一映射。也就是说,证书对象可以有许多与之关联的主机名;当Kong收到SSL请求时,它会在客户端Hello中使用SNI字段来查找证书对象,这是基于与证书相关的SNI。

SNI(Server Name Indication)是为了解决一个服务器使用多个域名和证书的SSL/TLS扩展。一句话简述它的工作原理就是,在连接到服务器建立SSL链接之前先发送要访问站点的域名(Hostname),这样服务器根据这个域名返回一个合适的证书。

请求主体

属性描述
name与证书相关联的SNI名称。
ssl_certificate_id与SNI主机名关联的证书id (UUID)


Certificate对象

证书对象代表SSL证书的公共证书/私钥对。这些对象被Kong用来处理加密请求的SSL/TLS终端。证书可选与SNI对象相关联,将cert/key对绑定到一个或多个主机名。

反正跟https证书相关的那些事情。

请求主体

属性描述
certSSL密钥对的pem编码公共证书。
keySSL密钥对的pem编码私钥。
snis 可选 一个或多个主机名作为SNI来与这个证书关联。这是一个糖参数,它会在引擎盖下创建一个SNI对象,并将其与这个证书关联起来,方便您使用。

转载于:https://my.oschina.net/u/1404949/blog/3039515

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值