Как настроить виртуальные хосты Apache в Debian 10

Виртуальные хосты Apache позволяют запускать более одного веб-сайта на одной машине. С помощью виртуальных хостов вы можете указать корень документа сайта (каталог, содержащий файлы веб-сайта), создать отдельную политику безопасности для каждого сайта, использовать разные сертификаты SSL и многое другое.

В этой статье описывается, как настроить виртуальные хосты Apache на сервере Debian 10.

Подготовка

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

Создайте структуру каталогов

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

Мы будем использовать следующую структуру каталогов:

/var/www/
├── domain1.com
│   └── public_html
├── domain2.com
│   └── public_html
├── domain3.com
│   └── public_html

Каждый домен, размещенный на сервере, будет иметь корневой каталог документа /var/www/<domain_name>/public_html .

Начнем с создания корневого каталога документов для первого домена example.com :

sudo mkdir -p /var/www/example.com/public_html

Мы также создадим файл index.html внутри корневого каталога документов домена, который будет отображаться при посещении домена в браузере.

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

/var/www/example.com/public_html/index.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to example.com</title>
  </head>
  <body>
    <h1>Success! example.com home page!</h1>
  </body>
</html>

Поскольку приведенные выше команды выполняются от имени пользователя sudo, вновь созданные файлы и каталоги принадлежат пользователю root. Чтобы избежать проблем с разрешениями, измените владельца корневого каталога документов домена и всех файлов в каталоге пользователю apache ( www-data ):

sudo chown -R www-data: /var/www/example.com

Создать виртуальные хосты

В системах Debian файлы конфигурации виртуальных хостов Apache расположены в каталоге /etc/apache2/sites-available и могут быть включены путем создания символических ссылок на каталог /etc/apache2/sites-enabled , который Apache читает во время запуска.

Откройте нужный текстовый редактор и создайте следующий базовый файл конфигурации виртуального хоста:

/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/example.com/public_html

    <Directory /var/www/example.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>
  • ServerName : домен, который должен соответствовать данной конфигурации виртуального хоста. Это должно быть ваше доменное имя.
  • ServerAlias : все другие домены или субдомены, которые также должны соответствовать этому виртуальному хосту, обычно субдомен www .
  • DocumentRoot : каталог, из которого Apache будет обслуживать файлы домена.
  • Options : эта директива определяет, какие функции сервера доступны в определенном каталоге.
    • -Indexes : предотвращает -Indexes каталогов.
    • FollowSymLinks : если этот параметр включен, Apache будет следовать символическим ссылкам.
  • AllowOverride : указывает, какие директивы, объявленные в файле .htaccess могут переопределять директивы конфигурации.
  • ErrorLog , CustomLog : указывает расположение файлов журнала.

Отредактируйте файл в соответствии с вашими потребностями и сохраните его.

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

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

sudo a2ensite example.com

Другой вариант — вручную создать символическую ссылку, как показано ниже:

sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/

После включения конфигурации проверьте правильность синтаксиса:

sudo apachectl configtest

Если ошибок нет, вы увидите следующий вывод:

Syntax OK

Перезапустите службу apache2 чтобы изменения вступили в силу:

sudo systemctl restart apache2

Чтобы убедиться, что все работает должным образом, откройте http://example.com в своем любимом браузере, и вы увидите что-то вроде этого:

Выводы

В этом руководстве мы показали вам, как создать конфигурацию виртуального хоста Apache в Debian 10, Buster. Вы можете повторить описанные выше шаги и создать дополнительные виртуальные хосты для всех ваших доменов.

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

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Оставьте комментарий