簡體   English   中英

連接到Google Compute Engine代理服務器時,“ Google App Engine不支持使用代理”錯誤

[英]'Google App Engine does not support the use of proxies' error when connecting to Google Compute Engine proxy server

我們有一個Java 7 Google App Engine實例,我們正在嘗試將其連接到外部API。 由於API服務器需要白名單的IP地址才能訪問,因此我們已經設置了安裝了Squid的Google Compute Engine代理服務器( 在其他地方提出了解決方案 ),然后將API服務器上的代理服務器的外部IP地址列入了白名單。

這樣,從GAE發出的請求將首先重定向到GCE,從而允許進行API調用。 但是,GAE請求當前失敗,並顯示以下消息:

 WARNING: Google App Engine does not support the use of proxies. 

誰能提供解決方案?

首先,不建議使用Java 7運行時,因此您應該遷移到Java 8版本。 您可以通過在appengine-web.xml文件中指定Java 8運行時來實現:

<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
  <runtime>java8</runtime>
  <threadsafe>true</threadsafe>
</appengine-web-app>

隨着向Java 8的遷移,其他功能也會發生變化。所有更改都在此處進行了說明。

以防萬一由於配置中的某些問題而導致錯誤,請確保正確配置了用作代理的實例(可以使用Squid)。 防火牆規則和訪問控制列表應正確建立,例如:

gcloud compute firewall-rules create [FIREWALL_RULE] --network [NETWORK] --allow tcp:3128

您還應該通過在Squid配置中啟用它們來設置適當的訪問控制項。 這里有些例子:

sudo sed -i 's:#\(http_access allow localnet\):\1:' /etc/squid/squid.conf
sudo sed -i 's:#\(http_access deny to_localhost\):\1:'/etc/squid/squid.conf

如果您遵循此示例 ,則可以測試用作代理服務器的實例的正確使用。

Java中有一個稱為ApiProxy( com.google.apphosting.api )的靜態類,可以用作從用戶代碼到應用程序服務器的所有調用的收集點。 在這里,您可以找到與其相關的所有類和方法,以及與ApiProxy相關的其他類。

暫無
暫無

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

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