首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何阻止机器人重载我表现缓慢的web应用程序?

如何阻止机器人重载我表现缓慢的web应用程序?
EN

Server Fault用户
提问于 2012-06-28 15:44:08
回答 2查看 1.6K关注 0票数 2

我们有一个情况,机器人占40%的页面请求,一个表现缓慢的web应用程序。

短期救济

作为即时的宽慰,我想做以下工作:

  • 设置指向数据库的从副本的应用程序的另一个实例。将此称为“服务器B”,而主要应用程序是“服务器A")
  • 将所有bot-流量转发给"Server B",将所有其他请求转发给主应用程序"Server A“

通过服务器将"bot流量“与”用户流量“分离开来,将提供更准确的服务器端分析的额外好处(即知道所有流量来自”实际用户“,而不是来自机器人)。此外,我们还可以使用较慢的服务器进行"bot通信“,并将更多的资源用于”真正的客户“,

上下文

  • 目前使用带有mod_proxy前端的Apache2.2。
  • 后端是jboss/tomcat
  • 我们有一个手动维护的bot头列表(例如百度、bingbot、googlebot、msnbot等等)。

问题:

  • apache (或mod_proxy)能否根据头转发请求(即用百度、googlebot、msnbot等将所有请求转发给ServerB,其他所有请求都转发给服务器A)

请提出任何其他建议。

提前感谢

EN

回答 2

Server Fault用户

发布于 2012-06-28 22:02:32

有可能因为没有真正回答你的问题而被否决:

  1. 您可以通过使用Googlebot工具中的设置来减缓Googlebot的速度。
  2. 大多数主要的爬虫器都支持robots.txt中的爬行延迟指令来减缓它们的速度。雅虎的机器人可以是特别激进的。
  3. 在robots.txt中完全禁止百度这样的人。他们对你没有任何好处。
  4. 将攻击机器人视为DOS攻击,并使用IPTABLES或mod_security插件限制来自每个IP的请求的频率。
票数 3
EN

Server Fault用户

发布于 2012-06-28 17:46:48

有几项建议:

  • 看看如何使用User-Agent将机器人(或类似的东西)路由到静态页面,这样您的应用程序就不会花费周期来响应这些机器人。有一些例子的见国防部重写指南
  • 使用robots.txt是一种选择吗?这可能是减轻服务器负载的最简单的选择。添加另一台服务器可能是“昂贵的”(在时间和维护上),而不是我的首选。
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/403112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档