Как иметь несколько серверов на одном IP-адресе

9307
monarch8

У меня возникают проблемы с выяснением, как иметь несколько серверов (которые делают разные вещи) на одном IP-адресе. Я хотел бы, чтобы субдомены указывали на разные приложения. Позвольте мне привести пример того, что я пытаюсь сделать. Я выбираю пару услуг только для этого примера. Я также использую пару Raspberry Pi's, которые у меня есть для этого проекта.

Скажем, у меня есть веб-сервер, который запускает мой сайт по адресу "mydomain.com". Но я также хотел бы запустить сервер Minecraft с тем же IP-адресом, но на другом сервере по адресу «mc.mydomain.com». Тогда я хотел бы запустить сервер ownCloud на другом сервере на cloud.mydomain.com

Для этого проекта я использую Raspberry Pi и мой домен зарегистрирован в Namecheap.

2
Возможный дубликат [Как разместить несколько физических веб-серверов за одним IP-адресом?] (Http://superuser.com/questions/610882/how-do-i-host-multiple-physical-web-servers-behind- а-с одним IP-адресом) music2myear 7 лет назад 3

1 ответ на вопрос

4
Patrick R.

Я предполагаю, что это небольшой офис / домашняя установка.

Невозможно назначить один и тот же IP-адрес нескольким устройствам. Поэтому вам придется либо размещать все на одном устройстве, либо использовать механизм, который поможет вам распределить пакеты по соответствующим серверам. Я думаю, что вам нужно посмотреть здесь порты, NAT и обратные прокси .

Если у вас есть только один доступный IP-адрес, вам придется либо

  • Настройте общедоступный IP-адрес для одного устройства и распределите запросы по локальной сети.
  • Разместите все сервисы на одном и том же оборудовании (например, на вашей малине)

Пример для переадресации портов:

  • Вы настраиваете cloud.mydomain.comуказывать на ваш IP. Здесь вы будете запускать веб-сервер через порт 443 (https).
  • Вы настраиваете mc.mydomain.comуказывать на ваш IP. Здесь вы будете запускать свой сервер Minecraft на порт по вашему выбору, например, 25565.
  • Вы настраиваете свой брандмауэр / маршрутизатор на пересылку всего, что он получает, на его общедоступный IP
    • ... на порт 443 к Raspberry, в котором находится экземпляр ownCloud.
    • ... на порт 25565 на малину, на которой размещен сервер Minecraft.
  • Это могут быть разные устройства в вашей локальной сети. Вы просто настраиваете переадресацию портов или правила NAT.

Пример использования прокси:

  • Вы хотите запустить несколько веб-серверов, имеющих только один IP. Вы не хотите использовать разные порты для разных сайтов.
  • Вы настраиваете свои субдомены так, чтобы они указывали на ваш единственный IP.
  • Вы устанавливаете правило перенаправления портов / NAT для пересылки любого входящего трафика через порт 443 на одну из ваших малинов.
  • Вы настраиваете веб-серверы на двух других малинах, каждый из которых должен обрабатывать трафик для одного из поддоменов.
  • На первой малине вы настраиваете обратный прокси, например, используя Nginx . Вы настраиваете различные конфигурации для своих поддоменов: одну для sub1.mydomain.com, другую для sub2.mydomain.com, с proxy_passдирективами, указывающими на другие веб-серверы в вашей локальной сети.
  • Ваш Nginx-прокси теперь обрабатывает любой входящий трафик, распределяя его на нужный веб-сервер на основе субдомена, который запрашивает пользователь.