Основанные на DNS стратегии для отображения хорошей страницы "В настоящее время не в сети", когда сервер не работает - PullRequest
10 голосов
/ 16 апреля 2009

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

Смена DNS вручную не возможна.

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

Ответы [ 8 ]

5 голосов
/ 16 апреля 2009

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

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

EDIT:

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

3 голосов
/ 16 апреля 2009

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

2 голосов
/ 13 мая 2009

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

1 голос
/ 28 марта 2017

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

1 голос
/ 16 апреля 2009

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

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

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

1 голос
/ 16 апреля 2009

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

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

EDIT

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

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

РЕДАКТИРОВАТЬ Спасибо Брайану за указание на мою ошибку 404.

0 голосов
/ 16 апреля 2009

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

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

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

0 голосов
/ 16 апреля 2009

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

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

...