为什么kong这么火热呢?当然是它拥有强大的插件群来解决我们本来需要重复手动配置或者需要自己实现的内容,kong在1.X版本加强了对于插件的支持,官方提供的插件就是几十个,通过插件可以带来各种场景更加方便使用
比较使用的功能:
- Oauth2.0
- Hmac Auth
- IP限制
- CORS 跨域配置
- 限速
- 请求大小限制
- Prometheus监控
- Http日志
附上:
喵了个咪的博客:http://w-blog.cn
kong官网:https://konghq.com/
konga官网:https://github.com/pantsel/konga
PS:Kong版本必须 >= 1.0.0才能正常使用konga
一,授权验证
在接口请求中权限验证是一个恒久不变的话题,Kong自带了6中加密方式,最常用的用户密码登录,Oauth2.0,Hmac都在其中,
我们先创建一个basic Auth,直接确认即可:
此时请求会有如下返回:
虽然开启了验证,但是还没有录入用户名密码,kong里面有一个Consumer的概念,需要增加一个Consumer
只有输入正确才能
但是这样的方式在网页上用的比较多一些,接口一般使用key验证,我们先先出basic插件
增加key—auth配置
默认请求会提示No Api key
我们只需要加入刚刚配置的参数名和值才可以正常请求
二,插件部分生效
通过上述UI配置的插件的生效范围都是全局生效的,当然一般我们一个网关可能代理了N个service的入口,如果插件的生效范围只是全局基本上就限制了使用范围,当然kong的设计者考虑的比较周到,是否全局都可,但是此时的konga并没有支持部分生效的UI配置,所以我们只能通过使用官方管理API的方式来创建只对于莫个service生效的插件,首先我们需要获取service的ID,通过kong的API文档
Admin API - v1.0.x | Kong - Open-Source API Management and Microservice Management
在创建插件的时候加入对应的service.id即可
konga虽然无法创建但是可以查看
这个service对应的请求就一定要加密
另外一个可以不用就可以正常调用
三、证书
填写证书下面填写具体的域名就配置好了这个证书了
四、上游服务器负载,健康检查
一般从运营的角度上来说一个服务会有多个上游服务器,一般我们会采用一些开源的组件来去配置LSV和nginx都可以做到,kong是基于nginx当然也能做到,负载均衡和健康检查
先清理所有的service和路由,并且需要准备两台服务器
curl 192.168.1.30
uat1
curl 192.168.1.31
uat2
默认端口是8000
再去创建service
最后创建路由
下面就实现了负载均衡的目的
curl 192.168.3.123:8000
uat1
curl 192.168.3.123:8000
uat1
curl 192.168.3.123:8000
uat2
curl 192.168.3.123:8000
uat2
curl 192.168.3.123:8000
uat1
五、配置备份管理机制
kong也有它的缺陷,因为默认是API的配置方式,所以备份很困难,konga刚好提供了一套kong备份机制