Я ищу способ доступа к нескольким серверам, использующим один статический IP-адрес, используя разные поддомены. Предупреждаю, что я никогда раньше не разбирался в конфигурации сети, поэтому мои знания соответствующей терминологии ограничены.
Прямо сейчас у меня есть 3 сервера под управлением Ubuntu 11.10, сидящих за коммутатором. Я хотел бы получить к ним доступ как server1.example.com, server2.example.com и server3.example.com. Когда все 3 были настроены с одним и тем же статическим IP-адресом, только одна машина имела подключение к Интернету. Поэтому я потратил много времени на эксперименты в / etc / network / interfaces, что, вероятно, было большой ошибкой, прежде чем я попытался настроить iptables, следуя это руководство.
Я не могу понять, с чего начать и даже что гуглить. Возможно, мне нужна другая конфигурация оборудования, в настоящее время на каждой машине есть один ник, хотя при необходимости я могу найти сетевые карты. У меня кроме свитча еще и старый роутер wrt54g.
РЕДАКТИРОВАТЬ
Я бы предпочел доступ к ним по протоколу HTTP, но SSH тоже важен.
Вы не будет иметь возможность иметь все 3 машины с одним IP-адресом. Не то, как работает сеть. Проверять, выписываться этот ответ о том, как работает сетевая маршрутизация для объяснения почему.
Что вы могли сделать: Настройте обратный прокси-сервер в качестве шлюза, а затем попросите его перенаправить адрес на основе заголовка запроса узла HTTP. Я бы рекомендовал использовать Фунт поскольку он легкий и его единственная цель - быть обратным HTTP-прокси. Вы могли бы использовать apache или nginx для достижения той же цели, если вы более знакомы с ними.
После настройки обратного прокси-сервера вы можете использовать NAT для своих серверов и настроить шлюз со статическим IP-адресом.
Пример того, как это сделать в фунтах (1.2.3.4
ваш статический IP, все server#.example.com
записи A для этого статического IP-адреса):
ListenHTTP
Address 1.2.3.4
Port 80
Service
HeadRequire "Host: .*server1.example.com.*"
BackEnd
Address 192.168.3.11
Port 80
End
End
Service
HeadRequire "Host: .*server2.example.com.*"
BackEnd
Address 192.168.3.12
Port 80
End
End
Service
HeadRequire "Host: .*server3.example.com.*"
BackEnd
Address 192.168.3.13
Port 80
End
End
End
Если вы хотите сохранить обратный прокси-сервер на одном из имеющихся серверов, вам необходимо:
server#.example.com
для прослушивания альтернативного порта - возможно, 8080.host
заголовок HTTP обслуживает порт 8080.Настройка альтернативного порта на HTTP-серверах должна быть довольно простой. Единственная немного сложная часть - это настройка обратного прокси, но вы можете найти множество примеров того, как это делается с использованием pound, apache или nginx.
Как правило, вы не можете настроить это по имени, а только по порту. Я предполагаю, что теоретически возможно иметь одно устройство, которое прослушивает имя и перенаправляет систему на основе этого имени, но я не слышал об устройстве / программе, которые действительно могли бы это сделать. У вас может быть другой ответ веб-сервера в зависимости от имени (отсюда я считаю, что это теоретически возможно).
Обычно вы переносите вперед. Если вы хотите, чтобы server1 был вашим отправляющим почтовым сервером, вы бы перенаправили порт 25 (скорее всего), с server2 в качестве вашего веб-сервера, вы бы перенаправили порт 80 на server2, и если server3 должен был быть вашим веб-сервером SSL, тогда вы перенаправите на него порт 443. Таким образом, ОДИН IP обрабатывает все 3 сервера ... но один IP может обрабатывать только один набор заданий - эти задания могут быть разделены между несколькими серверами.