В июле 2009 года сайты Authorize.Net перестали работать из-за местного пожара. Если вы заходили на их веб-сайт в течение этого времени, было уведомление или перенаправление для просмотра обновлений статуса в их учетной записи Twitter. Это казалось хорошим решением.
Это заставило меня задуматься. Для веб-сайтов, которыми я управляю, в их текущих настройках, если мой хост потерял полное интернет-соединение, пользователь увидит в своем браузере ошибку «Сервер не найден». Я бы не хотел, чтобы посетители думали, что компания больше не работает. Я бы предпочел, чтобы посетитель увидел какую-нибудь страницу «Незапланированное отключение».
В настоящее время мне придется:
Это кажется ужасным решением. Я знаю, что должен быть лучший способ сделать это.
Вопрос №1: Как можно этого избежать?
У меня была идея, чтобы серверы имен 1 и 2 указывали на серверы имен, физически расположенные там, где размещен веб-сайт. И чтобы сервер имен 3 и 4 указывал на другой хост, где можно просматривать страницу «Незапланированный сбой».
Вопрос №2: сработает ли это решение?
Вопрос № 3: Могу ли я рассчитывать на то, что серверы имен опрашиваются в порядке (1,2,3,4)?
Вопрос №4: Это ужасная идея или она не одобряется?
Ваши предположения в разделе «В настоящее время мне придется» верны - обратите внимание, что время распространения записи DNS контролируется в записи SOA на ваших серверах имен - вы можете сделать его намного короче (посмотрите записи для любого известного сайта, и вы увидите что они обычно короткие TTL)
Однако ваше решение не будет работать, потому что DNS-серверы не заказаны. Нет 1,2,3,4.
Один из способов, которым я справлялся с этим для большого веб-сайта в прошлом, был аналогичен описанному вами - с помощью компонента аварийного переключения. DNS-серверы в первичном центре обработки данных, DNS-серверы во вторичном центре обработки данных с горячим резервом, когда первичный центр обработки данных не смог обновить DNS, чтобы указать WWW на вторичный центр обработки данных. Существовали коммерческие продукты для автоматической обработки этого (BigIP 3DNS, ха), но написать сценарий было несложно.
Вы можете сделать что-то очень похожее по дешевке.
Получите недорогой VPS и настройте его в качестве вторичного сервера имен для вашего домена (ов) и обновите свои записи у своего регистратора, чтобы все знали об этом сервере имен.
Разместите страницу сбоя сайта на своем новом DNS-сервере.
Настройте значения TTL / Retry / Refresh в вашей записи DNS SOA, чтобы они соответствовали желаемому окну аварийного переключения.
Если ваш основной сайт выходит из строя, обновите свой DNS вручную ... (или автоматически, если вы можете надежно обнаружить сбой и написать сценарий ...)
Я уверен, что у других будет несколько предложений о (многих) способах решения этой проблемы.
Взгляни на AutoFailover.com
Фрагмент из их предложения:
Автоавтоматика
Опора TZO-HA и основа для опции высокой доступности - это уникальная возможность поддерживать чрезвычайно низкое время кэширования. Это позволяет перенаправлять трафик почти в реальном времени..
Когда TZO-HA обнаруживает сбой, он автоматически обновляет DNS-запись для вашего домена, чтобы запросы сервера отправлялись на IP-адрес вашего альтернативного сервера или кластера серверов..
Беспрецедентное время переключения при отказе
Максимальное время для перенаправления запросов к серверу составляет 2-1 / 2 минуты, включая обнаружение сбоев, изменение записей DNS и время распространения DNS через другие DNS-серверы. Обычно все это происходит в течение 1 минуты. Конкурентные предложения могут обеспечивать временные рамки от 10 до 30 минут и более. TZO-HA также включает несколько режимов аварийного переключения.
Делать это через DNS - ужасная идея. Вашим клиентам не только потребуется целая вечность, чтобы понять, что ваш IP-адрес изменился, но они будут кешировать информацию о том, что вы не работаете, даже после того, как вы вернетесь.
Что делают большие парни, так это второй доступный сайт (на котором размещается страница «Мы не работаем» или, может быть, просто еще одна копия сайта), а также несколько маршрутизаторов, выполняющих BGP перед ними. Если один сайт выходит из строя, пакеты волшебным образом переходят на другой сайт. Когда он возвращается, он имеет приоритет, и вот вы.
Это дорого. Вероятно, вам это не нужно. Если да, ну ... тратьте :)
Другой вариант - разместить вашу главную страницу вне CDN (которая, вероятно, не отключится). Если ваш сайт заблокирован, переверните их на страницу «Эй, дела плохи, но они поправятся», пока вы вносите исправления.