Linux
一台主機,一個靜態/公共 ip,多個 vps,多個域。怎麼走路線?Debian Linux
我的配置:
- 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/