Итак, мне было поручено найти решение на случай, если наш интерфейсный веб-сервер выйдет из строя. Он работает на виртуальной машине, Windows Server 2012. На бэкэнде мы запускаем кластер Cassandra, который уже дает нам возможности аварийного переключения.
Просто интересно, как это достигается в MS IIS самым простым способом, второй / избыточный сервер IIS будет использоваться только в случае чрезвычайной ситуации, это не то, что находится под большой рабочей нагрузкой и т.д., поэтому я думаю, что создание фермы / и т. д. было бы излишним.
Думаю, мне интересно, есть ли простое избыточное решение для такой небольшой (один сервер) реализации IIS.
Я считаю, что вам понадобится надлежащий балансировщик нагрузки перед вашими серверами - всего с двумя серверами IIS вам обычно нужно делать что-то вручную, чтобы переместить трафик, будь то кража IP-адреса на вторичном сервере, переключение запись DNS и т. д.
HAProxy - это то, что мы используем для этого сайта, и он отлично работает. Другие хорошие варианты - Varnish и nginx. Если вам удобнее работать с Windows, маршрутизация запросов приложений IIS может справиться с этой задачей.
Из-за того, как работает протокол HTTP, сложно хорошо справиться с наличием нескольких серверов приложений с некоторой логикой, на какой из них отправлять запрос, без встроенного балансировщика нагрузки, так что вы можете погрузиться прямо сейчас.
Самый простой способ - это создать второй идентичный веб-сервер и использовать функцию балансировки сетевой нагрузки Microsoft. Это требует некоторого планирования, поэтому я предлагаю прочитать полную документацию по реализации на TechNet.