Как заставить субдомены указывать на разные локальные IP-адреса?

У меня есть доменное имя mydomain.com, которое указывает на статический IP-адрес. Я настроил свой модем так, чтобы все запросы к порту 80 этого статического IP-адреса приходили на мой локальный компьютер 192.168.1.100 (веб-сервер).

Теперь я хочу, чтобы 2 субдомена указывали на 2 других локальных IP:
sub1.mydomain.com ---> 192.168.1.101 (хост другого веб-сервера)
sub2 .mydomain.com ---> 192.168.1.102 (хост-сервер redmine)

Возможно ли это? Если да, пожалуйста, покажите мне, как?

Я использую Ubuntu Server 12.

4
задан 5 November 2013 в 23:54

4 ответа

Самый простой способ - изменить файл hosts, который находится в /etc/.

Это будет выглядеть так:

# This is an example of the hosts file
127.0.0.1  localhost loopback
192.168.1.100 webserver
192.168.1.101 sub1
192.168.1.102 sub2
0
ответ дан 5 November 2013 в 23:54

Ответ благодаря JoshP в Ошибка сервера :

Я только недавно сделал это. См. мой вопрос . Это было довольно долго, но в конце концов я все же настроил.

  • Настройка DNS. Запись A будет указывать на ваш публичный IP. Итак, yourdomain.com указывает на your.pub.ip.add. Добавьте записи CNAME для поддоменов. Итак, sub1.yourdomain.com указывает на @, а sub2.yourdomain.com указывает на @ и т. Д. Несмотря на то, что все субдомены указывают на один и тот же адрес, браузер будет сообщать веб-серверу, какой субдомен вы пытаетесь достичь.

  • Настройте Apache. Вы захотите настроить виртуальные хосты для каждого субдомена (и, возможно, для основного домена). Вы можете определять виртуальные хосты в разных местах ... мой определен в /etc/apache2/sites-available и включает в себя директиву <Location>, в которой вы настраиваете свой обратный прокси.

Этот ответ был дан OP в ServerFault.

0
ответ дан 5 November 2013 в 23:54

Клиенты вашей локальной сети также должны будут обновить свой файл hosts, если только вы не установите и не настроите DNS-сервер, а ваши клиенты не будут его использовать. dnsmasq прост и имеет много полезных комментариев в файле конфигурации. BIND - другой, но его конфигурационный файл использует причудливый бессмысленный синтаксис, который никто действительно не понимает. Unbound - еще один с сильным акцентом на безопасность.

0
ответ дан 5 November 2013 в 23:54

Если я понимаю правильно, у Вас только есть 1 общедоступный IP-адрес (на по сути только 1 tcp порте 80 на том), но Вы хотите выполнить 3 веб-сервера, из которых только 1 - direcly доступная общественность (через порт вперед).

У Вас есть 2 вещи настроить:

  1. Уровень DNS: удостоверьтесь www. sub1. sub2. вся точка к тому же адресу как mydomain.com. Это может быть сделано в панели конфигурации Вашего регистратора DNS (ищите опцию "Wildcard" при наличии). Это должно позволить Вам проверять с помощью ping-запросов sub1.mydomain.com и все другие субдомены.
  2. Когда все запросы прибывают в сервер 192.168.1.100, необходимо будет настроить этот веб-сервер для передачи запросов для субдоменов к другим (внутренним) серверам.

К другим серверам можно получить доступ, если Вы используете основной веб-сервер (.100) в качестве обратного прокси для субдоменов sub1. и sub2.

Я думаю, что это могло бы быть хорошим образцом: образец httpd.conf с объяснением

Примечание: в строках ProxyPass и ProxyReverse необходимо будет использовать внутреннее имя хоста или IP-адрес, не sub1.mydomain.com, потому что это сделает, чтобы Вы закончили с циклом!

Если это не работает с тем веб-сайтом, вот критерии поиска Google: vhost инвертируют прокси

Удачи!

0
ответ дан 5 November 2013 в 23:54

Другие вопросы по тегам:

Похожие вопросы: