6

在 Google App Engine 上使用 urlfetch 时,有没有办法指定代理服务器?

具体来说,每次我使用 urlfetch 拨打电话时,我都希望 GAE 通过代理服务器。我想在生产中做到这一点,而不仅仅是开发。

我想使用代理,因为使用 google 的出站 IP 地址存在问题(速率限制、无静态出站 IP、有时被列入黑名单等)。如果您可以编辑 http 消息本身,设置代理通常很容易,但 GAE 的 API 似乎不允许您这样做。

4

2 回答 2

3

你总是可以自己动手:

  1. 在固定目的地的情况下:只需在代理服务器上设置固定端口转发。然后从 GAE 向代理发送请求。如果您有多个目的地,则在单独的端口上设置转发,每个目的地一个。

  2. 如果是动态目的地(通过固定端口转发处理太多),您的 GAE 应用程序会添加一个X-Something包含最终目的地的自定义 http 标头 ( ),然后连接到自定义代理。自定义代理检查此字段并将请求转发到目的地。

于 2012-01-10T17:28:00.057 回答
1

我们遇到了这个问题并联系了 Google Cloud 支持。他们建议我们使用具有一些 app.yaml 设置、自定义网络和 ip 转发 NAT 网关实例的 Google App Engine 灵活。

这对我们不起作用,因为 App Engine Standard 的许多核心功能并未在 App Engine Flexible 中实现。本质上,我们需要重写我们的产品。

因此,为了使适用的 URL 获取请求看起来有一个静态 IP,我们制作了一个自定义代理:https ://github.com/csgactuarial/app-engine-proxy

出于冗余原因,我建议将其实现为多区域、多区域、负载平衡系统。

于 2017-09-05T19:27:17.483 回答