【问题标题】:GAE urlfetch Host header set to IP address instead of hostnameGAE urlfetch 主机头设置为 IP 地址而不是主机名
【发布时间】:2014-06-23 14:16:46
【问题描述】:

我正在从应用引擎调用第三方网络服务。这项特殊的服务很挑剔。我遇到了一个问题,通话可以正常工作一段时间,然后停止工作,然后重新开始工作。我意识到,如果我手动停止管理控制台中的所有实例,调用将再次起作用。

我设置了一个代理来路由呼叫,这样我就可以看到标题和所有细节。我想我已经将问题归结为以下问题。在一个实例启动一段时间后(应用程序现在通常只需要 1 到 3 个实例),应用程序引擎将开始使用目标的 IP 地址作为主机标头的值,而不是主机名。好吧,服务不喜欢那样。它是否应该关心是另一回事。

所以我的问题是,为什么应用引擎最终会使用主机标头的 IP 地址而不是主机名?而且,当然,我能做些什么吗?我知道我无法设置主机头,但也许还有其他可以做的事情。

感谢您的任何见解。

【问题讨论】:

    标签: google-app-engine urlfetch


    【解决方案1】:

    首先,感谢您发现这种行为。很长一段时间以来,我们都遇到了 urlfetch 的间歇性问题,并将尝试检测是否是这个问题。

    您可以尝试的一件事是针对特定实例/模块:

    http://instance.version.module.app-id.appspot.com

    并循环浏览实例。如果您只是针对模块,它会在一些不活动后杀死实例。所以,也许这不会触发 GAE DNS 快捷方式。

    另一个技巧是在你的 url 后面添加一个假的、随机的查询字符串:?foo=D7hfka67h。也许这会阻止 GAE 识别重复的 url,并尝试缩短 DNS。

    【讨论】:

      猜你喜欢
      • 2016-05-08
      • 2014-12-19
      • 2014-12-02
      • 1970-01-01
      • 1970-01-01
      • 2014-04-12
      • 1970-01-01
      • 2021-01-18
      • 2011-03-12
      相关资源
      最近更新 更多