У меня есть доменное имя 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.
Самый простой способ - изменить файл 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
Ответ благодаря JoshP в Ошибка сервера :
Я только недавно сделал это. См. мой вопрос . Это было довольно долго, но в конце концов я все же настроил.
blockquote>
Настройка DNS. Запись A будет указывать на ваш публичный IP. Итак, yourdomain.com указывает на your.pub.ip.add. Добавьте записи CNAME для поддоменов. Итак, sub1.yourdomain.com указывает на
@
, а sub2.yourdomain.com указывает на@
и т. Д. Несмотря на то, что все субдомены указывают на один и тот же адрес, браузер будет сообщать веб-серверу, какой субдомен вы пытаетесь достичь.Настройте Apache. Вы захотите настроить виртуальные хосты для каждого субдомена (и, возможно, для основного домена). Вы можете определять виртуальные хосты в разных местах ... мой определен в
/etc/apache2/sites-available
и включает в себя директиву<Location>
, в которой вы настраиваете свой обратный прокси.
Клиенты вашей локальной сети также должны будут обновить свой файл hosts, если только вы не установите и не настроите DNS-сервер, а ваши клиенты не будут его использовать. dnsmasq прост и имеет много полезных комментариев в файле конфигурации. BIND - другой, но его конфигурационный файл использует причудливый бессмысленный синтаксис, который никто действительно не понимает. Unbound - еще один с сильным акцентом на безопасность.
Если я понимаю правильно, у Вас только есть 1 общедоступный IP-адрес (на по сути только 1 tcp порте 80 на том), но Вы хотите выполнить 3 веб-сервера, из которых только 1 - direcly доступная общественность (через порт вперед).
У Вас есть 2 вещи настроить:
К другим серверам можно получить доступ, если Вы используете основной веб-сервер (.100) в качестве обратного прокси для субдоменов sub1. и sub2.
Я думаю, что это могло бы быть хорошим образцом: образец httpd.conf с объяснением
Примечание: в строках ProxyPass и ProxyReverse необходимо будет использовать внутреннее имя хоста или IP-адрес, не sub1.mydomain.com, потому что это сделает, чтобы Вы закончили с циклом!
Если это не работает с тем веб-сайтом, вот критерии поиска Google: vhost инвертируют прокси
Удачи!