nginx 使用Google Compute Engine作为Google App Engine Web应用程序的代理

ui7jx7zq  于 2023-08-03  发布在  Nginx
关注(0)|答案(2)|浏览(163)

我在Google App Engine上有一个Java Web应用程序,它向外部API发出请求。API最近需要IP地址的白名单才能访问其服务。因为GAE不提供静态IP,所以我知道一种解决方案是设置GCE示例(使用静态IP),并将其用作GAE应用程序发出的外部请求的代理。
我用Debian GNU/Linux 9建立了一个f1-micro示例,并根据文档创建了一个静态外部IP地址。
如何安装nginx并设置GAE将请求路由到GCE代理?

xfb7svmp

xfb7svmp1#

我们遇到了一个类似的问题,一个客户需要我们的IP地址被列入白名单。我们通过以下方式解决了该问题:
1.使用静态IP地址启动计算引擎。这是我们给客户的IP地址
1.已在计算引擎上安装Squid(https://help.ubuntu.com/lts/serverguide/squid.html
1.然后,我们通过代理服务器重定向来自App Engine的所有调用。您没有列出您使用的语言,但对于PHP,这意味着将以下两行添加到我们的CURL操作中:
curl_setopt($ch,CURLOPT_PROXY,“http://”.$_SERVER['SQUID_PROXY_HOST']。“:“. $_SERVER['SQUID_PROXY_PORT']);
curl_setopt($ch,CURLOPT_PROXYUSERPWD,$_SERVER['SQUID_PROXY_USER'] .“:“. $_SERVER['SQUID_PROXY_PWD']);
需要注意的一点是,根据您正在进行的调用的数量,微示例可能不适合您。我们最初将代理服务器设置在一个微型盒子上,但每隔几天就必须重新启动它。我们最终切换到了一个标准的盒子,从那以后就没有遇到任何问题。

ltqd579y

ltqd579y2#

您可以通过在同一个VPC自定义网络中配置应用引擎示例和自定义NAT示例,并配置路由规则来解决此问题。
相关的google文档在下面;
1.将计算引擎VM示例配置为Nat Gateway(https://cloud.google.com/vpc/docs/special-configurations#natgateway)
1.为该示例创建路由规则(https://cloud.google.com/vpc/docs/using-routes#addingroute)和(https://cloud.google.com/vpc/docs/using-routes#canipforward)
1.配置您的app.yaml网络属性(https://cloud.google.com/appengine/docs/flexible/java/reference/app-yaml#network_settings)
如果你有复杂的系统,我强烈建议你创建子网和一个特定的标签来标记哪些GAE示例要转发到NAT网关。

相关问题