Настройка виртуального хоста Apache на Debian 12

Apache – один из популярнейших веб-серверов с открытым исходным кодом, используемый для размещения веб-сайтов и приложений. Он поддерживает расширяемую архитектуру за счёт модулей, позволяющих добавлять веб-серверу функциональность, такую как обработка динамического контента, сжатие данных, управление доступом и балансировка нагрузки. Apache известен своей надёжностью, гибкостью конфигурации и совместимостью со многими операционными системами, включая как Windows, так и Linux. В данной статье мы рассмотрим, что представляет из себя настройка виртуального хоста с использованием Apache на виртуальном сервере, который работает под управлением Debian 12.

Для настройки тестового виртуального хоста в настоящем руководстве мы будем использовать удалённый сервер, на котором произведена первоначальная настройка безопасности. Также вы можете использовать дополнительные настройки для вашего VPS для того, чтобы оснастить систему более высоким уровнем безопасности. Все работы в нашем примере мы будем производить под именем пользователя, обладающего привилегиями администратора, но не являющимся учётной записью root.

Установка Apache

Во-первых, перед началом установки нового программного обеспечения хорошим тоном является обновление списка доступных пакетов с использованием утилиты apt. Чтобы сделать это, выполните команду:

$ sudo apt update

Затем запустите установку непосредственно Apache:

$ sudo apt install apache2

После чего проверьте статус веб-сервера, используя команду:

$ systemctl status apache2

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

Просмотр состояния службы apache2 - Настройка виртуального хоста Apache

Настройка брандмауэра

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

Для начала необходимо найти для нового правила соответствующий профиль в списке приложений брандмауэра UFW:

$ sudo ufw app list

Для доступа к сайту по протоколу HTTP брандмауэр может использовать профиль WWW:

Вывод списка профилей брандмауэра UFW

Более подробную информацию о профиле WWW можно вывести на экран при помощи команды:

sudo ufw app info WWW

Вывод команды говорит о том, профиль WWW отвечает за доступ к системе через TCP-порт 80:

Более подробная информация по профилю WWW

Для добавления разрешающего правила для профиля WWW выполните команду:

sudo ufw allow 'WWW'

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

sudo ufw status

Вывод команды должен показать наличие в списке правил профиля WWW со значением ALLOW в столбце Action:

Список правил брандмауэра UFW - Настройка виртуального хоста Apache

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

На следующем этапе мы создадим стартовую страницу тестового сайта и запустим её на веб-сервере. Таким образом, на нашем виртуальном хосте Apache будет работать сайт, для которого в данном случае мы будем использовать доменное имя vash-domain.ru. При этом, доменное имя сайта должно быть связано с IP-адресом виртуального сервера. Другими словами, предварительно вам нужно будет создать A-запись, содержащую IP-адрес вашего VPS. Сделать это можно через интерфейс вашего регистратора домена или провайдера DNS.

Для того, чтобы разместить файлы веб-сайта на виртуальном сервере, создайте каталог в директории /var/www/, название которого будет соответствовать доменному имени размещаемого сайта. В данном случае замените vash-domain.ru на имя вашего сайта:

sudo mkdir /var/www/vash-domain.ru

Затем измените владельца директории /var/www/vash-domain.ru/ на текущего пользователя, и группу этой директории на группу текущего пользователя:

sudo chown -R $USER:$USER /var/www/vash-domain.ru/

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

sudo chmod -R 755 /var/www/vash-domain.ru/

Теперь при помощи текстового редактора nano создайте в каталоге /var/www/vash-domain.ru/ файл стартовой страницы сайта – index.html:

sudo nano /var/www/vash-domain.ru/index.html

В нашем примере его содержимое будет следующим:

<html>
   <head>
      <title>Your website on Apache!</title>
   </head>
   <body>
      <h1>VASH-DOMAIN.RU</h1>
      <p>This is the start page of your website.</p>
   </body>
</html>

Далее сохраните внесённые изменения с использованием комбинации клавиш Ctrl o и закройте файл при помощи Ctrl x. Также с помощью редактора nano в директории /etc/apache2/sites-available/ создайте файл vash-domain.ru.conf, название которого измените в соответствии с доменным именем вашего веб-сайта:

sudo nano /etc/apache2/sites-available/vash-domain.ru.conf

Содержимое данного файла должно быть следующим:

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

Закройте файл с сохранением внесённых изменений и выполните активацию файла конфигурации виртуального хоста Apache:

sudo a2ensite vash-domain.ru.conf

После чего деактивируйте конфигурацию дефолтного сайта Apache:

sudo a2dissite 000-default.conf

Следующим шагом откройте для редактирования файл apache2.conf из директории /etc/apache2/:

sudo nano /etc/apache2/apache2.conf

В конец данного файла добавьте строку, в которой замените vash-domain.ru на доменное имя вашего сайта:

ServerName vash-domain.ru

Далее проверьте конфигурацию на ошибки:

sudo apache2ctl configtest

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

Проверка конфигурации Apache на наличие ошибок

После чего перезапустите конфигурацию Apache для применения внесённых изменений:

sudo systemctl reload apache2

Наконец, откройте браузер и в нём перейдите по адресу вашего веб-сайта. В нашем примере это – http://vash-domain.ru:

Подключение к веб-сайту через браузер - Настройка виртуального хоста Apache

Таким образом, мы разобрали, как происходит настройка виртуального хоста Apache на Debian 12. В процессе мы разместили стартовую страницу тестового веб-сайта, открыв доступ к нему по протоколу HTTP.

Вам также может понравиться