Kong的一大特色就在于强大的可扩展性,具体实现方式就是插件。一来Kong已经提供了很多内置的插件,二来我们也可以使用Lua语言自定义开发插件。今天,我们就来了解一些常用的流量控制插件。
关于流量控制插件
我们在实际应用往往会有一些场景需要限流和限频,从而管理入站和出站的流量。
在Kong中就提供了一些内置的流量控制的插件:
-
请求大小限制
-
请求流量限制
-
终止请求
请求大小限制
此插件主要用于阻止请求内容大小大于指定配置(比如512KB或2MB)的请求,以防止非法、恶意的DoS(拒绝服务)攻击。
我们可以根据下面的步骤开启请求大小限制插件:
首先,找到需要开启插件的service,并进入到plugins页面点击ADD PLUGIN按钮。
其次,找到Traffic Control类别,然后找到Request Size Limiting插件,点击ADD PLUGIN按钮。
然后,配置允许的内容大小,这里为了演示,配置为10个字节。
最后,我们通过PostMan来验证一下,将Body类型选择为“x-www-form-urlencoded”,然后输入一个超过10字节的内容即可测试。
请求流量限制
此插件主要用于限制客户端在一定时间内的请求量,广泛应用于需要保证系统性能的系统访问中。
在Kong中,Traffic Control插件类型中就提供了一个Rate Limiting的限流插件。
在配置项中,我们假设限制客户端每秒只能至多有3次请求。
最后,我们直接通过浏览器来验证一下,连续快速刷新就会得到这个提示:
终止请求
此插件主要通过返回指定的HTTP状态码和信息来终止传入的请求,常用在升级和维护站点时,暂时停止客户端的任务访问请求。
在Kong中,Traffic Control插件类型中就提供了一个Request Termination的终止请求插件。
配置内容如下:返回状态码403 及 一段消息“Sorry, this site is upgrading, please wait..
这里我们用PostMan来测试一下:
了解了这些常见的流量控制插件,我们很快就可以用在自己的实际场景中。
参考资料
闫观涛,《Kong入门与实践-基于Nginx和OpenRestry的云原生微服务网关》
作者:周旭龙
出处:https://edisonchou.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
标签:插件,限制,请求,流量,Kong,Traffic,入门 From: https://www.cnblogs.com/edisonchou/p/edc_kong_learning_notes_chap8.html