授权验证

在接口请求中权限验证是一个恒久不变的话题,Kong 自带了6种加密方式
konga auth plugins

先创建一个 Basic Auth,直接确认即可
konga add basic auth

此时页面访问 http://dev.lyafei.com:8000/dev 会弹出登录框,让你输入用户名密码,若取消则会返回{"message":"Unauthorized"},若输入用户名和密码后确认会返回 {"message":"Invalid authentication credentials"},因为虽然开启了验证,但是还没有录入用户名和密码,Kong 里面有个 Consumer 的概念,需要增加一个Consumer

konga add consumers
konga add basic cred

这个时候只有输入正确用户名和密码才能访问,这种方式在网页上用的比较多,时间有限,就不一一介绍了。

插件局部生效

通过上述配置的插件生效范围都是全局生效的,一般我们一个网关可能代理了N个 service 的入口,如果插件的生效范围只是全局,基本上就限制了使用范围,当然 Kong 的设计者考虑的比较周到,是否全局都可,Konga2.X 的版本可以在 UI 界面针对某个服务进行配置,低版本的 Konga 不支持,所以对于低版本的 Konga 来说,只能通过 Kong 的官方管理 API 的方式来创建只对于某个服务生效的插件。

konga add dev plugins

如图设置后,这个 dev-service 对于的请求就一定要加密,不然会返回 {"message":"No API key found in request"}
需要加入配置的参数名和值才可以正常请求,而另外一个可以不用就可以正常调用,效果如下图
kong dev
kong test

同时插件对应的范围和适用范围都能在 Konga 的插件管理中看出来
konga plugins

上游服务器负载

一般来说一个服务会有多个上游服务器,一般我们会采用一些开源的组件来去配置,Nginx 就可以做到,基于 Nginx 的 Kong 当然也做得到负载均衡
konga add upstream

再去创建 service
konga add cluster service

最后创建 routes 之后,就实现了负载均衡的目的,效果如下:

curl dev.lyafei.com:8000
app1
curl dev.lyafei.com:8000
uat1
curl dev.lyafei.com:8000
app1
curl dev.lyafei.com:8000
uat1
curl dev.lyafei.com:8000
uat1

备份管理

konga add snapshot
konga export snapshots
konga import snapshots
konga scheduled tasks

最后修改:2020 年 06 月 09 日 12 : 44 PM
如果觉得我的文章对你有用,请随意赞赏