我有一条路径(例如 mysite.com/myapiendpoint),它既是服务资源密集型的,又很容易被机器人滥用。我需要将对该特定路径的访问速率限制为每个客户端 IP 地址每分钟 10 个请求。如何才能做到这一点?
我正在托管一个前面有 CloudFront 和 AWS WAF 的 EC2 实例。我启用了标准的“基于速率的规则”,但对于我的应用程序,每个 IP 地址每分钟至少 2,000 个请求绝对不可用。
我正在考虑为此使用 API Gateway,并且过去曾使用过它,但据我所知,它的速率限制不是基于 IP 地址,因此机器人会简单地用完限制,而合法用户将不断被拒绝使用端点。
我的站点不使用任何类型的会话,因此我认为我不能在服务器本身中进行任何类型的速率限制。另外请记住,我的网站是单人操作的,我对 AWS 有点陌生 :)
如何将每个 IP 的使用限制为每分钟 10 个请求,最好是在 WAF 中?
[编辑]
经过更多研究,我想知道是否可以将标头转发到源(运行节点/快递)并使用速率限制器包。这是一个可行的解决方案吗?