Networking

跨多個不同伺服器的域名路由

  • October 27, 2020

如何使用一個公共 IP 地址來託管跨區域網路中多個伺服器的多個域名?

假設我有 5 個 Web 伺服器,服務於 5 個不同的域名,使用 5 種不同的伺服器端技術,我目前有 5 個公共 IP 地址。

設置 DNS 以便 5 個域名中的每一個都映射到各自的公共 IP,並且防火牆具有埠轉發器,因此所有請求都被轉發到 LAN 內正確伺服器的各自內部 IP 地址。

**我將如何鞏固使用一個 IP 而不是 5 個?**我了解動態 dns 的工作原理,如果只有一個網路伺服器,我不會有任何問題。但是,由於有多個 Web 伺服器,使用不同的技術,我不確定如何僅使用一個公共 IP 來完成。

是否有一個伺服器(最好是基於 Linux 的)我可以將所有請求發送到,它能夠根據請求中的域名將每個請求透明地路由到特定的內部 IP + 埠?

您可以嘗試使用反向代理設置負載均衡器。

它基本上是所有請求都發送到的伺服器,但它不處理請求;相反,它只發送要由其後面的伺服器之一處理的請求。

有不同的算法可以將請求發送到正確的伺服器,以免其中一台伺服器的工作量超過其他伺服器,但對於基本設置,即使使其隨機或一次向一台伺服器發送請求也可以工作。由於向實際伺服器發出請求的是 Nginx,因此您將失去原始使用者的 IP 地址。要使其再次可用,您必須設置 Nginx 和您的伺服器以將原始 IP 地址作為 HTTP 標頭傳遞(例如 X-Forwarded-For)。

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