Facebook 爬虫机器人崩溃网站

问题描述 投票:0回答:4

Facebook 刚刚实施了一些网络爬虫吗?在过去的几天里,我的网站崩溃了好几次,IP 严重超载,我可以追溯到 Facebook。

我尝试过谷歌搜索,但找不到任何关于通过 robots.txt 控制 Facebook 爬虫机器人的明确资源。有一个关于添加以下内容的参考:

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

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

用户代理:facebookexternalhit/* 爬行延迟:5

但我找不到任何关于 Facebook 机器人是否尊重 robots.txt 的具体参考资料。根据较早的消息来源,Facebook“不会抓取您的网站”。但这绝对是错误的,因为我的服务器日志显示他们以每秒许多页面的速度从 69.171.237.0/24 和 69.171.229.115/24 范围内的十几个 IP 爬行我的网站。

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

有人可以建议吗?

facebook bots web-crawler
4个回答
3
投票

正如在 facebook 和 Crawl-delay 上的类似问题中所讨论的那样,facebook 并不认为自己是机器人,甚至不请求您的 robots.txt,更不用说关注它的内容了。

您可以

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

那些为大型科技公司工作的人似乎不明白“改进缓存”是小公司没有预算来处理的事情。我们专注于为实际付款的客户提供服务,没有时间抵御来自“友好”公司的狂暴网络机器人。


1
投票
我们大约在同一时间(10 月中旬)看到了相同的行为 - 来自 Facebook 的大量请求导致请求排队和整个系统速度缓慢。一开始是每 90 分钟一班;几天后,这种情况的频率增加并变得随机分布。

这些请求似乎不尊重 robots.txt,因此我们被迫考虑不同的解决方案。最后,我们设置 nginx 将所有带有 facebook useragent 的请求转发到一对专用的后端服务器。如果我们使用 nginx > v0.9.6,我们可以为此做一个很好的正则表达式,但我们没有,所以我们使用了沿着

的映射

map $http_user_agent $fb_backend_http { "facebookexternalhit/1.0 (+http://www.facebook.com/externalhit_uatext.php)" 127.0.0.1:80; }

这对我们来说效果很好;在我们遭受重创的几周内,这种请求划分使繁重的流量远离系统的其他部分。

现在对我们来说似乎已经基本上消失了 - 我们只是看到间歇性的峰值。

至于为什么会发生这种情况,我仍然不确定 - 4月份似乎发生过类似的事件,归因于一个错误

http://developers.facebook.com/bugs/409818929057013/ 但我最近不知道有什么类似的事情。


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

另外,只是在谷歌上第一次点击

facebookexternalhit

http://www.facebook.com/externalhit_uatext.php


0
投票
我也有同样的问题,但11年后,这个问题变得越来越普遍。

我在

https://botspy24.com/应用程序的帮助下设法阻止了这种现象,我首先观察并禁止了导致过载的代理..

© www.soinside.com 2019 - 2024. All rights reserved.