Kong使用概览
Kong是什么
Kong原意为金刚,形容强健、力量、坚固、稳定。它基于Nginx和OpenResty,是一个具有分布式、高性能、高并发、可伸缩、可扩展、动态配置等特性的微服务抽象层,
Kong作为一个优秀的开源云源生项目,目前在GitHub上星数超过26000+,
最早被列入CNCF(Cloud Native Computing Foundation,云原生计算基金会)全景图。
Kong可以做什么
术语
- client:向Kong代理端口发出请求的下游客户端
- upstream service:指的是位于Kong后面的的API /服务,客户端请求/连接将转发到该API /服务
- Service:服务实体,每个上游服务的抽象
- Route:路由实体,进入Kong的入口点,它定义了要匹配的请求的规则,并路由到给定的服务。
- Plugin:可以为全局、Service,Router配置,在代理的生命周期中执行业务逻辑
- Consumer:消费者的核心原则是您可以将插件附加到他们,从而自定义请求行为,消费者可以代表一个用户,一个应用程序等。
代理
Kong将根据您配置的路由,评估任何传入的HTTP请求或L4连接,并尝试查找匹配的路由。 如果给定请求符合特定路由的规则,则Kong将处理代理请求。
Kong在匹配到路由之后,将运行在路由及其相关服务上配置的插件,然后再代理到上游请求。
路由匹配协议及属性:
http
:methods
,hosts
,headers
,paths
(andsnis
, ifhttps
)tcp
:sources
,destinations
(andsnis
, iftls
)grpc
:hosts
,headers
,paths
(andsnis
, ifgrpcs
)
如果Kong无法匹配路由(或者如果未配置任何路由),它将以以下方式响应:
{"message": "no route and no Service found with those values"}
匹配优先级:
when evaluating a request, Kong will first try to match the Routes with the most rules.
配置文件
默认配置文件在/etc/kong/kong.conf
从配置文件中加载属性时,Kong还将寻找同名的环境变量。 这使您可以通过环境变量完全配置Kong,
例如,这对于基于容器的基础结构非常方便。
要使用环境变量覆盖设置,请声明一个环境变量,其名称为该设置的名称,前缀为KONG_,并使用大写字母。
例如:
log_level = debug # 配置文件KONG_LOG_LEVEL=error # 覆盖配置文件
认证
关于Consumer
在官方文档中,消费者的概念出现在认证章节中,“消费者的核心原则是可以将插件附加到他们,从而自定义请求行为”。
所以消费者是配合认证插件使用的,在使用认证插件时必须配置消费者的凭证。使用认证插件,就可以识别出是哪个消费者发起的请求,
而消费者又可以绑定插件,从而实现根据不同的消费者执行自定义请求行为。
Konga
Konga是一个非官方的,开源的目前最好用的UI管理工具。
konga 管理工具在添加任何插件时,第一行都是consumer,按照上面的理解,对任何插件这个值都是不应该填写的。应当在具体的consumer上,添加插件。
插件执行顺序
优先级越高,先执行
lua代码搜索路径
以上是 Kong使用概览 的全部内容, 来源链接: utcz.com/z/518230.html