首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Facebook爬虫机器人崩溃网站

Facebook爬虫机器人崩溃网站
EN

Stack Overflow用户
提问于 2012-10-14 16:18:01
回答 3查看 6.8K关注 0票数 7

Facebook是不是刚刚实现了一些网络爬虫?在过去的几天里,我的网站已经崩溃了几次,严重超载了我追踪到的Facebook的I地址。

我试着用谷歌搜索,但找不到任何关于通过robots.txt控制Facebook的爬虫机器人的权威资源。这里有关于添加以下内容的参考:

用户-代理: facebookexternalhit/1.1爬网-延迟:5

用户-代理: facebookexternalhit/1.0爬网-延迟:5

User-agent: facebookexternalhit/* Crawl-delay: 5

但我找不到任何关于Facebook bot是否尊重robots.txt的具体参考资料。根据更早的消息来源,Facebook“不会抓取你的网站”。但这绝对是错误的,因为我的服务器日志显示,他们以每秒许多页面的速度从69.171.237.0/24到69.171.229.115/24的dozen+ IP抓取我的站点。

我找不到任何关于这方面的文献。我怀疑这是FB在过去几天里实现的新功能,因为我的服务器以前从未崩溃过。

有没有人能给点建议?

EN

回答 3

Stack Overflow用户

发布于 2012-11-10 00:56:49

正如在in this similar question on facebook and Crawl-delay中讨论的那样,facebook并不认为自己是一个机器人,甚至不会要求你的robots.txt,更不用说关注它的内容了。

您可以实现您自己的速率限制代码,如类似问题链接所示。这个想法是简单地返回http代码503当您的服务器超过容量时,或被一个特定的用户代理淹没。

那些为大型科技公司工作的人似乎不知道“改善缓存”是小公司没有预算来处理的事情。我们专注于服务那些真正付钱的客户,而没有时间来抵御来自“友好”公司的横冲直撞的网络机器人。

票数 3
EN

Stack Overflow用户

发布于 2012-11-02 23:43:11

我们几乎在同一时间(10月中旬)看到了同样的行为-来自Facebook的大量请求导致排队请求和整个系统的速度变慢。一开始,它是每90分钟一次;几天后,它的频率增加了,并且变得随机分布。

这些请求似乎并不尊重robots.txt,所以我们不得不考虑一个不同的解决方案。最后,我们将nginx设置为使用facebook用户代理将所有请求转发到一对专用的后端服务器。如果我们使用的是nginx > v0.9.6,我们可以为它做一个很好的正则表达式,但是我们没有,所以我们使用了一个类似如下的映射

代码语言:javascript
运行
复制
    map $http_user_agent $fb_backend_http {
             "facebookexternalhit/1.0 (+http://www.facebook.com/externalhit_uatext.php)"
                    127.0.0.1:80;
     }

这对我们来说效果很好;在我们遭受重创的几个星期里,这种请求分区使繁忙的流量远离了系统的其余部分。

现在对我们来说,它似乎已经很大程度上消失了--我们只是看到了间歇性的峰值。

至于为什么会发生这种情况,我仍然不确定-4月份似乎发生了一起类似的事件,被归因于一个bug http://developers.facebook.com/bugs/409818929057013/,但我最近没有发现任何类似的事件。

票数 1
EN

Stack Overflow用户

发布于 2012-10-14 16:43:55

无论facebook发明了什么,你肯定需要修复你的服务器,因为外部请求可能会使服务器崩溃。

此外,http://www.facebook.com/externalhit_uatext.php也是谷歌在facebookexternalhit上的第一个热门

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12880456

复制
相关文章

相似问题

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