Доступ к 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
" ( дополнительная информация).