設定 Proxy 伺服器轉送

本文適用於想透過 Proxy 伺服器轉送所有伺服器端代碼流量的開發人員。

事前準備

設定 Proxy 伺服器轉送前,請確認已備妥下列項目:

  • 部署在 Cloud Run 或透過手動設定的伺服器容器。

  • 部署支援 HTTP CONNECT 要求的Proxy 伺服器

  • 能夠將來自 Proxy 伺服器的特定輸出流量加入許可清單,例如使用 VPC防火牆或 Proxy 存取控制清單 (ACL)。

設定 Proxy 伺服器路徑

Cloud Run

如要將流量轉送至 Cloud Run 部署項目的 Proxy,請按照下列步驟操作:

  1. 開啟 Cloud Run
  2. 選擇伺服器端標記 Cloud Run 執行個體。
  3. 按一下「編輯及部署新的修訂版本」。系統會開啟部署修訂版本畫面。
  4. 在「容器」下方,選擇伺服器容器。系統會開啟新的畫面,顯示容器設定。
  5. 如要展開服務設定,請選取「變數與密鑰」分頁標籤。按一下「新增變數」按鈕,然後新增下列環境變數:

    1. Name (名稱):HTTP_PROXY
    2. :Proxy 伺服器的 URI (例如 https://proxy.example.com:3333http://32.12.83.10)
  6. 按一下 [完成]。

  7. 確認修訂內容,然後按一下「Deploy」

手動部署

如要將流量轉送至 Proxy 以進行手動部署,請按照下列步驟操作:

  1. 定義 Docker 映像檔可存取的環境變數:

    1. Name (名稱):HTTP_PROXY
    2. :Proxy 伺服器的 URI (例如 https://proxy.example.comhttp://32.12.83.10:1234)
  2. 使用新的環境變數執行 Docker 映像檔。

    docker run -p 8080:8080 \
    -e CONTAINER_CONFIG=CONTAINER_CONFIG \
    -e HTTP_PROXY=PROXY_URL \
    gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
    

結果:伺服器端代碼部署作業會將所有外送流量傳送至您在環境變數中指定的 Proxy 端點。

確認 Proxy 伺服器設定

如要驗證 Proxy 要求設定,請檢查 Google 代碼管理工具和 Proxy 伺服器設定。

如要驗證伺服器容器是否會將要求做為 Proxy 處理,請按照下列步驟操作:

  1. 開啟 Google 代碼管理工具

  2. 開啟伺服器容器。

  3. 開啟「預覽」模式。在「要求」分頁中:

    1. 請確保用戶端認領了傳入的要求。
    2. 確認代碼和變數已成功傳送外送 HTTP 要求。
    3. 如要檢查要求是否透過 Proxy 伺服器傳送,請按一下 HTTP 要求,查看「HTTP Request Details」(HTTP 要求詳細資料)

如要驗證 Proxy 設定,請按照下列步驟操作:

  1. 檢查網路和 Proxy 伺服器記錄。您至少應看到對下列端點提出的要求成功:
  2. 檢查是否有對其他端點的要求。
  3. 視您使用的伺服器端代碼功能而定,您也可能會看到向其他端點發出的要求,例如 www.google-analytics.combigquery.googleapis.com 或第三方端點。將代碼設定所需的任何其他端點加入許可清單。

選用:將 Proxy 伺服器的傳出流量加入允許清單

如果您封鎖來自網路或 Proxy 伺服器的輸出流量,則必須將 Google 代碼管理工具網域加入許可清單,標記伺服器執行個體才能正常運作。允許輸出流量的方式取決於您的網路環境和 Proxy 軟體。開始將端點加入許可清單前,請務必瞭解網路拓撲。

下列網域用於擷取、預覽及偵錯 Google 代碼管理工具容器:

  • https://www.googletagmanager.com
  • https://tagmanager.google.com
  • ${Preview server URL}

如果您的預覽伺服器與 Proxy 伺服器位於不同網路,或有嚴格的網路規則,請將從 Proxy 伺服器到預覽伺服器的傳出流量加入允許清單。預覽伺服器網址是在您部署伺服器容器時定義。

選用:使用 Proxy 伺服器進行基本驗證

如果貴機構需要驗證,您可以使用 BASIC 驗證搭配所有伺服器類型。

如要使用 BASIC 驗證,請在 Proxy 伺服器網址中加入憑證 (使用者名稱/密碼),格式如下:

HTTP_PROXY=http(s)://USER_NAME:PASSWORD@PROXY_URL

每個對 Proxy 的要求都會在 Proxy-Authorization 標頭中,將使用者名稱和密碼設為 Base64 值。

如果您使用 Cloud Run,請將 Proxy 端點憑證儲存在 Secret Manager 中。Secret Manager 會在啟動時授予 Cloud Run 密鑰存取權,並解析值。瞭解如何在 Cloud Run 中設定密鑰

選用:為特定主機停用 Proxy

NO_PROXY 環境變數可讓您定義以半形逗號分隔的主機名稱清單,這些主機名稱無法透過 Proxy 伺服器傳送。

舉例來說,假設您有: NO_PROXY=example.com,169.254.169.254,diagnostics.example2.com:3131

伺服器端 Google 代碼管理工具容器不會將下列任何要求設為 Proxy:

  • http://example.comhttps://sub.example.comhttps://other.example.com:123
  • http://169.254.169.254https://169.254.169.254http://169.254.169.254:123
  • http://diagonstics.example2.com:3131https://diagonstics.example2.com:3131