Моя конфигурация:
Debian 8.6
VirtualBox с 5 виртуальными машинами
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
-> Я подключаюсь к ВМ1 (настройка sshd не входит в мой вопрос)
когда я помещаю domain1.com в браузер, я получил результат от apache на VM1 (настройка apache не является частью моего вопроса)
Большое спасибо за ответ, надеюсь я написал его максимально понятно :)
Это так не работает. TCP-соединения, такие как SSH и HTTP, устанавливаются через IP, а IP - это уровень 3, доменные имена выходят далеко за рамки этого, поэтому вы не можете просто сказать «отправить весь трафик с этого доменного имени на эту виртуальную машину».
Однако вы можете использовать обратный прокси для веб-сайтов: 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/
Вы должны использовать переадресацию портов. предположим, что ip vm1 - 192.168.1.5. поэтому вы должны перенаправить порт 80 (http) и порт 22 (ssh) на 192.168.1.5 с вашего общедоступного IP-адреса (195.113.xxx.yyy). Сделайте это для всех vms. сделайте запись хоста в / etc / hosts вашего основного сервера 192.168.1.5 domain1.com, поэтому, если вы нажмете domain1.com, он перейдет на 192.168.1.5