得到了他们的回应:
此时,似乎 (mt) Media Temple 服务器正在向来自 Facebook 的所有请求(包括调试器)返回 200 个响应代码。这可以通过在访问日志中搜索来自调试器的命中来确认。有关查看访问日志的更多信息,请查看以下知识库文章:
我的服务器的 access_log 和 error_log 文件在哪里?
http://kb.mediatemple.net/questions/732/Where+are+the+access_log+and+error_log+files+for+my+server%3F#gs
您可以使用以下命令检查访问日志中是否有来自 Facebook 的点击:
cat <name of access log> | grep 'facebook'
这将返回来自 Facebook 的所有点击。通常,调试器将指定用户代理“facebookplatform/1.0 (+http://developers.facebook.com)”,而来自 Facebook 的一般点击将指定“facebookexternalhit/1.0 (+http://www.facebook.com)”。 com/externalhit_uatext.php)。
使用此信息,您可以通过使用“curl”模拟来自 Facebook 的请求来执行进一步的测试,如下所示:
curl -Iv -A "facebookplatform/1.0 (+http://developers.facebook.com)" http://domain.com
这应该返回 200 或 206 响应代码。
总之,所有迹象都表明我们的服务器正在返回 200 个响应代码,因此问题似乎在于调试器解释此响应代码的方式。已向 Facebook 提交错误报告,我们仍在努力获取有关此问题的更多信息。当更多信息可用时,我们将确保为您更新。
好消息是,他们正忙于解决它。坏消息,这是我们无法控制的。
这里有一个关于此事的论坛帖子:
https://forum.mediatemple.net/topic/6759-facebook-503-502-same-html-different-servers-different-results/
拥有超过 800 次观看和最近的活动,表明他们正在努力工作。
我注意到 https MT 网站甚至没有给出返回码:
Error parsing input URL, no data was scraped.
解析度
MT 承认这是他们的错并修复了它:
在我们调查 Facebook 调试器问题的过程中,我们发现该工具使用的多个 IP 由于请求格式错误而被我们的防火墙过滤。我们已将 Facebook 调试器工具目前使用的 IP 地址范围列入白名单,如其网站上所列,这应该可以防止这种情况再次发生。
我们相信我们的自动封禁系统已经阻止了多个 Facebook IP 地址。在我们的初步调查中,这并没有立即明确,我们很抱歉没有更早发现这一点。
API 请求可能间歇性失败的原因是许多 Facebook IP 地址中只有少数被阻止。API 在多个 IP 范围内进行负载平衡。当我们的系统发现滥用模式(例如导致 404 响应或无效 PUT 请求的 HTTP 请求)时,会添加一个全局防火墙规则来缓解这种行为。通常,该系统运行良好,可以保护我们的客户免受持续威胁。
因此,话虽如此,我们今天一直在将 Facebook API 范围列入白名单,并确认我们的系统不再阻止这些请求。我们仍然希望受影响的人确认问题是否仍然存在。如果出于任何原因您仍然遇到问题,请打开或回复您现有的支持请求