В настоящее время я использую физический сервер Ubuntu 14.04, на котором размещен веб-сайт. Я хочу добавить второй сайт, но не хочу пробовать запускать оба из одного физического блока. Я также хочу немного отделить свои данные, такие как основной веб-сайт от блога WordPress на поддомене.
Из того, что я смог исследовать и выяснить, похоже, что мне нужно, чтобы хост-машина запускала несколько виртуальных серверов, но я не уверен, как туда добраться. Как я могу запустить несколько серверов с одного моего физического сервера? И как я могу получить те, которые доступны в Интернете?
РЕДАКТИРОВАТЬ: я использую виртуальный сервер Ubuntu 14.04 с рабочего стола Ubuntu с использованием Oracle VirtualBox. Как я могу указать свое доменное имя на этом виртуальном сервере и получить доступ к веб-сайту?
1 ответ
Я думаю, что здесь есть несколько концепций - во-первых, обычно вы можете иметь только одно приложение на порт на IP-адрес. Есть некоторое программное обеспечение, которое может обрабатывать передачу данных и на другие серверы.
Итак, давайте начнем с самого начала
На самом простом ваша топография выглядит так
Internet+-----------> consumer router +----------> Host+--------------> VM
Вам нужен маршрутизируемый IP-адрес (не NAT) для вашего интернет-соединения, и обычно вы можете проверить это на своем маршрутизаторе. Направьте свою запись ipv4 A на это.
У вас есть два варианта настройки вашего хоста и виртуальной машины - NAT (что означает, что вам нужно перенаправлять порты с ваших хостов на вашу виртуальную машину) или «мостовой», когда ваша виртуальная машина действует как отдельная физическая машина. Я предпочитаю мост.
Если вы выбираете NAT для своих виртуальных машин, вам нужно дважды перенести порт - с вашего маршрутизатора на ваш хост и с вашего хоста на вашу виртуальную машину.
Если вы хотите сделать это как мостовую сеть, вам просто нужно перенаправить порт, который вы хотите использовать, на вашу виртуальную машину.
Обычно веб-серверы используют порт 80, но иногда этот порт блокируется.
Теперь для 2 веб-серверов это усложняется. Лучший способ (возможно, единственный способ) иметь два отдельных веб-сервера - это иметь третий сервер, работающий в качестве прокси
ngnix является популярным вариантом для этого - этот вопрос о серверной ошибке охватывает процесс, но в основном ваш третий сервер сидит там, передавая трафик нужному серверу на основе доменного имени. При этом используются виртуальные хосты, и ngnix работает довольно эффективно в качестве обратного прокси.
Вы также можете настроить два виртуальных хоста с разными корневыми каталогами (и один веб-сервер). Вам не обязательно совместно использовать базы данных (которые могут быть на их собственных виртуальных машинах). Это был бы умный способ сделать это.