В настоящее время существует один внешний IP-адрес, указывающий на Windows Web Server. Теперь хочу добавить веб-сервер Linux. Хотите знать, если следующие настройки в порядке:

119.xxx.xxx.xxx указывает на Windows Web Server

119.xxx.xxx.xxx/Linux_Server указывает на новый дополнительный сервер Linux.

Если приведенная выше схема в порядке, то как это сделать. (С точки зрения того, где маршрутизатор должен быть размещен и настроен и т.д.).

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

Надеюсь, кто-нибудь может помочь ...

2 ответа2

2

Связь должна быть направлена на два разных порта, если у вас два разных сервера с одинаковым внешним IP. например, 119.1.1.1:9000 для сервера A и 119.1.1.1:9001 для сервера B

Если вы не хотите, чтобы конечный пользователь поместил 119.1.1.1:9000, и вы хотите, чтобы оба сервера были подключены к порту 80 - это должно быть сделано так: используйте внутренний прокси-сервер, который прослушивает порт 80 и перенаправляет входящие запросы на основе поддоменов или домен с правильным "внутренним" ip каждого из ваших двух серверов (или "x" количество серверов, если на то пошло).

ПРИМЕР:

ПРЕДПОЛАГАТЬ:

  • 119.1.1.1:80 - СЛУШАТЕЛЬ ПОРТ 80
  • 119.1.1.1:9000 для сервера А и
  • 119.1.1.1:9001 для сервера B

Так что настройте это так:

  • foo.com через порт 80 (119.1.1.1:80)
  • serverA.foo.com переходит к порту 80 (119.1.1.1:80) и внутренне направляет запрос (не перенаправляет, а внутренне перенаправляет прозрачно) на 119.1.1.1:9000 на основании субдомена, говорящего "serverA"
  • serverB.foo.com также переходит на порт 80 (119.1.1.1:80), прозрачно перенаправляется на 119.1.1.1:9001 в зависимости от субдомена, говорящего "serverB"
  • все другие запросы обрабатываются маршрутизатором, как бы вы ни хотели - они могут быть отклонены и возвращать, например, 404 (например, foo.com или serverXYZ.foo.com возвращают ошибку 404, поскольку она не соответствует ни одному определению в таблице прокси).

ПРИМЕЧАНИЕ. Что касается вышесказанного, вы на самом деле работаете с 119.1.1.1 - тогда все определения таблиц прокси должны указывать на 127.0.0.1, например:

  • serverA.foo.com -> 127.0.0.1:9000
  • serverB.foo.com -> 127.0.0.1:9001
  • по умолчанию -> 127.0.0.1:9002

При прозрачной маршрутизации конечный пользователь не знает, что связь маршрутизируется - она происходит на стороне сервера без ведома конечного пользователя - только ВЫ знаете . Вы можете сделать это с помощью node-http-proxy для Node.js - вы можете сделать это с nginx - вы можете сделать это с большинством серверов - посмотрите, как внутренне прокси-запросы в документах для вашего сервера на ваш выбор.

Если вам нужно использовать один и тот же порт, вам нужно будет использовать два разных IP-адреса, например 119.1.1.1:80 для сервера A и 119.121.1.2:80 для сервера B

1

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

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

рассмотрите возможность использования NAT и переадресации порта TCP (или более одного, если у вас есть дополнительные службы) для служб на каждом внутреннем сервере. вы можете использовать каждый порт только один раз, но если в IIS есть tcp/80, вы можете назначить порт apache или nginx 81. Это означает, что клиенты должны будут ввести http://example.com:81/ для доступа к службе. Вы можете использовать DNS, чтобы скрыть это, однако. Вы могли бы даже использовать этот URL для перенаправления 301 на ваш сервер Linux.

Как только вы получите свой маршрутизатор, посмотрите на http://portforward.com/ для вашей модели маршрутизатора, чтобы узнать, как использовать NAT для перенаправления трафика на порт.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .