【问题标题】:Google App Engine redirect outgoing requests to Compute Engine proxyGoogle App Engine 将传出请求重定向到 Compute Engine 代理
【发布时间】:2019-10-27 16:52:24
【问题描述】:

我目前有一个用 Java 设置的 Google App Engine 网络服务,它向其他 Google API 发出传出 http 请求。为了保护我的 Google API 密钥,我可以添加 IP 地址限制/白名单,但我不能这样做,因为 App Engine 没有静态 IP。

我找到的解决方案是通过 Google Compute Engine(使用静态 IP)创建一个 VM,并安装一个 Squid 代理服务器来重定向请求。

在 VM 上安装 Squid 后,我如何才能通过代理服务器实际重定向来自 App Engine 的请求?我在代理配置方面没有太多经验,也找不到任何支持 Java Web 应用的可靠答案。

【问题讨论】:

  • 如果您想将 App Engine 与其他 GCP 服务和 API 一起使用,查看 Setting Up Authentication for Server to Server Production Applications 可能会有所帮助
  • 您需要使用从 App Engine 到 Compute Engine 的隧道(HTTP 或 SSH)。我在使用 SSH 隧道之前已经这样做了。该代码对于客户端(App Engine)来说很简单。 SSH 隧道使用 GCE 内置的 SSH 服务器将请求转发到 Internet。我没有用 Jave 编写客户端,但您应该可以在 Internet 上找到一些示例。在 Go 和 Python 中很容易做到。
  • 这篇文章解释了 SSH 远程转发隧道。 ssh.com/ssh/tunneling/example#sec-Remote-Forwarding 忽略关于 SSH 的问题,因为这对您的软件无关紧要。这种技术只是通过隧道转发 TCP 流量。 SSH 只是其中一种方法,但很简单。

标签: java google-app-engine google-compute-engine reverse-proxy squid


【解决方案1】:

如果 API 调用不需要从您的应用引擎服务实时进行,您可以通过云任务路由它们并创建以静态 IP 地址为目标的计算引擎虚拟机的 HTTP 目标任务。然后,处理程序可以将其转发给其他 API。

【讨论】:

  • API 请求确实需要是实时的,因为应用引擎服务是从客户端应用程序调用的
猜你喜欢
  • 2020-09-07
  • 2018-04-28
  • 2018-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-17
  • 1970-01-01
  • 2018-07-07
相关资源
最近更新 更多