Маршрут ARR к определенному серверу в ферме

Маршрут ARR к определенному серверу в ферме

У меня есть 3 местоположения, каждое со своим сервером (s1.mysite.com, s2.mysite.com, s3.mysite.com). Они все являются частью сайта: app.mysite.com.

Я хотел бы использовать ARR для пересылки запросов на определенные серверы в ферме в зависимости от того, откуда поступил запрос (запрос с сайта 1 отправляется на s1.mysite.com, который является локальным по отношению к их местоположению), одновременно обеспечивая возможность переключения на один из других серверов в случае возникновения проблем с этим конкретным сервером.

Я знаю, как распределить запрос на основе строки запроса на определенный сервер по DNS-имени (s1.mysite.com), но это имя не будет работать, если этот сервер выйдет из строя.

Могу ли я добиться такой избыточности и распределения работы таким образом, используя Microsoft ARR?

решение1

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

  • Попытка достичь высокой доступности, отдавая предпочтение серверам приложений, которые обеспечат наилучшее время отклика (сценарий 1)
  • Представление персонализированного контента в зависимости от того, на каком сайте находится пользователь (сценарий 2)

Сценарий 1

Если вы пытаетесь достичь HA и получить наилучшее время отклика, то вы столкнетесь с проблемой, поскольку все запросы должны сначала пройти через сервер ARR. Обойти это можно, разместив ARR на каждом сайте, используя DNS для направления пользователей на сервер ARR их сайта, а затем используя алгоритм балансировки нагрузки «Наименьшее время отклика». Это теоретически направит пользователей с сайта 1 на s1.mysite.com, а также обеспечит переключение на s2 и s3 в случае сбоя s1.

Однако, если проблема с сетью приводит к недоступности s1.mysite.com, то она также может привести к недоступности сервера ARR на сайте 1. Однако это защитит вас от сбоев приложений на s1.mysite.com.

Сценарий 2

Похоже, что нет ничего готового для выполнения желаемого типа маршрутизации. Однако есть API, которые позволяют создать Custom Rewrite Provider для URL Rewrite. Информацию о том, как это сделать, можно найти здесьЗдесь. Вы можете использовать информацию из переменных сервера, заголовков запросов или даже параметров строки запроса в сочетании с поставщиком пользовательской перезаписи для выполнения желаемого типа маршрутизации.

Связанный контент