Назад | Перейти на главную страницу

Настройка хостинга VPS

Я пытаюсь настроить свой собственный vps-хостинг. Это не будет платная услуга, это просто эксперимент для меня и моих друзей-ботаников.

Я бы хотел сделать следующее: запускать несколько виртуальных серверов на 1 внешнем IP-адресе. Эти серверы могут запускать что угодно, от серверов Minecraft до простых серверов http. Они также должны быть доступны через SSH.

Я не понимаю, как я могу обращаться к этим серверам, используя доменные имена. Я провел небольшое исследование и обнаружил, что могу использовать Vhosts с Apache. Однако это относится только к http-серверам. Также было предложено использовать обратный прокси (squid), но это также относится только к HTTP-запросам.

Я мог бы просто использовать разные порты для разных серверов, но это не идеально и не то, что я хочу.

Кто-нибудь может предложить настройку? Может быть, какие-нибудь уроки или что-нибудь еще.

Вы не можете получить доступ к виртуальным машинам через доменные имена, если у вас есть только 1 IP-адрес (кроме предложенного вами метода http-прокси). Просто потратьте немного дополнительных денег и купите класс IP-адресов / 29.

Что касается виртуализации, у вас есть несколько вариантов. Основная битва сейчас идет между Xen и KVM, у каждого из которых есть свирепые сторонники. В настоящее время я использую Xen и очень доволен им.

да, я чувствую некоторую путаницу в вашем посте. Виртуальная машина (ВМ) - это просто так; логичный и полностью отдельный, скажем так, экземпляр эмулируемого оборудования, на котором вы устанавливаете операционную систему, такую ​​как Linux или Windows.

Все концепции HTTP и DNS не связаны с виртуальными машинами! Такой домен, как stackexchange.com, может размещаться на нескольких физических или виртуальных машинах, чтобы балансировать нагрузку или просто хранить отдельный контент.

Вы можете разместить несколько доменов (stackoverflow.com, stackexchange.com) на одном IP-адресе. Это часть спецификации HTTP 1.1. В Apache это называется виртуальными хостами на основе имен (для краткости vhosts). Такая же возможность существует в Microsoft IIS.

Поскольку программное обеспечение веб-сервера (Apache и IIS) работает в контексте операционной системы (Linux и Windows соответственно), вам потребуется виртуальная машина или физическое оборудование для запуска ОС и программного обеспечения веб-сервера (apache, IIS).

Apache / IIS (и другие) привязываются к стеку IP в операционной системе, которая, опять же, работает либо на виртуальной машине, либо на физическом оборудовании. Стек IP и все связанное с ним управление, связанное с управлением IP-адресами, разрешение IP (называемое преобразователем) зависит от ОС. Например, в Linux вы имеете дело с /etc/resolv.conf во многих дистрибутивах или можете настроить BIND для ответа на запросы DNS для преобразования таких вещей, как stackoverflow.com, в IP-адрес.

Таким образом, у вас может быть одна виртуальная машина Linux с Apache и хостингом нескольких веб-сайтов на одном IP-адресе!

Хитрость заключается в том, чтобы объединить DNS и программное обеспечение вашего веб-сервера вместе или согласованно, чтобы разные протоколы (http, dns) были правильными. ПРИМЕЧАНИЕ. Вы также можете размещать DNS за пределами своих виртуальных машин.

надеюсь это поможет

Чтобы ответить на другую часть вопроса о том, как получить один общедоступный IP-адрес для нескольких виртуальных машин или физических компьютеров, на которых работают веб-сайты, вам понадобится обратный прокси. Apache делает это; не уверен в IIS, и есть HAProxy, который тоже может это сделать.

Вы можете, например, настроить HAProxy для прослушивания одного ПУБЛИЧНОГО IP-адреса, а затем направить трафик на правильный внутренний сервер на частном IP-адресе. Имейте в виду, что здесь существует двусторонняя связь - поэтому ответ от вашего веб-сервера должен отображаться так, как если бы он пришел с одного IP-адреса.

Чтобы добиться полного разделения сервисов, вам необходимо использовать виртуальные машины. Их можно настроить для совместного использования одного и того же сетевого интерфейса и IP-адреса, пока они существуют на одном физическом сервере. Возможно, вам придется маршрутизировать трафик с помощью брандмауэра уровня 7 на хосте, прежде чем передавать соединения в виртуальные машины, по крайней мере, для HTTP-трафика. SSH, вероятно, просто нужно будет использовать разные порты, если вы не измените демон OpenSSH. В этой конфигурации вы можете создать несколько полностью независимых «виртуальных операционных систем» на одном хосте. Затем вы можете назначить виртуальную машину каждому из ваших друзей, где каждая виртуальная машина потенциально может запускать несколько виртуальных HTTP-сайтов внутри себя. Виртуальная машина действует так же, как обычная ОС, не подозревая, что она фактически виртуализирована, разделяя ресурсы процессора и памяти с параллельными операционными системами.

Я не уверен, что ты фактически нужен такой тип разделения, но он выполнит то, что вы ищете. Однако не ожидайте, что он будет очень хорошо масштабироваться с нагрузкой, не тратя денег на ваше оборудование.

Я не знаю наверняка, сработает ли это, просто я думаю об этом:
Вы можете попробовать назначить IPv6-адрес каждой машине, которая все туннелирует через IPv4-адрес.