Для продажи разнообразной продукции или расширения охвата организации заказывают несколько сайтов с разным дизайном, наполнением, размещать их отдельно неудобно, так как это усложняет мониторинг.
Когда у вас есть виртуальный частный сервер, можете запустить два и более интернет-страничек на одном сервере с общим IP-адресом.
Самый востребованный среди веб-разработчиков для такой задачи – это веб-сервер Apache. Мы подготовили пошаговую инструкцию, которая поможет вам оперативно выполнить настройку виртуальных хостов, если вы делаете это впервые.
Это также актуально, если вы одновременно обслуживаете несколько ресурсов, в том числе от разных заказчиков. То есть вы сможете пользоваться единственным интерфейсом без необходимости постоянно переключаться от одного к другому.

Главное достоинство Apache в том, что он даёт возможность на единственном сервере запустить разные сайты, при этом мониторинг осуществляется через общий интерфейс.
Файлы каждого сайта размещены в индивидуальном каталоге. То есть пользователь, когда открывает ссылку или вводит имя домена в поисковой строке, он попадает в определённый каталог. Именно здесь находятся нужные данные, откуда они загружаются на устройство, а пользователь видит желаемый контент.
Таким образом, можно сделать множество каталогов и соответствующим им сайтов, интернет-порталов. Их количество зависит исключительно от параметров сервера, вашего тарифа. В теории никаких ограничений не существует.
Веб-сервер Apache нужен для оперативной обработки и оперативной отправки данных на компьютер или гаджет пользователя. Хранятся эти данные на виртуальном хосте (virtual hosts).
Чтобы исключить риски взлома, потери данных, будем работать через SSH- подключение. Этот сетевой протокол обеспечивает безопасность при дистанционной работе, так как обладает надёжными элементами защиты.
Процесс настройки довольно простой и требует введения небольшого количества команд. Мы покажем, что нужно написать в терминале и что подкорректировать в конфиг-файлах.
В этой статье мы не будем рассматривать процедуру установки Apache на компьютер, будем считать, что вы это уже сделали. Подойдёт минимальный пакет LAMP, включающий в себя операционку, веб-сервер, СУБД и язык программирования.
Также домены, с которыми планируете дальше работать, необходимо привязать к облачному серверу.
Для удобства мы будем в командах сразу указывать два домена в качестве примере – test.com и example.com. Когда будете вводить команды, не забывайте менять их на свои доменные имена.
Начнём с создания нового пользователя и наделим его правами, чтобы получить возможность вводить команды sudo. От его имени необходимо подключиться, чтобы начать настройку.
Первый этап: настройка и разрешения
Нам нужно создать структуру директорий для актуальных сайтов /var/www. В каждой создаём папку public_html, где будут храниться файлы. На примере ниже представлено, как они должны выглядеть, вы деленные значения замените своими. Красным цветом выделены домены, обслуживаемые через VPS.

Сейчас вся структура директорий доступна только root-пользователю. Чтобы разрешить работу с файлами пользователям с другими правами, нужно внести изменения.
sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/test.com/public_html
Когда нажмём ENTER, переменная $USER примет значение текущего пользователя в системе, то есть пользователь станет владельцем субдиректорий public_html, в которой находятся файлы сайта.
Дополнительно нужно разрешить доступ для чтения к общей веб-директории, чтобы можно было увидеть все соответствующие файлы и страницы открывались корректно. Вводим команду.
sudo chmod -R 755 /var/www
Второй этап: Подготовка каталогов
В общей директории /var/www мы организуем каталоги для всех доменов. Последовательно выполняем команды для их создания и раздачи прав. Будьте внимательны, test.com и example.com – это ваши актуальные домены!
sudo mkdir -p /var/www/test.com/
sudo mkdir -p /var/www/support- example.com /
sudo chmod -R 755 /var/www
sudo chown -R $USER:$USER /var/www/ test.com /
sudo chown -R $USER:$USER /var/www/example.com /
Третий этап: Создание демонстрационных страниц для каждого хоста
Для каждого нашего сайта создаём новую страничку и открываем её в текстовом редакторе.
nano /var/www/example.com/public_html/index.html
Здесь создаём документ в формате HTML, который будет связан с нашим сайтом.
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com virtual host is working!</h1>
</body>
</html>
Не забываем сохранить файл перед закрытием.
Для второго действия мы можем использовать в качестве шаблона файл, который только что создали.
cp /var/www/example.com/public_html/index.html /var/www/test.com/public_html/index.html
Открываем его.
nano /var/www/test.com/public_html/index.html
И меняем домен на нужный.
Четвертый этап: Создание новых конфиг-файлов виртуального хоста
Конфигурационный файл нужен для обработки запросов к доменам. В Apache предусмотрен дефолтный файл, который удобно применять в качестве шаблона. В нашем примере мы решили задать ему имя 000-default.conf. для других хостов нужно придумать другое название, удобно, если это будет домен.
Чтобы создать конфиг-файл, следуйте инструкции.
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test.com.conf
sudo nano /etc/apache2/sites-available/test.com.conf
sudo a2dissite 000-default.conf
sudo a2ensite test.com.conf
sudo a2ensite example.com.conf
sudo service apache2 restart
Завершающий этап: проверка работы виртуальных хостов
Если привязка к серверу уже выполнена, то вы увидите созданную ранее демонстрационную страничку, если перейдёте на домен. При проверке на экране будет написано имя вашего домена.
Однако, если прошло менее суток, требуется настройка локальных хостов в файле hosts.
В этом случае все запросы будут перенаправлены на сервер VPS. Однако это работает исключительно на локальном устройстве и только для тестирования.
Введите команду.
sudo nano /etc/hosts
Откроется файл, где необходимо указать публичный IP-адрес сервера, а также доменное имя для связи с ним. Назовём его «your_server_IP».
Должно получиться приблизительно так.
127.0.0.1 localhost
127.0.1.1 guest-desktop
your_server_IP example.com
your_server_IP test.com
Если вы всё сделали правильно, то у вас будет единственный сервер, который обслуживает два доменных имени. Есть возможность добавить новые сайты, повторив все шаги из этой статьи. Никаких ограничений по числу хостов не существует, поэтому можете создать их сколько угодно. Всё зависит только от ваших целей и задач.