Load-Balancing

在 Google Compute Engine 上使用 HTTP(S) 負載平衡器時將所有 HTTP 流量重定向到 HTTPS

  • May 19, 2020

我在 Google Compute Engine 上使用 2 個全域轉發規則(HTTP 和 HTTPS)設置了 HTTP/HTTPS 負載平衡。每個規則都指向一個使用 HTTP 協議的後端服務。

我希望所有請求都http://*轉到https://*.

由於負載均衡器通過 HTTP 與後端服務對話,我認為我無法讓後端服務上的 nginx 發回301.

我在Google計算上嘗試了十幾個小調整,最終Google計算返回一個502.

我確定其他人之前已經設置過這個。非常感謝任何正確方向的提示或指示。

我們使用 HTTP / HTTPS 負載平衡器進行了類似的設置,並且我們設法強制使用 HTTPS。它不能直接從負載均衡器中進行,但您可以從後端服務進行設置。Google Cloud 負載平衡器將使用值 http 或 https 設置 X-Forwarded-Proto http 標頭。您在後端服務中檢查此標頭(在我們的範例中為 Varnish,但這也可以在 Nginx 中完成),如果值為 http,則您發送回 301。

目前,您可以直接通過 HTTP(S) 負載平衡來執行此操作。Google Cloud 發布了重寫和重定向支持(自 2020 年 4 月起)。

請參閱本文以了解如何設置:

https://cloud.google.com/load-balancing/docs/https/setting-up-traffic-management#console有關此功能的更多詳細資訊:

https://cloud.google.com/load-balancing/docs/features#routing_and_traffic_management

引用自:https://serverfault.com/questions/733166