本文旨在協助開發人員透過 Proxy 伺服器轉送所有伺服器端標記流量。
事前準備
設定 Proxy 伺服器轉送前,請務必先完成下列事項:
部署且支援
HTTP CONNECT
要求的 Proxy 伺服器。將 Proxy 伺服器的特定傳出流量加入許可清單的功能,例如使用虛擬私有雲、防火牆或 Proxy 存取控制清單 (ACL)。
設定 Proxy 伺服器轉送
Cloud Run
如要將流量轉送至 Cloud Run 部署作業的 Proxy:
- 開啟 Cloud Run
- 選擇伺服器端標記 Cloud Run 執行個體。
- 按一下 「Edit & DEPLOY NEW REVISION]」(編輯及部署新修訂版本)。系統會開啟部署修訂版本畫面。
- 在「容器」下方,選擇您的伺服器容器。系統會開啟新的畫面,其中容器設定會隨即開啟。
如要展開服務設定,請選取「Variables & Secrets」(變數與密鑰) 分頁標籤。按一下 [Add Variable] (新增變數) 按鈕,並新增下列環境變數:
- Name (名稱):
HTTP_PROXY
- 「Value」(值):Proxy 伺服器的 URI (例如
https://proxy.example.com:3333
或http://32.12.83.10
)
- Name (名稱):
點選「完成」。
確認修訂版本,然後按一下「Deploy」(部署)。
手動部署
如要將流量轉送至手動部署的 Proxy:
定義可供 Docker 映像檔存取的環境變數:
- Name (名稱):
HTTP_PROXY
- 「Value」(值):Proxy 伺服器的 URI (例如
https://proxy.example.com
或http://32.12.83.10:1234
)
- Name (名稱):
使用新的環境變數執行 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 要求:
開啟伺服器容器。
-
- 確保用戶端認領傳入的要求。
- 確認您的代碼和變數能成功傳送傳出 HTTP 要求。
- 如要檢查要求是否已透過 Proxy 伺服器傳送,請按一下 HTTP 要求來查看 HTTP 要求詳細資料。
驗證 Proxy 設定的方法如下:
- 檢查網路和 Proxy 伺服器記錄。您至少應該會看到傳送至下列端點的成功要求:
- 檢查其他端點是否有要求。
- 視您使用的伺服器端標記功能而定,您可能也會看到向其他端點發出的要求,例如 www.google-analytics.com、bigquery.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
sGTM 容器不會代理下列任何要求:
http://example.com
、https://sub.example.com
、https://other.example.com:123
http://169.254.169.254
、https://169.254.169.254
、http://169.254.169.254:123
http://diagonstics.example2.com:3131
、https://diagonstics.example2.com:3131