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

Маршрутизация запросов с внешних имен хостов на внутренние IP-адреса в Ubuntu

Я хочу разместить несколько веб-сайтов с одним и тем же IP-адресом. Мой интернет-провайдер дает мне один статический IP-адрес, однако у меня есть три разных веб-сервера (все с разными сайтами), подключенные за дешевым коммутатором, которые в конечном итоге находятся за этим одним IP-адресом (один - apache, а два - окна Windows, поэтому я не могу их действительно объединить). Я могу выполнять переадресацию портов с помощью этого коммутатора на основе порта и входящего IP-адреса, но не имени хоста. Это не долгосрочное решение, поскольку единственный способ определить, к какому веб-серверу я пытаюсь получить доступ, - это через порт. И это некрасиво.

У меня также есть Linux-бокс с двумя сетевыми картами, которые я надеюсь использовать в качестве более надежного межсетевого экрана / маршрутизатора. Мой вопрос: как лучше всего превратить мой Linux-сервер (работающий с Xubuntu) в маршрутизатор, который сможет маршрутизировать на основе имен хостов, а не только IP-адресов? Я хочу оставить Xubuntu в коробке, поэтому, пожалуйста, никаких выделенных дистрибутивов Linux для маршрутизаторов.

Я посмотрел на Shorewall, но не смог найти способ заставить его маршрутизировать пакеты на основе имени хоста, а не IP-адреса. IPTables - лучший вариант? Если да, может ли кто-нибудь указать мне на учебник или что-нибудь о том, как это сделать? Я googledd, и я был шокирован, что это не более распространенный сценарий!

Маршрутизация по имени хоста невозможна. Вся концепция DNS - это нечто, что существует на более высоком уровне, чем базовый сетевой трафик.

(Для получения дополнительной информации прочтите о Модель OSI в целом и Модель TCP / IP в частности.)

С другой стороны, протокол HTTP знает об именах хостов. Следовательно, вы должны иметь возможность настроить обратный прокси на внешний адрес, перенаправляя запросы на разные внутренние адреса в зависимости от имени входящего хоста. Один из вариантов - использовать Apache и mod_proxy.