以编程方式阻止url进行比率限制,取消阻止或终止该块

如果客户端每小时发送超过x个请求,我的要求是能够限制速度或暂时硬阻止对我们的服务器的任何请求一个特定的URL。

大概有25万个URL可能被阻止。

客户有独特的url,他们也做了一个httppost,所以像这样:

customer1.example.com/post/location/36A107F4-DD68-47F2-A093-753F7A427CF6/

其中customer1是客户名称 ,而36A107F4-DD68-47F2-A093-753F7A427CF6是其独特的位置指南

我希望我的应用程序能够进行某种API调用来阻止给定的url,然后使用API​​调用来取消阻止或使该块在x分钟后过期。

这可能与像haproxynginx的任何开源服务?

这里有一些想法…这些不是特定于nginx或HAProxy,但可能你可以使用相同的想法。

本文讨论他们如何使用Varnish来实现应用程序的每个URL的速率限制。 应用程序使用自定义的HTTP标头而不是API调用与Varnish通信,但是这个想法是相似的。

使用Apache,您可以使用编程式RewriteMap做类似的操作…在数据库中查找请求,对于那些当前速度有限的请求,将其重写为错误页面,否则将它们传递给未修改的页面。 打开/closures特定URL的速率限制将在数据库中进行简单的单行更改。