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 и виртуальных хостов. Это позволяет эффективно использовать ресурсы сервера и управлять несколькими доменами с одного места.