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

Несколько компьютеров под управлением IIS с единым общедоступным IP-адресом, как обрабатывать входящие сообщения?

В нашей компании в настоящее время есть три отдельных сервера, на которых размещается IIS. Каждый из этих трех серверов имеет один и тот же общедоступный IP-адрес и по существу находится в одной сети в разных подсетях.

Мы пытаемся придумать способ относительно простого предоставления доступа ко всем трем машинам. Любые идеи?

Я предлагаю использовать обратный прокси, в вашем случае Маршрутизация запросов приложений, бесплатное дополнение IIS от Microsoft.

Вы выбираете один из трех серверов и даете ему общедоступный IP-адрес. Установите и настройте ARR для обработки всех запросов и пересылки их на любую из трех конечных точек.

Это бесплатное решение с точки зрения аппаратного и программного обеспечения, но вам нужно узнать об ARR. Предлагаю установить в ВМ три тестовых сервера и поиграться с ними.

Я бы лично сделал обратный прокси, но если вы хотите избежать этого, то альтернативой другим предложениям будет запускать каждый сервер на другом порту и платить за такую ​​услугу, как No-IP, которая будет перенаправлять хост с порта 80 на другой порт.

По сути, host1.domain.com можно указать на ваш ip: 81, и пользователи не заметят разницы.

Это работает, но я все же рекомендую обратный прокси-сервер как «подходящий» способ делать что-то.

Если вы хотите получить доступ к каждому по одному и тому же внешнему IP-адресу, вам придется использовать разные порты и использовать NAT на основе портов.

Если вы можете использовать разные имена хостов / доменные имена, вы можете настроить обратный прокси для передачи запросов на разные серверы на основе имен хостов. например server1.example.com, server2.example.com и т. д.

Для этого вам нужно либо иметь 4-й ящик, либо выбрать один из существующих серверов для выполнения этой задачи.

Настройте NAT, чтобы указать на этот сервер (возможно, только для порта 80).

Выберите пакет прокси. Вы можете использовать что-то вроде Кальмар, Apache, Лак или Сервер трафика Apache (некоторые из них также могут выполнять кеширование).

Настройте прокси-сервер для пересылки запросов для server1.example.com для перехода на внутренний IP-адрес или имя хоста для server1 и то же самое для серверов 2 и 3.

Единственное, о чем следует помнить, - это то, что если прокси-сервер работает на одном из веб-серверов, порт, который прослушивает прокси-сервер, не может совпадать с портом веб-сервера.

Поэтому либо настройте прокси-сервер, скажем, на порт 8080, а затем настройте правило NAT для пересылки запросов с порта 80 на порт 8080, либо, в качестве альтернативы, настройте все свои веб-серверы для работы на этом порту. Тем не менее, я рекомендую первый вариант. Таким образом ваш внутренний доступ будет более аккуратным и в обход прокси.

Надеюсь, все это имеет смысл. Рад уточнить, если это будет необходимо.

Я собираюсь сделать здесь некоторые предположения. Вы заявляете "в настоящее время у нас есть три отдельных сервера, на которых размещается IIS. Каждый из этих трех серверов имеет одинаковый публичный IP-адрес."что, как я предполагаю, означает, что они общедоступны только для очень конкретных сервисов. Они, вероятно, разрешают внешний порт 80, 433 и, возможно, несколько других. Если это так, я бы не стал настраивать метод для удаленного подключения через этот внешний Адрес. Поскольку адрес является общедоступным для веб-служб, его можно просканировать, чтобы найти вашу «дверь для доступа», независимо от того, какую форму она может принимать.

Опция 1: Самым простым решением было бы настроить 4 публичных адреса:

1 публичный адрес с балансировкой нагрузки для предоставления веб-сервисов. 3 Общедоступных адреса, которые перенаправляются на порты на каждом сервере для управления ими.

Настройка перенаправления NAT для адресов управления представляет собой простую настройку межсетевого экрана. Это выглядело бы так.

  1. Общий адрес 1> Частный адрес сервера 1
  2. Общий адрес 2> Частный адрес сервера 2
  3. Общий адрес 3> Частный адрес сервера 3

При желании у вас может быть один общедоступный адрес для предоставления услуг и один общедоступный адрес для управления, но иметь свой входящий порт для каждого сервера. Допустим, у вас есть порты 1000, 1001 и 1002. Если бы вы управляли службой SSH, порт 22, то это выглядело бы следующим образом.

  1. Общий адрес, порт 1000> частный адрес сервера 1, порт 22
  2. Общий адрес, порт 1001> частный адрес сервера 2, порт 22
  3. Общий адрес, порт 1002> частный адрес сервера 3, порт 22

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

Таким образом, у вас будет один публичный адрес для ваших веб-сервисов и один публичный адрес для управления серверами. Первый адрес - это балансировка нагрузки для ваших серверов IIS, второй адрес идет на ваш управляющий сервер, возможно, на сервер удаленного рабочего стола, SSH-сервер или сервер, который обеспечивает соединение VNC с серверами ISS. Существует множество сторонних вариантов, как бесплатных, так и платных, которые могут выполнить этот второй вариант.

Вариант 3: Настройка VPN (виртуальная частная сеть)

Если ваш брандмауэр может действовать как концентратор VPN, вы можете настроить службы VPN. Это позволит вам подключаться удаленно с помощью VPN. После подключения вы можете подключиться к каждой службе IIS, используя их внутренний IP-адрес.

Вы можете запустить их все на разных портах или поставить перед ними обратный прокси.

Использовать разные порты проще всего, но тогда ваши пользователи должны знать порт, а также имя, чтобы получить доступ к нужному серверу.

Правила обратного прокси-сервера определяют, какой внутренний сервер IIS следует выбрать, в зависимости от запрошенного имени хоста.