Виртуальные хосты Apache, как их настроить в Ubuntu 20.04

о виртуальном хосте Apache

В следующей статье мы рассмотрим виртуальные хосты Apache. Прежде всего, необходимо пояснить, что виртуальный хост - это директива конфигурации Apache, которая позволит нам запускать более одного веб-сайта на одном сервере. Тот факт, что они работают на одном физическом сервере, не очевиден для конечного пользователя.

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

В следующих строках мы увидим как настроить виртуальные хосты Apache в Ubuntu 20.04, и для этого мы должны выполнить следующие требования, прежде чем продолжить: одно или несколько доменных имен, указывающих на IP-адрес вашего общедоступного сервера и Apache, установленного в Ubuntu.

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

Корневой каталог документа - это каталог, в котором файлы веб-сайта для доменного имени хранятся и обслуживаются в ответ на запросы. Мы можем установить рут в интересующем нас месте. Каждый домен размещен на сервер apache будет иметь корень документа, установленный на / var / www / имя-домена / public_html.

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

создать структуру каталогов

sudo mkdir -p /var/www/dominio1.com/public_html
sudo mkdir -p /var/www/dominio2.com/public_html

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

sudo vim /var/www/dominio1.com/public_html/index.html

Внутри файла мы собираемся вставить следующий контент:

домашний код domain1

 
<!DOCTYPE html>
<html lang="es">
  <head>
    <meta charset="utf-8">dominio1</title>
  </head>
  <body>    
<h1>Home del dominio1</h1>
  </body>
</html>

Для второго домена мы отредактируем его файл index.html и добавим его следующее содержание:

sudo vim /var/www/dominio2.com/public_html/index.html

домашний код domain2

<!DOCTYPE html>
<html lang="es">
  <head>
    <meta charset="utf-8">dominio2</title>
  </head>
  <body>
<h1>Home del dominio2</h1>
  </body>
</html>

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

sudo chown -R www-data: /var/www/dominio1.com
sudo chown -R www-data: /var/www/dominio2.com

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

В системах Ubuntu Файлы конфигурации виртуальных хостов для Apache находятся в каталоге / и т.д. / apache2 / сайты-доступные. Их можно включить, создав символические ссылки на каталог. / и т.д. / apache2 / сайты с поддержкой, который Apache читает во время запуска.

Мы можем называть файлы конфигурации как угодно. Но Лучше всего использовать доменное имя в качестве имени файла конфигурации виртуального хоста.. Теперь мы собираемся открыть наш любимый текстовый редактор и создать основные файлы конфигурации. В этом примере я просто покажу код для домена 1:

sudo vim /etc/apache2/sites-available/dominio1.com.conf

Внутри мы добавим что-то вроде следующего, но для домена 2 нам нужно будет изменить домен 1 на домен 2 в следующем коде:

виртуальный хост для domain1

<VirtualHost *:80>
    ServerName dominio1.com
    ServerAlias www.dominio1.com
    ServerAdmin webmaster@dominio1.com
    DocumentRoot /var/www/dominio1.com/public_html

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

    ErrorLog ${APACHE_LOG_DIR}/dominio1.com-error.log
    CustomLog ${APACHE_LOG_DIR}/dominio1.com-access.log combined
</VirtualHost>
  • Название сервера → Вы собираетесь указать домен, который должен соответствовать этой конфигурации виртуального хоста. Восток должно быть доменное имя.
  • ServerAlias → Все другие домены или субдомены, которые должны соответствовать этому виртуальному хосту, например www.
  • DocumentRoot → Вот укажет каталог, из которого Apache будет обслуживать файлы.
  • Опции → Эта директива контролирует, какие функции сервера доступны в определенном каталоге.
    • Индексы → Избегайте списков каталогов.
    • СледоватьSymLinks → Когда эта опция включена, Apache будет переходить по символическим ссылкам.
  • Аллововеррайд → Вы собираетесь указать, что директивы, объявленные в файле .htaccess, могут переопределять директивы конфигурации.
  • Журнал ошибок, Пользовательский журнал → Здесь вы указываете расположение файлов журнала.

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

a2ensite domain1

sudo a2ensite dominio1.com

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

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

Как только это будет сделано, мы сможем проверить конфигурацию на наличие синтаксических ошибок с:

sudo apachectl configtest

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

синтаксис в порядке

Мы продолжаем перезапуск службы Apache чтобы изменения вступили в силу:

sudo systemctl restart apache2

Наконец, чтобы убедиться, что все работает должным образом, мы откроем URL http://dominio1.com в браузере, и мы должны увидеть содержимое страницы index.html домена 1:

домино1

С помощью виртуальных хостов мы можем разместить несколько доменов на одном сервере Ubuntu.. Мы можем повторить шаги, описанные в предыдущих строках, для создания дополнительных виртуальных хостов для всех наших доменов.

браузер виртуальных хостов apache

В этой статье раскрывается только базовое объяснение виртуального хоста и его конфигурации в Ubuntu. Может получить больше информации на Веб-сайт Apache.


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

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Чарли сказал

    Здравствуйте, мне очень помогло создание виртуальных хостов, но при запуске apachectl confitest я получил следующую ошибку: «AH00558: apache2: Не удалось достоверно определить полное доменное имя сервера, используя 127.0.1.1. Установите директиву 'ServerName' глобально, чтобы подавить это сообщение.
    Синтаксис ОК»

    Я не знаю, что может быть не так