У меня был Linux-сервер. Сейчас несколько пользователей хотят создать на нем веб-сервисы, но им требуются разные среды. Для удобства я даю каждому пользователю root-права на виртуальной машине KVM.
Но очевидно, что у Linux-сервера только один IP. Как я могу доставить внешние запросы на соответствующую виртуальную машину?
(Я думаю, это несколько сложно. Если да, мне нужны хотя бы некоторые документы / веб-сайты, которые я могу начать читать.)
Если я правильно понял ваш вопрос, вам понадобятся 2 услуги.
Прокси-сервис ssh достигается за счет использования ключей SSH и директивы command = "", у вас есть ключ auth на вашем прокси-сервере с / bin / false в качестве оболочки, затем определите command = "ssh user @ real-server" ssh-rsa ... строка.
использование веб-прокси для передачи соединений на основе имени хоста / uri соответствующему бэкэнду.
Это далеко не красиво, но возможно, будет намного проще просто выделить некоторые общедоступные IP-адреса самой машине, если они вообще доступны.
вам нужен так называемый обратный прокси. Это прокси-сервер, который работает, получая весь трафик на один IP-адрес, который у вас есть, анализирует заголовок хоста и выполняет запрос для внешних клиентов.
Ссылка на HowTo: http://www.apachetutor.org/admin/reverseproxies
Таким образом, вам нужно только добавить обычные VirtualHosts в конфигурацию обратного прокси и настроить часть обратного прокси внутри Vhosts. Также дает вам возможность легко использовать подстановочные знаки.
Но будьте осторожны, это работает только для HTTP. Есть расширение для HTTPS, которое можно использовать для достижения того же, но поддержка браузера AFAIK плохая.
Вам также нужна простая сеть только для хоста. Таким образом, вы можете перенаправить порты SSH на внутренние IP-адреса с помощью iptables и выполнить HTTP с помощью обратного прокси.
Кроме того, я считаю, что то, чего вы хотите достичь, глупо. Не раздайте root своим пользователям и используйте какую-либо панель управления массовым хостингом. Это способ наименьшей работы :)
Надеюсь, поможет :)
На самом деле это не так сложно ... вы просите своего провайдера установить соединение бизнес-класса с несколькими IP-адресами.
В противном случае вам придется дать им разные имена хостов, и вы доставляете гостей на их сайт с помощью директив virtualhost, а не виртуальных машин.
Или вы можете попробовать создать виртуальную машину, которая каким-то образом перенаправляет на внутренние сайты, анализируя входящий запрос и отправляясь оттуда.
Если я правильно понимаю, вы создали виртуальную машину KVM на физическом сервере и дали root-доступ к виртуальной машине пользователям?
Находится ли физический сервер в помещении вашей компании или за его пределами в центре обработки данных?
Если это полностью под вашим контролем, вы можете использовать мостовую сеть KVM, чтобы предоставить каждому KVM выделенный IP-адрес. Настройка мостов зависит от версии Linux.
Вот как настроить мосты для KVM в CentOS / Redhat.
Мостовое соединение также возможно, если ваш сервер находится в Колорадо / вне сайта.
Если вы не можете использовать мост, другой вариант - использовать NAT, что IMO громоздко.