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

Принцип работы заключается в том, что при обращении пользователя к серверу по определенному доменному имени, Apache перенаправляет запрос на соответствующий виртуальный хостинг. Это позволяет обслуживать несколько независимых сайтов через один IP-адрес.

Практический пример: представьте, что у вас есть следующие доменные имена:

Все эти сайты можно разместить на одном сервере с единственным “белым” IP-адресом, настроив для каждого из них собственный виртуальный хост.

Как это работает? Когда пользователь обращается к нашему серверу по определенному доменному имени, веб-сервер передает запрос на виртуальный хостинг, который мы настроили. Визуально эту схему можно представить следующим образом:

Шаг 1. Установка Apache2

Если Apache2 ещё не установлен, выполните:

sudo apt-get install apache2

Шаг 2. Создание директорий для сайтов

Создайте отдельные директории для каждого сайта в /var/www/:

sudo mkdir /var/www/school.ru

Установите права доступа:

sudo chown www-data:www-data /var/www/school.ru

Шаг 3. Настройка виртуальных хостов

Создайте файл конфигурации для каждого сайта в /etc/apache2/sites-available/:

sudo mcedit /etc/apache2/sites-available/school.ru.conf

Пример конфигурации:

<VirtualHost *:80>
    ServerName school.ru
    ServerAlias www.school.ru
    DocumentRoot /var/www/school.ru
    ErrorLog ${APACHE_LOG_DIR}/school.ru-error.log
    CustomLog ${APACHE_LOG_DIR}/school.ru-access.log combined
</VirtualHost>

Шаг 4. Включение виртуальных хостов

Активируйте созданный виртуальный хост:

sudo a2ensite school.ru.conf

Перезапустите Apache2:

sudo systemctl restart apache2

Шаг 5. Проверка работы

Создайте тестовый файл index.html в директории сайта:

<html>
    <body>
        <h1>Сайт school.ru работает!</h1>
    </body>
</html>

Откройте браузер и перейдите по адресу http://school.ru.

Заключение

Теперь вы можете размещать несколько сайтов на одном сервере с помощью Apache2 и виртуальных хостов. Это позволяет эффективно использовать ресурсы сервера и управлять несколькими доменами с одного места.