Networking
使用廣域網作為內部網路
假設我有一個用於服務客戶端的小型 Web 基礎架構,其中包含 nginx 作為前端伺服器、幾個後端(上游)、一個消息傳遞系統、數據庫等。
這些東西位於兩台專用伺服器上。伺服器之間有區域網路,並且每台伺服器至少有一個公共 IP 地址。並且所有公共地址都在同一個廣播網段中(通過交換機或 VLAN 連接 - 沒關係)。這兩個網路上的延遲是相同的。
我有兩種選擇在這個系統的各個部分之間進行通信:在所有配置中使用本地 IP 或使用公共 IP。在第一種情況下,我將擁有更複雜的基礎設施(由兩個網路引起)。在第二種情況下,我的系統會更加透明,但我擔心網路通信的隱私。
是否存在使用一種或另一種方法的一些規則或最佳實踐?
使用第二個網路進行內部通信。您可以減少面向公眾的界面上的攻擊面,並且可以更輕鬆地監控/調節通信。您絕對不想向公眾開放您的數據庫埠、消息伺服器或其他任何東西。事實上,除了最前端的伺服器(nginx)之外,不要將任何東西放在公眾可以接觸到的地方。
您不希望您的系統對使用者透明。你希望你的系統是一個神秘的黑匣子,只有一個小窺視孔可以看到外部世界進行必要的互動。