Мы размещаем наши веб-сайты ASP.NET внутри (в нашей DMZ). Когда мы выполняем обслуживание сети и т. Д., Мы хотели бы, чтобы на наших сайтах отображалась страница обслуживания, но наша сеть не работает, поэтому наши серверы хостинга отключены. Мы не размещаем наши записи DNS (они обрабатываются извне), поэтому у нас может быть внешняя страница обслуживания, но продвижение изменения DNS для обслуживания займет слишком много времени. Какие решения мы могли бы использовать для устранения сбоев в сети, давая нашим внешним пользователям некоторое представление о том, что мы все еще существуем? Что сработало для вас и что вы пробовали?
Внешний обратный прокси-сервер, указывающий на ваш действующий сайт, может отображать страницу по умолчанию, когда внутренний сайт недоступен.
Я использую haproxy для этой точной настройки. Он размещен на внешнем Linux VPS. Когда прокси-система может успешно получить страницу проверки работоспособности на реальном веб-сервере, это то, что предоставляется клиенту. В случае сбоя проверки работоспособности он обслуживает статическую страницу с сервера Apache, локального для прокси-сервера VPS.
Вот мой haproxy.conf:
global
maxconn 4096
daemon
defaults
mode http
clitimeout 60000
srvtimeout 30000
contimeout 4000
option httpclose # Disable Keepalive
listen FarmName 10.9.8.7:80
mode http
stats enable
stats auth admin:Fa2a6eSe
balance roundrobin
cookie haCookie insert nocache
option httpclose
option forwardfor
option httpchk HEAD /healthcheck HTTP/1.0
server active 1.2.3.4:5080 check
server static-backup 127.0.0.1:80 check inter 500 rise 1 fall 2 backup
Почему бы просто не выделить одну рабочую станцию / сервер с IIS, отображающим одну статическую страницу обслуживания? Когда вам нужно отключить веб-серверы, вы просто вызываете рабочую станцию обслуживания и убедитесь, что она отвечает на входящие веб-запросы ...
Из-за простой статической веб-страницы вам, вероятно, удастся обойтись небольшой / средней рабочей станцией, даже, возможно, ноутбуком ... Возможно, вам даже удастся избежать виртуальной машины, которая находится в автономном режиме, пока она вам не понадобится ...
Похоже, все остальное требует больше работы, чем необходимо ...
Вы можете настроить отказоустойчивое решение DNS (DNS Made Easy предоставляет эту опцию), но в зависимости от ваших настроек TTL люди вряд ли получат обновления, за исключением более длительных простоев. Конечно, вам также понадобится внешний сервер для размещения страницы обслуживания.
Лучше всего для мгновенного переключения при отказе купить где-нибудь небольшой размещенный сервер со статической веб-страницей на нем, а затем использовать инструмент (например, сердцебиение в Linux), чтобы отслеживать, когда главный сервер недоступен, и чтобы вторичный сервер принял его IP-адрес.
Что ж, я не знаю, является ли это оптимальным решением, потому что оно усложняет ваше решение: вы можете разместить несколько обратных прокси (squid, MS ISA, ...) перед своими веб-серверами (вне вашей сети) и запускать запросы через эти серверы.
Итак, когда вы планируете простой, вам просто нужно изменить некоторые правила, чтобы показать статические "извините, мы не в сети" сообщение.
Если у вас есть сайт веб-приложения ASP.NET, и вы помещаете текстовый файл с именем "app_offline.htm"в корне сайта все запросы к этому сайту будут перенаправляться в этот файл app_offline.htm.
По сути, если вам нужно отключить весь сайт ASP.NET, вы можете поместить в этот файл какое-нибудь приятное сообщение. Затем любые новые запросы к URL-адресу, любому URL-адресу на этом веб-сайте будут перенаправлены на этот файл, что позволит вам выполнять обслуживание сайта, обновления или что-то еще. Однако на самом деле это не перенаправление. ASP.NET по существу завершает работу сайта, выгружает его с сервера и прекращает обработку любых запросов к этому сайту. То есть, пока вы не удалите файл app_offline.htm, все будет продолжаться как обычно, и ваш сайт ASP.NET загрузится и снова начнет обслуживать запросы.
Надеюсь, поможет. Ура!