Назад | Перейти на главную страницу

Сайт с балансировкой нагрузки IIS перенаправляется на внешнюю службу, но должен вернуться на правильный сервер

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

Однако у нас есть приложение ASP.Net4, которое перенаправляет на внешнюю службу (обработчик платежей), а затем использует статически настроенную ссылку для возврата пользователя на наш внешний URL-адрес.

У меня два вопроса:

Для вопроса №1 вы можете использовать настройку привязки NLBS. Видеть https://stackoverflow.com/questions/866108/how-to-keep-user-requests-on-the-same-server-when-using-iis-nlb

Для вопроса №2 есть несколько вариантов.

  1. Используйте настройку раздельного DNS. Обычно вы настраиваете внутренний DNS отдельно от внешнего DNS. Внутренние клиенты будут использовать внутренний DNS и будут указывать на внутренний IP-адрес NLBS, а внешние клиенты будут использовать внешний DNS и будут указывать на внешний IP-адрес NLBS.
  2. Ваш поставщик обработки платежей может поддерживать программное изменение URL-адреса возврата. Мы используем продукт PayPal Payflow Pro. Это позволяет нам программно установить URL возврата. Если ваш поставщик поддерживает эту опцию, вы можете использовать ASP.NET, чтобы определить, является ли адрес запрашивающей стороны внутренним, и указать им правильный URL. Вы можете использовать любое из следующих свойств, чтобы получить IP-адрес запрашивающей стороны.

    HttpContext.Current.Request.UserHostAddress;
    или
    HttpContext.Current.Request.ServerVariables ["REMOTE_ADDR"];