Доступ к VirtualBox Apache требуется с хоста Ubuntu

У меня есть хост Ubuntu 10.10, на котором я установил VirtualBox VM. В VirtualBox я установил две другие машины с Ubuntu, в основном с той же конфигурацией. Я пытаюсь создать кластер высокой доступности с двумя узлами (этими двумя виртуальными машинами) и не хочу смешивать свою хост-машину в этом проекте.

Теперь я хочу переключить службу Apache между этими двумя виртуальными машинами, и для этого я создал виртуальный хост. Я редактирую на обеих машинах /etc/apache2/sites-available/mywebsite и добавляю следующие строки:

<VirtualHost 55.55.55.55:80>
 ServerAdmin support@mywebsite.com
 ServerName mywebsite.com
 DocumentRoot /var/www/mywebsite/
</VirtualHost>

Это даст мне возможность запустить мой сайт с 55.55.55.55 вместо http://localhost, Но это работает только в моем кластере из 2 узлов и не видно с моего компьютера. Что я могу сделать? Есть ли решение?

Я прошу прощения за длинный пост, но я хотел дать вам как можно больше подробностей. Спасибо

1 ответ

Решение

Вам нужен балансировщик нагрузки. Балансировщик нагрузки использует сторожевой таймер для отслеживания доступности реальных серверов и отправляет запросы тому, который работает.

[РЕДАКТИРОВАТЬ]

У вас есть два варианта: либо клиентам необходимо подключиться к другому компьютеру, который перенаправляет запросы на работающий сервер (= балансировщик нагрузки), либо вам нужно переместить IP-адрес при переключении серверов.

Вы можете назначить несколько IP-адресов одному компьютеру. Я предлагаю назначить два: одно, которое никогда не меняется (для удаленного администрирования), и другое, которое вы назначаете при запуске apache на этом хосте (это будет 55.55.55.55 в твоем случае).

Альтернатива - запускать Apache только на одном хосте и позволить балансировщику нагрузки отслеживать этот факт. Клиенты всегда подключаются к балансировщику нагрузки. Пока работает только одна служба Apache, подсистема балансировки нагрузки всегда будет отправлять все запросы только одной машине.

Чтобы назначить дополнительный IP-адрес, используйте эту команду:

ifconfig eth0:1 xxx.xxx.xxx.xxx

":1" говорит "дополнительный адрес для eth0" ( дополнительная информация).

Другие вопросы по тегам