簡體   English   中英

使用Google Compute Engine作為Google App Engine網絡應用的代理

[英]Using Google Compute Engine as a proxy for a Google App Engine web app

我在Google App Engine上有一個Java Web應用程序,它向外部API發出請求。 API最近要求將IP地址列入白名單以訪問其服務。 由於GAE不提供靜態IP,我理解一種解決方案是設置GCE實例(使用靜態IP)並將其用作GAE應用程序發出的外部請求的代理。

我已經使用Debian GNU / Linux 9設置了一個f1-micro實例,並根據文檔創建了一個靜態外部IP地址。

如何安裝nginx並設置GAE以將請求路由到GCE代理?

我們遇到了類似的問題,客戶需要將我們的IP地址列入白名單。 我們解決了這個問題:

  1. 使用靜態IP地址啟動計算引擎。 這是我們給客戶的IP地址
  2. 在計算引擎上安裝Squid( https://help.ubuntu.com/lts/serverguide/squid.html
  3. 然后,我們通過代理服務器重定向來自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']);

需要注意的一點是,根據您正在進行的呼叫次數,微型實例可能不適合您。 我們最初在微型盒子上設置我們的代理服務器,但每隔幾天就要重新啟動它。 我們最終切換到一個標准盒子,從那時起就沒有遇到任何問題。

您可以通過使用路由規則在相同的VPC自定義網絡中配置應用引擎實例和自定義NAT實例來解決此問題。

相關的google文檔如下;

  1. 將計算引擎VM實例配置為Nat Gateway( https://cloud.google.com/vpc/docs/special-configurations#natgateway

  2. 為此實例創建路由規則( https://cloud.google.com/vpc/docs/using-routes#addingroute )和( https://cloud.google.com/vpc/docs/using-routes#canipforward

  3. 配置app.yaml網絡屬性( https://cloud.google.com/appengine/docs/flexible/java/configuring-your-app-with-app-yaml#network_settings

如果你有復雜的系統,我強烈建議你創建子網和某個標簽來鞭打哪些GAE實例轉發到NAT網關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM