Domain-Name-System

根據域將特定埠上的所有流量轉發到另一個埠

  • March 5, 2012

想像一下,我有 10 個不同的域。所有這些域都有一個指向單個 IP 地址的 A 記錄。在這個 IP 上託管了十種不同的服務。讓我們假設他們從埠監聽:80:90. 使用的協議的預設埠是:80,我不能強制使用者:82在域名後面附加一個。

這就是問題所在:我想:80根據使用的域名在內部轉發。

  • domain0.com:80–>:80
  • domain1.com:80–>:81
  • domain2.com:80–>:82
  • domain3.com:80–>:83

我搜尋了一下,發現了iptables。這就是我要找的嗎?

通常不能那樣做。當客戶端通過 TCP 和/或 UDP 連接時,伺服器沒有關於客戶端用於請求伺服器 IP 地址的域的資訊。

由於您提到埠 80,因此您可能正在談論 HTTP 流量。在這種情況下,可以進行這種區分,因為 HTTP 協議也傳輸選定的域名。您可以使用像 Apache 這樣的 HTTP 伺服器,並為每個域配置一個虛擬主機,充當反向代理並將流量轉發到正確的埠。像這樣的配置可能看起來像這樣:

<VirtualHost *:80>
   ServerName domain1.com

   ProxyPass / http://server-ip:81/
</VirtualHost>

為此,模組proxy需要proxy_http被啟動。

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