Мониторинг и подмена адреса www-сервера
mod_proxy поможет, если только на В будет внешний ip адрес и В не будет падать из-за питания. Соответственно для внешнего мира А будет виден через В.

соответственно, в случае если B имеет внешний IP, серверу А уже не нужен внешний IP?
т.е. под этот домен вместо ip A ставить ip B.
Как только сервак поднялся - лезть опять туда и опять править все назад.
хуйня, тогда уж проще портмаппинг настроить по тому же принципу, чем с DNS геморроиться.
я просто не в курсе насчет портмаппинга...
Вообще все предлагаемые решения работают таким образом, что если B упал, то сайт вообще не работает. Потому что одним из условий задачи является то, что на A винда, а получается, что на нём ничего нельзя делать.
А в моем решении если Б упал - то сайт работает если А не упал.
лезть на dns сервер и править там адреса или ip...на клиентах кешируются результаты днс запросов.
т.е. под этот домен вместо ip A ставить ip B.
Как только сервак поднялся - лезть опять туда и опять править все назад.
и не факт что удастся поиметь к авторитетному днс-серверу автоматический доступ
на клиентах кешируются результаты днс запросовИ не только на клиентах.


Наверняка какие-то средства failover есть там.
Я не знаю ни одного. Даже если есть, то они совместимы только с самим собой.
Через него можно сделать, если ещё и роутер(ы) есть.

твое решение - вообще хуйня, т.к.
лезть на dns сервер и править там адреса или ip...
т.е. под этот домен вместо ip A ставить ip B.
Как только сервак поднялся - лезть опять туда и опять править все назад.
на клиентах кешируются результаты днс запросов.
Воистину - хуйня...
Надо вешать пинг на вторую сетевуху сервака А, и как только она перестает пинговаться - править eth0 на серваке B -передавая ему внешний ip сервака А - никаких обновлений днс не надо.
как только вторая сетевуха А запинговалось - убираешь из eth0 сервака Б ip сервака А/
Это решение гораздо красивее и делается в 3 условия, 2 команды и 1 цикл.
не надо изобретать велосипед.
CARP, HSRP, VRRP, HertBeat и т.п.
но это не в этом случае, т.к. иначе можно поиметь кучу глюков

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

http://www.opennet.ru/base/net/FilterBridge.txt.html - здесь создают мост с фильтрацией, но можно заменить фильтрацию на прозрачное проксирование.
так сказать - резервный канал при падении сайта.
а все меганавороты - это для админов.
для практических целей нужны простые и легкие решения.
а это и есть веб программирование.
смешно

там наворотов гораздо больше, чем в реализации carp и т.п.
я как-то смотрел - ничего не понял
А непонятные аббривеатуры - не факт, что простые. Да и раз их больше одной - значит как минимум - каждая хороша по своему, а значит надо тратить время, разбираться во всех, потом выбирать лучшую.
В результате - потеря времени и никакого полезного результата.
А тут - простой и гарантированный результат за несколько строк кода.
>> изобретать велосипед
Ну и зачем мне теперь Ваши самолеты, если я могу доехать и на велосипеде.
и везде разный
простой и гарантированный результатв том-то и дело что это не так

1) Когда ты уже поставил на B адрес А, ты уже не заметишь, что B поднялся, никаким пингом. А останется сидеть на этом адресе навечно.
2) Машина может пинговаться, а сайт на ней работать не будет. Твой скрипт не сработает.
Теперь внимание, правильный ответ: на А ставится nginx в режиме акселлератора/прокси, помимо этого на этом же nginx поднимается резервный сайт, на другом порту, например 8080. В нормальном случае nginx на A проксирует свой порт 80 на B. В качестве upstream_next для этого проксирования вписывается B:8080.
Когда ты уже поставил на B адрес А, ты уже не заметишь, что B поднялся, никаким пингом.Разумный человек поставит каждому серверу свой постоянный адрес (который и будет пинговать а для сервиса выделит виртуальный-переходящий.
Верно, но всё равно способ отстойный.
Разумный человек поставит каждому серверу свой постоянный адрес (который и будет пинговать а для сервиса выделит виртуальный-переходящийя примерно так и предлагал, и даже указал в посте, что пинговать надо другую сетевуху.
Единственно - под пингом я понимал на именно команду ping (речь идет о первом моем посте а проверку сайта не работоспособность.
Заморочка с nginx - это перебор, т.к. сайт упадет если ляжет машина Б.
Потому что одним из условий задачи является то, что на A винда, а получается, что на нём ничего нельзя делать.Да ну? Есть же MSCS - нормальный HA-кластер, в том числе и под Win2K. Правда, нужен Win2K Advanced Server или Datacenter Server.
Требующий от всех приложений использования его API?
Единственный раз я использовал API когда заказчик захотел нетривиального мониторинга Оракла. И то, всё было ну очень просто.
Ну значит про API меня заголовки в MSDN неправильные ввели в заблуждение.
1) писать свои инструменты для управления кластером,
2) включать в кластер свои нестандартные приложения, требующие какого-нибудь хитрого мониторинга (пример - кластер отслеживает состояние standby базы данных, состояние оценивается по выводу специального SELECTа, запускаемого раз в минуту)
Оставить комментарий
yolki
Задача такая: Есть сервер с адресом A.Нужно как-то исхитрится и сделать так, что если он вдруг упал - за него появлялся сервер B (по тому же адресу) с надписью типа "звиняйте, А не доступен".
Я смутно себе представляю, что возможно, нужно на B поставить апача и повозится с mod_proxy или другими модулями, но пусть отцы мне посоветуют что делать реально надо..
А - под Win2K. под чем B - не важно. могу для этих целей винду найти или юникс.
B находится с A в одной локальной сети, у А есть внешний IP.