Назад | Перейти на главную страницу

Один хост, один статический / публичный IP, несколько vps, несколько доменов. Как проложить маршрут? Debian Linux

Моя конфигурация:

Мне нужно указать domain1.com >>> virtualbox VM1, domain2.com >>> virtualbox VM2

Так:

Большое спасибо за ответ, надеюсь я написал его максимально понятно :)

Это так не работает. 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