Я являюсь владельцем и управляю visualwebsiteoptimizer.com /. Приложение предоставляет фрагмент кода, который мои клиенты вставляют на свои веб-сайты для отслеживания определенных показателей. Поскольку фрагмент кода является внешним JavaScript (в верхней части кода сайта), перед отображением веб-сайта клиента браузер посетителя связывается с нашим сервером приложений. В случае отказа нашего сервера приложений браузер будет пытаться установить соединение до истечения времени ожидания (обычно 60 секунд). Как вы можете себе представить, мы не можем позволить себе отключить наш сервер приложений ни при каких обстоятельствах, потому что это негативно скажется на опыте не только посетителей нашего сайта, но и посетителей наших клиентов!
В настоящее время мы используем механизм аварийного переключения DNS с одним сервером резервного копирования, расположенным в другом центре обработки данных (фактически на другом континенте). Таким образом, мы контролируем наш сервер приложений из 3-х разных мест и, как только он обнаруживается, что он не работает, мы меняем запись A, чтобы указать IP резервного сервера. Это прекрасно работает для большинства браузеров (так как наш TTL составляет 2 минуты), но IE кэширует DNS в течение 30 минут, что может быть убийством сделки. Смотрите этот недавний пост нашего visualwebsiteoptimizer.com/split-testing-blog/maximum-theoretical-downtime-for-a-website-30-minutes/
Итак, какую настройку мы можем использовать для обеспечения практически мгновенного переключения при сбое в случае серьезного сбоя в работе центра обработки данных? Я прочитал здесь www.tenereillo.com/GSLBPageOfShame.htm, что наличие нескольких записей A является решением, но мы не можем позволить себе синхронизацию сеансов (пока). Еще одна стратегия, которую мы исследуем, - это две записи A, одна из которых указывает на сервер приложений, а вторая - на обратный прокси-сервер (расположенный в другом центре обработки данных), который разрешает доступ к основному серверу приложений, если он включен, и к серверу резервного копирования, если он работает. Считаете ли вы эту стратегию разумной?
Просто чтобы быть уверенным в наших приоритетах, мы можем позволить себе отключить собственный веб-сайт или приложение, но мы не можем позволить замедлить работу веб-сайта клиентов из-за нашего простоя. Поэтому, если наши серверы приложений не работают, мы не собираемся отвечать ответом приложения по умолчанию. Даже пустого ответа будет достаточно, нам просто нужно, чтобы браузер завершил это соединение HTTP (и ничего больше).
Ссылка: я прочитал эту ветку, которая была полезна serverfault.com/questions/69870/multiple-data-centers-and-http-traffic-dns-round-robin-is-the-only-way-to-assure