我们有一个包含10M产品页面的网站,其中包含fb类按钮和fb评论。
Facebook反过来似乎通过69.171.228.x和69.171.229.x访问我们,计算机似乎彼此无视。这会导致难以消化的流量峰值,有时我们会重新调整以阻止fb ip:s,如果网站速度减慢的话。
我想知道,我们使用opengraph meta标签向facebook展示标题,图片等。如果我们为facebookexternalhit做一个简单的页面版本,基本上只有这些数据吗?
答案 0 :(得分:1)
我已经设置了专门的机器,只接收来自Facebook机器人的请求。它需要应用层检查(在User-Agent上进行调度),但为维持主站点的响应能力而付出的代价很小。根据您的负载均衡器,设置专用池应该相当容易。如果您正在使用云服务器或虚拟机,则可以在几个小时内抛出实例,并在变更管理流程允许后立即将其投入生产。您还可以在此池中最大化缓存以减轻外部数据源的负载,减少日志记录等。
我在推出时有一个特色网站,这是一场灾难。但是,您可以联系FB工程师,他们实际上有兴趣帮忙。我们能够协商对其轮询间隔的修改。这减少了我们网站上的会话创建,直到我们可以添加一个servlet过滤器来允许无会话请求(我们使用ATG Dynamo),直到我们可以为上述池安装硬件。你也许可以这样做。
我认为这些选项中的任何一个都比重新设置代码库更好,因为Facebook会在不提示您的情况下更改其爬虫活动。在某些时候,这样的改变可能会使你的“轻微”页面变得毫无用处。
答案 1 :(得分:0)
你的意思是什么简明的页面?
基本上,facebook使用你的opengraph元标记中定义的URL访问资源,如果我是正确的,它应该是图像的URL。我认为他们不会访问您的产品页面,旨在呈现给人类。此外,它会缓存结果,并且当第二个用户从Facebook查看该图像时不应触发流量。在另一个节点上托管facebook访问的图像资源以减少主Web服务器的负载可能是个好主意