У меня проблемы с сайтом, который использует циклический перебор DNS для аварийного переключения.
Есть два веб-сервера. Когда выключаю apache на одном ящике, все нормально. Когда браузеры пытаются перейти на веб-сервер с отключенным apache, соединение отклоняется, и он автоматически пробует другой.
Однако при перезагрузке возникают проблемы. Когда я перезагружаю сервер, вместо отказа в соединении браузеры ждут тайм-аута, ведущего к очень медленному сайту, пока сервер не восстановится.
Есть ли способ настроить сеть (или CentOS) таким образом, чтобы во время перезагрузки этот IP-адрес продолжал отклоняться, а не занимал много времени до тайм-аута?
Используйте программное обеспечение для балансировки нагрузки с проверкой работоспособности, например Zen-Loadbalancer или HA-прокси.
Там вы можете настроить проверку работоспособности, которая пингует или открывает файл на вашем веб-сервере и удаляет их из балансировки нагрузки, например, если файл недоступен.
DNS Round-robin не предназначен для таких вещей, потому что ваш DNS не знает, недоступен ли сервер. DNS отправляет запросы поочередно на каждый ip.
Просто для объяснения: DNS Round Robin не предназначен для той цели, для которой вы его используете. Он просто говорит DNS раздавать доступные IP-адреса поочередно; нет обратной связи между отказавшим сервером и DNS (а если бы она была, то проблемы с синхронизацией не позволили бы ему сильно помочь из-за того, как устроен DNS). Таким образом, вы можете использовать DNS-Round-Robin для балансировки нагрузки (ограниченным образом), но не для аварийного переключения.
См. Эту цитату: «Если служба на одном из адресов в списке выйдет из строя, DNS продолжит выдавать этот адрес, а клиенты по-прежнему будут пытаться связаться с неработающей службой». из http://en.wikipedia.org/wiki/Round-robin_DNS
Причина, по которой у вас не было проблем с выключением веб-сервера, вероятно, заключается в том, что ваш браузер придерживается работающего веб-сервера, возможно, из-за каких-либо файлов cookie сеанса или чего-то подобного. Вы должны попробовать свой эксперимент с выключением веб-сервера несколько раз, используя совершенно новые сеансы - тогда у вас должны возникнуть те же проблемы, что и при перезагрузке.
Помимо этого, я бы повторил уже данный ответ: решение для балансировки нагрузки будет делать то, что вы хотите.
Как для этого случая обходной путь (только в случае отсутствия балансировщика нагрузки, к сожалению), вы можете сопровождать перезагрузку сервера подходящими конфигурациями на одном из его следующих переходов (коммутатор, маршрутизатор, межсетевой экран), например,
В частности, шаг 2 может состоять из одного из следующих
Возможно, существуют и другие варианты. Конечно, есть один важный момент: Не стреляйте себе в ногу! Например,
Кроме того, я сам не тестировал ни один из этих методов, я просто их придумал и думаю, что они должен работай.