在6月4日的networkingstream量的Cacti图表上我们有点惊讶:
http://blog.stackoverflow.com/wp-content/uploads/stackoverflow-cacti-graph-june-15-2009.png
我们在我们的IIS日志上运行了Log Parser ,事实certificate这是雅虎和谷歌机器人索引我们的完美风暴。在这3个小时的时间里,我们看到来自3个不同的谷歌ips的287k点击,加上来自雅虎的104k点击。 哎哟?
虽然我们不想阻止谷歌或雅虎,这是以前出现的。 我们可以访问Cisco PIX 515E ,我们正考虑将其放在前面,这样我们就可以dynamic处理带宽违规者,而无需直接触摸我们的Web服务器。
但这是最好的解决scheme吗? 我想知道是否有任何软件或硬件可以帮助我们识别和阻止过多的带宽使用 ,理想的实时? 也许我们可以把一些硬件或开源软件放在我们的networking服务器前面?
我们大多是一家窗口店,但我们也有一些Linux技能; 如果PIX 515E不够用,我们也会购买硬件。 你会推荐什么?
如果PIX运行的是操作系统的7.2或更高版本,或者可以升级到该版本,则可以在防火墙级别实施QOS策略。 特别是这可以让你形成stream量,并允许你限制机器人使用的带宽。 思科在这里有一个很好的gudie。
我不知道雅虎,但你可以configuration谷歌的机器人索引您的网站的频率。 看看Google网站pipe理员 。 我不确定雅虎是否有类似的东西。 任何情况下都可以将stream量降低50%。
或者,一些networking服务器可以限制每个连接的stream量,所以你可以尝试。 我个人会远离硬件解决scheme,因为它很可能会花费更多。
减less爬行负载 – 这只适用于微软和雅虎。 对于Google,您需要通过网站站长工具( http://www.google.com/webmasters/ )指定较慢的爬网速度。
在执行此操作时要非常小心,因为如果您放慢抓取速度,机器人将无法访问您的所有站点,并且可能会丢失索引中的页面。
这里有一些例子(这些在你的robots.tx
文件)
# Yahoo's Slurp Robot - Please wait 7 seconds in between visits User-agent: slurp Crawl-delay: 7 # MSN Robot - Please wait 5 seconds in between visits User-agent: msnbot Crawl-delay: 5
稍微偏离主题,但您也可以指定Sitemap或Sitemap索引文件。
如果您想为search引擎提供最佳url的完整列表, 您也可以提供一个或多个Sitemap自动发现指示。 请注意,用户代理不适用于这个指令,所以你不能用它来指定一个站点地图,但不是所有的search引擎。
# Please read my sitemap and index everything! Sitemap: http://yourdomain.com/sitemap.axd
我们使用了一个Watchguard防火墙(我们的X1000现在已经过时了)。 他们有很多特性围绕着阻止域名或ips,一次又一次看到,或者正在使用一定数量的带宽。
这将需要一些调整,因为你obvisouly不会阻止乔恩Skeet的stackoverflow 🙂
我build议微软ISA Server 2006.特别是对于这个要求,它将限制为每个IP默认600 HTTP请求/分钟,你可以申请一个例外的乔恩Skeet(抱歉,我意识到“笑话”已经! )。
您还拥有应用程序级别过滤的额外好处,能够在多个Web服务器(而不是这些服务器上的NLB)上进行负载均衡,VPN终止等。有许多商业扩展可用,您甚至可以编写自己的ISAPI筛选器if你感觉很勇敢
这显然不是开源的,但对Windows商店有好处,并在商品硬件上运行。
我们使用代工负载平衡器(特别是SI850s)来处理这种成型问题,它也处理了很多其他'nastys'像SYN-洪水等。虽然可能对你们有点矫枉过正。
Bluecoat(以前称为Packeteer)PacketShaper产品可以dynamic地节制其pipe理的stream量的过度使用。
您甚至可以使用任何体面的容量/年份的任何常规思科路由器执行基本的速率限制。 你在使用Cisco路由器吗?