Я хотел бы, чтобы служба IIS работала с идентичным содержимым на двух серверах Windows 2012. Серверы доступны только из интрасети. Цель состоит в том, чтобы, если служба работает, ее имя (FQDN) может быть разрешено DNS. Итак, если оба сервера запущены и работают, оба IP-адреса обслуживаются клиентами. Если служба на одном из серверов выходит из строя, IP-адрес затронутого сервера должен быть удален из DNS после истечения TTL. Если служба возобновляет работу, она снова автоматически вводится в DNS. Есть идеи, как этого добиться? Я читал, что DDNS - это ответ на этот вопрос, но мне не удалось найти никаких пошаговых инструкций о том, как это реализовать. Спасибо F.
Решением DIY было бы использовать сценарий PowerShell, который должен запускаться как служба / или быть чем-то запланированным для запуска в планировщике задач Windows.
if (current host down / some sort of heartbeat check) update dns using powershell mapping the new host to the new address or remove existing host thats offline,etc etc. else do nothing
** Примечание. Ниже указаны только возможные риски. Например, постоянный отброшенный кеш DNS из записи с низким TTL будет соответствовать большему количеству трафика DNS, попадающему на сервер имен. Потенциально это может быть плохой идеей (см. Комментарии ниже и выше) в зависимости от того, сколько трафика на самом деле получает ваш сайт, «если вы самостоятельно размещаете свой собственный DNS-сервер, и ваш сервер имен не может справиться с дополнительной нагрузкой / трафиком», но он это рабочее решение.
Однако увеличение TTL с использованием того же решения снизит нагрузку на DNS-сервер, но увеличит время, которое потребуется существующим неавторизованным серверам имен и клиентам, чтобы сбросить свой кеш для получения новых записей DNS.
Это также НЕ настоящее аварийное переключение. У вас будут периодические простои, пока это происходит, и сеансы будут уничтожены и воссозданы после потери соединения с текущей машиной, когда она выйдет из строя. Это также может повлиять на базы данных, к которым осуществляется доступ, и потенциально может привести к поломке других вещей в зависимости от того, как написан код. Если это статический HTML-контент, все будет в порядке **