Как настроить виртуальные сервер Apache на CentOS 8

CentoOS

Виртуальный сервер Apache позволяют запускать несколько сайтов на одной машине.

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

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

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

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

  • Доменное имя, указывающее на IP-адрес вашего публичного сервера.
  • Apache установлен на вашей системе CentOS.
  • Вы вошли в систему как пользователь с правами root или sudo.

Создание структуры каталогов

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

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

/var/www/
├── example.com
│   └── public_html
├── example2.com
│   └── public_html
├── example3.com
│   └── public_html

Для каждого домена, который будет размещен на сервере, мы создадим отдельный каталог внутри /var/www. Внутри каталога домена мы создадим каталог public_html, который будет корневым каталогом документа домена и будет хранить файлы сайта домена.

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

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

Для тестирования создайте файл index.html в корневом каталоге документа домена:

sudo nano /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>

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

sudo chown -R apache: /var/www/example.com
Как настроить виртуальные сервер Apache на CentOS 8

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

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

Обычно, вы должны предпочесть второй подход, который более удобен в обслуживании.

По умолчанию Apache настроен на загрузку всех конфигурационных файлов, заканчивающихся на .conf, из каталога /etc/httpd/conf.d/.

Чтобы создать виртуальный хост для определенного сайта, откройте редактор по своему выбору и создайте следующий базовый файл конфигурации виртуального хоста /etc/httpd/conf.d/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 /var/log/httpd/example.com-error.log
    CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>
  • ServerName: Имя домена, для которого будет использоваться конфигурация виртуального узла. Это ваше доменное имя.
  • ServerAlias: Все остальные домены, для которых будет использоваться конфигурация виртуального узла, такие как субдомен www.
  • DocumentRoot: Каталог, из которого Apache обслуживает файлы домена.
  • Options: Эта директива управляет функциями сервера per-directory.
    • -Indexes: Предотвращает составление списков каталогов.
    • FollowSymLinks: Эта опция указывает веб-серверу на переход по символическим ссылкам.
  • AllowOverride: Указывает, какие директивы, объявленные в файле .htaccess, могут переопределять конфигурационные директивы.
  • ErrorLogCustomLog: Местоположение лог-файлов.

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

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

Проверьте синтаксис файла конфигурации:

sudo apachectl configtest

Если ошибок нет, то выход должен выглядеть так:

Output

Syntax OK

Чтобы активировать вновь созданный виртуальный хост, перезапустите службу Apache:

sudo systemctl restart httpd

Откройте http://example.com, чтобы убедиться, что все работает, как ожидалось.

Как настроить виртуальные сервер Apache на CentOS 8

Заключение

В этой статье мы рассмотрели, как произвести конфигурацию виртуального хоста Apache на CentOS 8.

Вы можете повторить шаги, описанные выше, и создать дополнительные виртуальные хосты для всех ваших доменов.

Читайте другие статьи про CentoOS

Если у Вас есть вопросы, пожалуйста, оставьте свой комментарий.

Oleg Kozlov

QA Engineer, web-testing, Adobe illustration, Adobe Photoshop, Motion Design, Music, Games, Mac OS.

Оцените автора
Техносфера
Добавить комментарий