Сделай сам VPS хостинг для нескольких доменов (3) на одном статическом IP
И спасибо за ваш вклад.
Что я хочу сделать: я хочу разместить некоторые приложения в Интернете и электронной почте, например, для себя и двух клиентов на одном статическом IP-адресе, в первую очередь, для изучения и, возможно, рассмотреть возможность ограниченного хостинга для пары долгосрочных клиентов с небольшое количество пользователей.
То, что у меня есть, у меня работает и работает на XenServer Xeon с 32 ГБ оперативной памяти, на соединении 100 МБ, но на одном статическом IP.
То, что я пытаюсь выяснить, я хочу поэкспериментировать с настройкой нескольких виртуальных машин на xenserver, работающих под управлением IBM Lotus Domino (используется несколько портов) 80, 25, 1352, например. Поэтому мне нужно выяснить, как перенаправлять трафик на соответствующий сервер на основе доменного имени. Так например
Одиночный внешний IP WAN -> domain1.com:80 -> VM1:80 Одиночный внешний WAN IP -> domain1.com:1352 -> VM1:1352
Один внешний WAN IP -> domain2.com:80 -> VM2:80 Один внешний WAN IP -> domain2.com:1352 -> VM2:1352
Один внешний WAN IP -> domain3.com:80 -> VM3:80 (работает Cpanel для веб-хостинга)
Я понимаю, что обратный прокси может быть способом. NGINX или POUND, но, похоже, это только для веб-приложений, а не для других приложений. Я также наткнулся на Citrix Netscaler и просто растерялся. Я также вроде видел, используя iptables DD-WRT или что-то в этом роде. Просто должен быть способ сделать это. Я был бы признателен за любой вклад, который кто-либо имеет. Конечно, кто-то делает это где-то.
Я открыт для маршрутизаторов, пользовательских или других, или устройств виртуальных или других, но мне бы хотелось что-то программное обеспечение, например виртуальное устройство или что-то еще. Есть идеи?
Спасибо
Шейн
2 ответа
Поэтому мне нужно выяснить, как перенаправлять трафик на соответствующий сервер на основе доменного имени
Это невозможно, если нет спецификации прикладного уровня (например, заголовок HTTP-узла). Без этого IP ничего не знает о DNS, поэтому вы не можете пересылать его на основе.
Посмотрите на этот практически аналогичный вопрос другого дня: могу ли я использовать DNS с частными адресами NAT?
Прежде всего, рекомендуем настроить IPv6 и направить /60 к каждой виртуальной машине. Таким образом, пользователи, у которых есть IPv6, не будут испытывать никаких проблем, связанных с проксированием, потому что их трафик будет направляться непосредственно на нужный хост.
Кроме того, наличие IPv6 на виртуальных машинах дает вам адрес для прокси-трафика, который в некоторых настройках будет проще, поскольку прокси-сервер может полагаться на DNS для поиска бэкэнда.
Обратный прокси-сервер - это способ использовать HTTP-трафик. Обратный прокси-сервер также может обрабатывать трафик HTTPS, если и клиент, и прокси-сервер поддерживают SNI. Это будет работать, даже если веб-сервер не поддерживает SNI. Это не должно быть ограничено портами 80 и 443. Прокси-сервер может быть настроен для приема трафика на произвольных портах.
SMTP можно обработать, установив почтовый ретранслятор на адрес IPv4. Необходимо соблюдать осторожность, чтобы не допустить злоупотребления спамом. Я рекомендую настроить правило брандмауэра таким образом, чтобы реле не могло подключаться к внешним SMTP-серверам. Брандмауэр может разрешать SMTP-подключения извне к ретранслятору, от ретранслятора по IPv6 до виртуальных машин и от виртуальных машин к внешнему миру как IPv6 или как IPv4, который, очевидно, должен проходить через NAT.
DNS может поддерживаться в принципе, но я не знаю, реализовал ли кто-нибудь поддержку для него.
Если у вас есть другие конкретные протоколы, я был бы рад предложить вам варианты их поддержки. Я не знаю каких-либо других протоколов, которые отправляют доменное имя достаточно рано, чтобы такой внешний интерфейс отправлял сообщения на основе доменного имени, но я хотел бы узнать о других.
Я реализовал один такой интерфейс самостоятельно, но пока только HTTP и HTTPS, которые на сегодняшний день являются простейшими протоколами для поддержки.