【发布时间】: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