有时我的服务器上有ddos攻击。我在努力阻止这一切。我使用Nginx来提供静态内容,并将其用作反向代理,使用Apache来服务php应用程序。
当攻击开始的时候,我有很多。3000个IP地址),希望同时到达我的页面,但每4-5秒只有一个IP地址。但是,如果有很多攻击者,我仍然每秒钟有400个请求,但来自不同的IP。所以我很难阻止它,因为Nginx中的IP连接速率限制在这种情况下是行不通的。我在那台服务器上有大约100个网站。在攻击期间,Nginx工作正常,但是Apache完全死了,Nginx不仅不能连接受攻击站点,而且不能连接服务器上的所有站点。我没有问题的情况下,在攻击期间,被攻击的网站不工作,但我希望其他网站工作不受影响。
我需要解决方案,不移除攻击,但我希望有工作的服务器,能够服务于其他网站时,一个被攻击。
你能帮我个忙吗?我在考虑在Nginx前面使用haproxy。我会增加一个后端为每个网站的并发连接限制约40个连接。你觉得这是个好主意吗?或者你有其他的想法,如何防止这种攻击?
发布于 2016-02-11 10:07:54
DDOS从来不是一个容易解决的问题,但听起来您正在经历的低级别攻击类型肯定会得到HAProxy中的队列工具的帮助,也就是说,不要将太多的请求(Maxconn)淹没在Apache服务器上。
您还可以尝试使用cookie工具对现有客户进行排序,就像一些繁忙的站点使用黑色星期五保护一样。
发布于 2016-02-11 19:50:39
在Apache中,看看如何降低MaxRequestWorkers (或MaxClients )的值,这取决于您的Apache版本。一旦值足够低,Apache就不应该崩溃,因为它仅限于响应尽可能多的请求。额外的请求将被排队(在链接的文档中描述,最多有一个限制)。
有关总体问题,请参见我在DDoS下面.我能做什么?。
https://serverfault.com/questions/755468
复制相似问题