Google Cloud Load Balancer + 實例群組 + SSL 憑證

Google Cloud Load Balancer + 實例群組 + SSL 憑證

我的專案由一個主網站組成,使用者可以在其中註冊帳戶。註冊後,他們每個人都會得到一個網站(我自己的網域的子網域),其中他們有一個電子商務商店,由我的主網站(他們註冊的網站)上託管的平台管理,就像這樣

example1.com -> 主網站(登入、註冊等)
example1.com/platform -> 管理平台
store1.example1.com -> 使用者1的商店
store2.example1.com -> 用戶2的商店

就硬體而言,現在我的設定是這樣的:GCP 中使用 apache 的 1 個虛擬機器實例,使用一些通配符設定了幾個虛擬主機,這些通配符可以將請求的網域對應到適當的資料夾。
我還在我的主域上產生了一個通配符證書,使用 SSL 保護我的所有客戶商店。

現在,我想防止伺服器隨著時間的推移而過載,所以我雖然有一個負載平衡器連接到從上面解釋的機器複製的一組機器可以解決我的問題,理論上它可以工作,但我有一個問題:

每個用戶都有權購買自己的網域並將其重定向到我的 IP(LB 或 VM),以便他們的商店看起來像這樣:

store1.com -> 用戶 1 的商店
store2.com -> 用戶 2 的商店

而且,如果他們願意,他們可以在我的平台上「購買」SSL 憑證來保護他們的網域。我可以透過API 的certbot 和LetsEncrypt 輕鬆處理SSL 憑證的動態創建,但是,由於我的虛擬機器將在實例組上運行,因此我在目前工作的虛擬機器上保存的任何憑證檔案都不會複製到其他虛擬機器(如果有) ),當實例組決定不再需要目前的虛擬機器時,甚至可能會遺失。我如何安排所有內容(LB、實例組、虛擬機和/或apache),以便負載平衡器將流量傳送到我的實例組中的多個虛擬機,但它們可以以某種方式「共用」憑證文件夾甚至整個磁碟。

順便說一句,虛擬機上的永久磁碟只能安裝到多個虛擬機,如果它們處於唯讀模式(不起作用),我也嘗試過文件存儲,但每月要花200 美元,這有點多了。

答案1

正如@JohnHanley 指出的:

管理 LB 設定上的憑證並從 Web 伺服器中刪除 certbot。谷歌域名驗證會產生一些開銷,但絕對值得一試。

關於 LB 配置和證書:

  • 您無法變更 LB 上配置的憑證
  • 但您可以新增憑證(例如,使用附加主機名稱)並將其新增至現有 LB,然後刪除舊憑證設定

有一些 Terraform 模組可以為您提供支持,但這當然也會帶來一些學習和管理工作。

相關內容