Apache, широко используемый веб-сервер с открытым исходным кодом, играет решающую роль в размещении веб-сайтов в Интернете. Одной из его мощных функций является возможность настройки виртуальных хостов, позволяющих размещать несколько доменов на одном сервере. В этом подробном руководстве мы покажем вам пошаговый процесс настройки виртуальных хостов с помощью Apache в Ubuntu 24.04 LTS, последней версии популярного дистрибутива Linux с долгосрочной поддержкой.

Предварительные условия

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

  • Работающий экземпляр Ubuntu 24.04 LTS.
  • SSH-доступ к вашему серверу
  • Зарегистрированное доменное имя, указывающее на IP-адрес вашего сервера.
  • Базовые знания командной строки Linux.

Выполнив эти требования, давайте перейдем к первому этапу настройки виртуального хоста.

Шаг 1. Обновите и обновите систему

Чтобы убедиться, что на вашем сервере Ubuntu установлены последние исправления безопасности и обновления программного обеспечения, выполните следующие команды:

sudo apt update
sudo apt upgrade

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

Шаг 2. Установите веб-сервер Apache

Если Apache еще не установлен на вашем сервере Ubuntu, вы можете легко установить его с помощью менеджера пакетов APT. Выполните следующую команду:

sudo apt install apache2

После завершения установки убедитесь, что Apache работает, проверив состояние его службы:

sudo systemctl status apache2

Если Apache активен и работает, вы увидите зеленый статус «активен (работает)», указывающий, что веб-сервер готов обслуживать ваши виртуальные хосты.

Шаг 3. Настройте параметры брандмауэра

Чтобы гарантировать доступность ваших виртуальных хостов из Интернета, вам необходимо настроить брандмауэр на разрешение трафика HTTP и HTTPS. Ubuntu 24.04 LTS поставляется с утилитой UFW (Uncomplicationd Firewall), которая упрощает управление брандмауэром. Выполните следующую команду, чтобы разрешить трафик Apache:

sudo ufw allow 'Apache Full'

Эта команда откроет необходимые порты для трафика HTTP (порт 80) и HTTPS (порт 443), обеспечивая доступ посетителей к вашим виртуальным хостам.

Шаг 4. Настройте структуру каталогов вашего веб-сайта

Создайте каталог для хранения файлов и контента вашего сайта. Для целей данного руководства предположим, что ваше доменное имя — «ваш_домен». Выполните следующую команду, чтобы создать каталог:

sudo mkdir -p /var/www/html/your_domain

Затем установите соответствующие разрешения и владельца для каталога, чтобы ваш веб-сервер мог получать доступ к файлам и обслуживать их:

sudo chown -R $USER:$USER /var/www/html/your_domain
sudo chmod -R 755 /var/www/html/your_domain

Эти команды предоставят вашей учетной записи пользователя право владения каталогом и установят необходимые разрешения для веб-сервера на чтение и выполнение файлов.

Шаг 5. Создайте файл конфигурации виртуального хоста

Перейдите в каталог, доступный для сайтов Apache, и создайте новый файл конфигурации для вашего виртуального хоста:

sudo nano /etc/apache2/sites-available/your_domain.conf

Внутри файла добавьте следующую конфигурацию, заменив «ваш_домен» фактическим именем домена:

<VirtualHost *:80>
    ServerAdmin webmaster@your_domain
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/html/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

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

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

Чтобы активировать вновь созданную конфигурацию виртуального хоста, используйте команду a2ensite:

sudo a2ensite your_domain.conf

Если у вас включена конфигурация Apache по умолчанию, рекомендуется отключить ее, чтобы избежать конфликтов:

sudo a2dissite 000-default.conf

Наконец, перезагрузите Apache, чтобы применить изменения:

sudo systemctl reload apache2

Ваш виртуальный хост теперь включен и готов обслуживать ваш сайт.

Шаг 7. Проверьте настройку виртуального хоста

Откройте веб-браузер и получите доступ к своему доменному имени (например, http://your_domain). Если все настроено правильно, вы должны увидеть содержимое вашего сайта.

Если у вас возникнут какие-либо проблемы, вы можете устранить неполадки, проверив журналы ошибок Apache:

less /var/log/apache2/error.log

Журналы ошибок предоставят ценную информацию, которая поможет вам выявить и устранить любые проблемы с конфигурацией или правами доступа к файлам.

Шаг 8. Защитите свой сайт с помощью SSL с помощью Let’s Encrypt

Чтобы добавить дополнительный уровень безопасности к вашему виртуальному хосту и включить HTTPS, вы можете получить сертификат SSL от Let’s Encrypt, бесплатного и автоматизированного центра сертификации. Установите клиент Certbot и плагин Apache:

sudo apt install certbot python3-certbot-apache

Затем запустите Certbot, чтобы получить и установить SSL-сертификат для вашего домена:

sudo certbot --apache -d your_domain -d www.your_domain

Certbot проведет вас через этот процесс, автоматически настроит Apache для использования сертификата SSL и настроит автоматическое продление, чтобы ваш сертификат оставался действительным.

Чтобы протестировать процесс автоматического продления, вы можете запустить следующую команду:

sudo certbot renew --dry-run

Эта команда имитирует процесс обновления без фактического получения нового сертификата, гарантируя, что конфигурация продления работает должным образом.