У меня есть сервер, на котором я хочу разместить несколько доменов.
Скажем так:
example1.com
example2.com
example3.com
У меня только один публичный IP (на данный момент). Я настроил все A-записи так, чтобы они указывали на этот общедоступный IP-адрес. Я могу настроить свой apache для обслуживания файлов для всех доменов без каких-либо проблем, и я могу использовать ssh для любого из этих доменов и подключиться к моему серверу.
Теперь я установил KVM и создал пару гостей. У одного гостя есть частный IP-адрес 192.168.0.100
. Я хочу провести example2.com
на этого гостя. Поэтому мне нужно как-то направить весь трафик, предназначенный для этого домена, на частный IP-адрес.
Я хочу иметь возможность запускать apache и sshd на нескольких гостях и распределять трафик в соответствии с тем, для какого домена настроен гость.
Возможно ли это вообще в частной сети? Или мне нужны общедоступные IP-адреса для каждого домена?
Я был бы благодарен, если бы кто-нибудь просветил меня. Я подозреваю, что упускаю из виду нечто очевидное.
Можно перенаправлять трафик, вы можете перенаправлять трафик с помощью iptables и использовать mod_proxy для проксирования входящих HTTP-запросов на правильный сервер.
Вы не сможете использовать ssh для порта 22, используя доменное имя и ожидая, что он перейдет к локальному гостю. Вам нужно будет использовать отдельные порты для перенаправления трафика на правильный порт ssh.
Например, если у вас есть guest1, мы зарезервируем порт 10000 на нашем общедоступном IP-адресе для пересылки всех пакетов на наш частный IP-адрес guest1 (192.168.1.2) на порт 22:
Сначала разрешите маскировку:
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Перенаправить трафик, поступающий через порт 10000, на ваш порт ssh на гостевом компьютере 1:
$IPTABLES -A PREROUTING -t nat -p tcp -i eth0 --dport 10000 -j DNAT --to 192.168.1.2:22
Другой способ перенаправить трафик на несколько серверов (в зависимости от нагрузки) - это LVS. ipvsadm
это команда, которая его настраивает ...