是否有可能根据主机头来限制速度? 即不只是在IP地址

我有一个Web服务端点,我正在build立人们将发布一个XML文件,它会真正得到冲击超过1K每秒的请求。

现在他们通过http post发送这些xml文件,但其中绝大多数会受到限制。

问题是,速度限制将由Web应用程序通过查找xml中的source_id来完成,如果超过每分钟x个请求,则不会进一步处理。

我想知道是否可以在处理的早些时候进行速率限制检查,从而保存了50K文件,将stream水线扔到我的networking服务器,并耗尽资源。

负载均衡器能否发出呼叫来validation费率使用情况?

如果这是可能的,我可以把source_id放在主机头文件中,这样即使XML文件也不必被parsing并加载到内存中。

是否有可能只看主机头,不加载整个50K的XML文件到内存?

我真的很感谢你的见解,因为这需要更多的关于整个TCP / IP协议栈的知识。

有两种基本types的可能性:

1)你正在处理那些不会与你的devise合作的敌对攻击者。 在这种情况下,你为什么关心他们发送的Host头? 限制他们的IP。

2)你正在处理那些比你想要的负担更重的合作客户。 在这种情况下,只需接受请求并发送回复,告诉他们退款。

如果你有一个更复杂的情况不属于这两个简单的类别之一,最好的解决scheme可能取决于这种情况。

你可以通过类似模块的Apache来阻止它。 或者如果你想更早地将其切掉,你可以使用iptablesstring匹配通过正则expression式来阻塞事物。

这是tc命令/实用程序的用处 – 需要一点努力,但这是值得的。 我使用它来限制传输到我们企业局域网的DMZ中的服务器。

这里有几个链接,让我走上正轨…

Tcfilter – 端口范围计算掩码值: http : //mailman.ds9a.nl/pipermail/lartc/2007q4/021739.html

限制单个主机或networking掩码的速率: http : //lartc.org/howto/lartc.ratelimit.single.html

http://www.linuxquestions.org/questions/linux-networking-3/limit-bandwidth-rate-for-scp-using-tc-htb-linux-825684/