【问题标题】:OpenGraph Debugger reporting bad HTTP response codesOpenGraph 调试器报告错误的 HTTP 响应代码
【发布时间】:2012-12-15 22:03:17
【问题描述】:

对于一些运行正常的网站,当我通过开发人员 facebook com/tools/debug 上的 OpenGraph 调试器运行它们时,Facebook 报告服务器返回了 502 或 503 响应代码。

这些网站显然在负载不重的服务器上运行良好。我尝试过的网址包括但不限于:

http://ac.mediatemple.net http://freespeechforpeople.org

这些实际上都是由 MediaTemple 托管的所有网站。不过,在与 MediaTemple 的人交谈后,他们坚持认为这一定是 API 中的错误,对他们来说不是问题。还有其他人从 Facebook 调试工具获得意外的 500/502/503 HTTP 响应代码,站点由 MediaTemple 或其他任何人托管吗?有解决办法吗?

请注意,我已经查看了其中之一的 Apache 日志,但没有发现 Apache 收到 Facebook 请求或 502 响应等的证据。

【问题讨论】:

    标签: facebook-graph-api mediatemple


    【解决方案1】:

    得到了他们的回应:

    此时,似乎 (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 范围列入白名单,并确认我们的系统不再阻止这些请求。我们仍然希望受影响的人确认问题是否仍然存在。如果出于任何原因您仍然遇到问题,请打开或回复您现有的支持请求

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-15
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多