Linux

一台主機,一個靜態/公共 ip,多個 vps,多個域。怎麼走路線?Debian Linux

  • September 22, 2016

我的配置:

  • Debian 8.6
  • 帶有 5 個虛擬機的 VirtualBox
  • 5 個不同的域名(domain1.com、domain2.com、domain3.com …)
  • 一個靜態/公共 IP (195.113.xxx.yyy)
  • 伺服器在私網,公網IP將所有流量轉發到伺服器私網IP

我需要指向 domain1.com >>> virtualbox VM1, domain2.com >>> virtualbox VM2

所以:

  • 當我ssh root@domain1.com-> 我連接到 VM1 時(sshd 設置不是我的問題的一部分)
  • 當我將 domain1.com 放到瀏覽器中時,我從 VM1 上的 apache 得到了結果(apache 設置不是我的問題的一部分)

非常感謝你的回答,我希望我寫得盡可能清楚:)

這不是那樣的。TCP 連接(如 SSH 和 HTTP)是通過 IP 建立的,IP 是第 3 層,域名遠不止於此,因此您不能只說“將所有到該域名的流量發送到此 VM”。

您可以為網站使用反向代理:https ://en.wikipedia.org/wiki/Reverse_proxy

例如,Apache 可以做到這一點,你必須讓它在你的主機上使用外部 IP 執行。

例子:

<VirtualHost *:*>
 ProxyPreserveHost On
 ProxyPass / http://192.168.0.2/  #internal IP of your 1st domain
 ProxyPassReverse / http://192.168.0.2/ #internal IP of your 1st domain
 ServerName domain1.com
</VirtualHost>
<VirtualHost *:*>
 ProxyPreserveHost On
 ProxyPass / http://192.168.0.3/  #internal IP of your 2nd domain
 ProxyPassReverse / http://192.168.0.3/ #internal IP of your 2nd domain
 ServerName domain2.com
</VirtualHost>

如果您想使用 https,請記住您必須使用 SNI(大多數但不是所有客戶端都支持)。

為了更好地理解圖片:http: //iws.io/multiple-web-servers-over-a-single-ip-using-apache-as-a-reverse-proxy/

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