架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6276|回复: 0

kong插件rate-limiting的X-Forward-For配置

[复制链接]
发表于 2019-2-15 14:54:45 | 显示全部楼层 |阅读模式
kong网关rate-limiting限流插件。

根据年、月、日、时、分、秒设置限流规则,多个限制同时生效。

比如:每天不能超过10次调用,每分不能超过3次。

当一分钟内,访问超过3次,第四次就会报错。

当一天内,访问次数超过10次,第十一次就会报错。


场景:我需要对api接口限制单个ip每分钟只能请求3次,当我启用该插件后,正常通过ip访问kong网关是没有任何问题,但是kong的上层还有nginx做负载的,所以,kong获取的ip总是nginx机器的内网ip,这样就成了所有ip每分钟只能访问3次api接口,并不是单个ip每分钟访问3次接口。

如下图,不同ip访问接口,只要每分钟接口被请求了3次,会拒绝所有的访问者。

QQ截图20190215143323.jpg

我安装了http-log插件,用来记录请求和相应的信息,方便,我们调试。

QQ截图20190215143650.jpg

既然kong没有正常获取到client_ip地址,如何纠正这个问题呢?

解决办法

修改kong配置文件,

/etc/kong/kong.conf文件,增加trusted_ips = 0.0.0.0/0,::/0

real_ip_header = X-Forwarded-For


最后,重启kong,命令:kong restart

QQ截图20190215144029.jpg

trusted_ips

定义已知可发送正确X-Forwarded-*标头的可信IP地址块 。来自可信IP的请求使Kong向X-Forwarded-*上游转发其 头部。不可信请求使Kong插入自己的 X-Forwarded-*标头。

此属性还在set_real_ip_fromNginx配置中设置指令。它接受相同类型的值(CIDR块),但是以逗号分隔的列表。

要信任所有 /!\ IP,请将此值设置为0.0.0.0/0,::/0。

如果unix:指定了特殊值,则所有UNIX域套接字都将受信任。
参考文档:https://docs.konghq.com/0.14.x/configuration/#trusted_ips

修改完成后,kong可以正确获取到客户端ip了,如下图:

QQ截图20190215144406.jpg

(完)






上一篇:Location search 属性
下一篇:JavaScript split() 方法
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-27 10:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表