Стратегии, основанные на DNS, для показа хорошей страницы "В настоящее время автономно", когда сервер не работает

Как я могу сделать, чтобы сайт автоматически показывал хорошую страницу "В настоящее время автономно", когда сервер выключен (я имею в виду, что полный сервер не работает и запрос не может достичь IIS)

Изменение DNS вручную не является параметром.

Изменить: Я искал какой-то трюк DNS для перенаправления на другой сервер, если главный сервер не работает. Я могу вносить постоянные изменения в DNS, но не вручную, когда сервер идет вниз.

Ответ 1

Я использовал службы uptime на DNSMadeEasy с большим успехом. Фактически, они установили DNS TTL на очень низкое число (5 минут). Они заботятся о проверке вашего сервера.

В случае сбоя запросы DNS направляются на вторичный IP-адрес. Отличный вариант для "теплых запасных" в небольших магазинах с ограниченными требованиями DNS. Я использовал их в течение 3 лет без какой-либо минуты простоя.

EDIT:

Это позволяет использовать географически избыточный переход на другой ресурс, который не предлагает решение NLB. Если сетевое соединение не работает, оба сервера в стандартной конфигурации NLB будут недоступны.

Ответ 2

Некоторым серверам необходимо вытащить "текущую автономную страницу", поэтому, если ваш сервер полностью отключен, должен быть какой-то другой сервер, обслуживающий файлы, так что вы можете настроить кластер серверов (например, даже если только 2), а в то время как первый отключен, второй настроен только для возврата "в настоящее время автономной страницы". Как только 1-й сервер будет резервным, вы можете снять 2-й безопасный (поскольку сервер 1 возьмет всю нагрузку).

Ответ 3

Серьезно, DNS не правильный ответ на балансировку нагрузки сервера или отказ. Слишком много систем (включая клиентов-заглушек и рекурсивное разрешение ISP) будут кэшировать записи намного дольше, чем указанный TTL.

Если оба сервера находятся в одной и той же сети, используйте протоколы маршрутизации для достижения сбоя, поскольку оба сервера представляют один и тот же IP-адрес в сети, но где сервер с отказом только берет на себя, если он обнаруживает, что (предположительно ) live server не работает.

Если серверы Unix, это легко сделать, запустив Quagga на каждом сервере, а затем используя OSPF в качестве протокола локальной маршрутизации. Я лично использовал это для теплых резервных серверов, где резервная система фактически находилась в другом дата-центре, хотя и была подключена по прямой ссылке на основной центр обработки данных.

Ответ 4

Вероятно, вам нужен второй сервер со 100% -ным временем безотказной работы, а затем добавить какой-то балансировщик отказоустойчивости. к нему, и если главный сервер переадресовывается на него и если он не перенаправляется на себя, показывая страницу, на которой сервер отключен

Ответ 5

Некоторые поставщики DNS, такие как AWS Route 53, имеют функцию проверки работоспособности, которая может использоваться для перенаправления на статическую страницу. AWS имеет руководство по настройке.

Ответ 6

Я считаю, что если сервер не работает, вы ничего не можете сделать. Запрос отправит сетевую ошибку 404, поскольку, когда веб-адрес разрешен к IP, запрашиваемый IP-адрес не существует (поскольку сервер не работает). Если вы не можете изменить запись DNS, браузер клиента будет продолжать удалять xxx.xxx.xxx.xxx и никогда не получит ответ.

Если сервер работает, но веб-сайт не работает, у вас есть варианты.

ИЗМЕНИТЬ

В вашем правлении упоминается, что вы можете произвести постоянное изменение IP-адреса. Но для достижения того, о чем вы говорите, вам все равно потребуется настройка на два сервера. Вы можете направить DNS на балансировщик нагрузки, который сможет направлять запрос на сервер, который в настоящий момент активен. Однако для этого требуется 100% времени безотказной работы сервера, на который указывает DNS.

Независимо от того, если сервер, на который указывает DNS (который вы должны контролировать, чтобы перенаправить трафик), не работает, все запросы получат сетевую ошибку 404.

EDIT Благодаря Брайану, указав мою ошибку ошибки 404.

Ответ 7

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

Кроме этого.....

Ответ 8

Единственное, что я могу думать, это управлять вызывающей страницей. Очевидно, что это не сработает при любых обстоятельствах... но если вы знаете, что большинство ваших обращений к этому серверу будут поступать из определенного источника, то вы можете добавить тест java script к источнику и перенаправить на "сервер вниз", который создается на другом сервере.

Но если вы пытаетесь обрабатывать все обращения, из всех источников (некоторые из которых вы не можете контролировать), то я думаю, что вам не повезло. Как говорят другие люди - когда сервер не работает, браузер получает ошибку 404 при попытке подключения.

... возможно, в промежутке времени будет обнаружено 404 ошибок, возвращаемых серверами, и их замена на веб-странице "сервер вниз". Вам понадобится нечто вроде брандмауэра HTML или другого промежуточного сетевого устройства между сервером и веб-клиентом.