Ubuntu настройка виртуальных хостов apache: Как настроить виртуальные хосты в Apache на Ubuntu 18.04/20.04

Содержание

Как настроить виртуальные хосты в Apache на Ubuntu 18.04/20.04

Каждый владелец VPS сталкивается с вопросом, как разместить несколько сайтов на одном сервере с одним IP-адресом. Если вы используете в качестве веб-сервера Apache, виртуальные хосты (virtual hosts) — верное решение для разделения ресурсов и отдельной конфигурации для каждого сайта.

Предварительная настройка

Все действия осуществляются на сервере через подключение по SSH. Перед тем как приступить к настройке виртуальных хостов, необходимо произвести настройку сервера.

Создание пользователя

По умолчанию после создания сервера для доступа к нему создаётся root пользователь. В целях безопасности не рекомендуем работать под суперюзером.

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

adduser userName

Где UserName — имя нового пользователя.

Система попросит ввести пароль для нового пользователя и дополнительную информацию:

Теперь установите права доступа, чтобы новый пользователь мог использовать команду sudo. Для этого выполните команду:

usermod -aG sudo UserName

Где UserName — имя созданного ранее пользователя.

Готово, новый пользователь создан. Завершите SSH-сеанс под root и подключитесь к серверу под новым пользователем.

Установка Ubuntu Apache

Чтобы выполнить действия ниже, у вас должен быть установлен Apache. Для полноценной работы сайта рекомендуем установить LAMP (Linux Apache MySQL PHP). Это минимальный набор ПО, который чаще всего используется для размещения и запуска сайта. Как установить LAMP, вы можете узнать в инструкции.

Подготовка доменов

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

Обратите внимание

В данной инструкции будут приведены примеры с доменами faq-reg.ru и support-faq.ru. В тех местах, где они будут встречаться, измените домены на свои.

Подготовка каталогов

Подготовим структуру каталогов. Рабочая директория Apache — /var/www. В данной директории мы будем создавать отдельные каталоги для каждого домена (виртуального хоста).

Чтобы создать каталоги, выполните команды:

sudo mkdir -p /var/www/faq-reg.ru/
sudo mkdir -p /var/www/support-faq.ru/

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

sudo chmod -R 755 /var/www
sudo chown -R $USER:$USER /var/www/faq-reg.ru/
sudo chown -R $USER:$USER /var/www/support-faq.ru/

Готово, структура каталогов и права доступа настроены. Далее подготовим демостраницы.

Создание демостраниц

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

Для faq-reg.ru:

echo "<h2>faq-reg.ru</h2>" > /var/www/faq-reg.ru/index.html

Для support-faq. ru:

echo "<h2>support-faq.ru</h2>" > /var/www/support-faq.ru/index.html

Не забудьте заменить доменные имена на ваши.

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

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

Файл конфигурации Ubuntu Apache virtual hosts отвечает за обработку запросов к разным доменам. У Apache существует дефолтный файл конфигурации, который можно использовать в качестве шаблона. Его название может отличаться в зависимости от настроек сервера. В качестве примера мы обозначим название конфига как 000-default.conf. Для каждого виртуального хоста необходимо будет скопировать его, задать произвольное имя (рекомендуем использовать имя домена) и произвести определённые настройки. Обязательное условие — соблюдение расширения файла: .conf

Создание конфига для faq-reg.ru

  1. 1.

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

    sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/faq-reg.ru.conf

    Где 000-default.conf — название конфигурационного файла по умолчанию.

  2. 2.

    Откройте созданный файл командой:

    sudo nano /etc/apache2/sites-available/faq-reg.ru.conf
  3. 3.

    В файле присутствует секция VirtualHost для обработки запросов на 80 порт (порт для HTTP-запросов). Заполните оставшиеся поля:

    • ServerAdmin — укажите электронный адрес администратора;
    • ServerName — укажите домен, для которого вы создаёте конфигурационный файл;
    • ServerAlias — раскомментируйте эту строку: удалите решётку в начале строки.
      В ней укажите псевдоним домена. Часто используется вид www.domain.ru;
    • DocumentRoot — укажите каталог домена, который вы создали на этапе подготовки;
    • ErrorLog и CustomLog — упомяните домен в названии файла. Так вы сможете быстрее идентифицировать файлы логов;
    • Directory — ещё раз укажите каталог домена, который вы создали на этапе подготовки.

    Затем сохраните изменения в файле и закройте его:

  4. 4.

    Настройка виртуального хоста для первого домена завершена. Скопируйте этот файл для второго домена с помощью команды:

    sudo cp /etc/apache2/sites-available/faq-reg.ru.conf /etc/apache2/sites-available/support-faq.ru.conf

    Не забудьте изменить faq-reg.ru.conf и support-faq.ru.conf на имена ваших доменов.

  5. org/HowToStep»> 5.

    Откройте файл для редактирования:

    sudo nano /etc/apache2/sites-available/support-faq.ru.conf
  6. 6.

    Заполните поля:

    • ServerAdmin — укажите электронный адрес администратора;
    • ServerName — укажите домен, для которого вы создаёте конфигурационный файл;
    • ServerAlias — раскомментируйте эту строку: удалите решётку в начале строки. В ней укажите псевдоним домена. Часто используется вид
      www.domain.ru
      ;
    • DocumentRoot — укажите каталог домена, который вы создали на этапе подготовки;
    • ErrorLog и CustomLog — упомяните домен в названии файла. Так вы сможете быстрее идентифицировать файлы логов;
    • Directory — ещё раз укажите каталог домена, который вы создали на этапе подготовки.

    Затем сохраните изменения и закройте файл:

  7. org/HowToStep»> 7.

    Деактивируйте конфиг по умолчанию командой:

    sudo a2dissite 000-default.conf

    И активируйте созданные конфиги:

    sudo a2ensite faq-reg.ru.conf
    sudo a2ensite support-faq.ru.conf
  8. 8.

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

    sudo service apache2 restart

Готово, создание и настройка виртуальных хостов завершена. Далее можем проверить результат.

Проверка работы виртуальных хостов

Если вы заранее привязали ваши домены к серверу и делегирование уже произошло, при переходе по домену должна открыться страница, которую мы создали на этапе «Создание демостраниц».

Если с момента изменения DNS прошло менее 24 часов и домен ещё не делегирован, увидеть результат вы можете, настроив локальные хосты в файле hosts. Подробнее в инструкции.

При переходе по домену faq-reg. ru:

При переходе по домену support-faq.ru:

Готово, файл index.html можно удалить. Далее вы можете загрузить файлы сайта в созданные директории.

Помогла ли вам статья?

Да

раз уже
помогла

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

13.11.20202020-11-13T16:58:39+03:002021-01-14T14:32:10+03:00 Linux, Ubuntu 1 комментарий

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

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

Содержание

Подготовка

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

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

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

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

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

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

Начните с создания корневого каталога для домена:

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

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

/var/www/domain1.com/public_html/index.html

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to domain1.com</title>
  </head>
  <body>
    <h2>Success! domain1.com home page!</h2>
  </body>
</html>

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

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

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

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

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

/etc/apache2/sites-available/domain1.com.conf

<VirtualHost *:80>
    ServerName domain1.com
    ServerAlias www.domain1.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/domain1.com/public_html

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

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

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

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

sudo a2ensite domain1. com

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

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

После этого проверьте конфигурацию на наличие синтаксических ошибок с помощью:

sudo apachectl configtest

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

Syntax OK

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

sudo systemctl restart apache2

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

Выводы

Вы узнали, как создать конфигурацию виртуального хоста apache для размещения нескольких доменов на одном сервере Ubuntu.

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

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

Этот пост является частью серии Как установить LAMP Stack в Ubuntu 20.04. Другие сообщения из этой серии:

  • Как установить MySQL в Ubuntu 20.04
  • Как установить Apache в Ubuntu 20.04
  • Как установить PHP в Ubuntu 20.04
  • Защитите Apache с помощью Let’s Encrypt в Ubuntu 20.04

Как настроить виртуальные хосты Apache в Ubuntu 20.04 (шаг за шагом)

Как настроить виртуальные хосты Apache в Ubuntu 20.04 (шаг за шагом). Apache — один из лучших веб-серверов, на который приходится более 50% всех активных веб-сайтов и приложений в Интернете. Это инструмент, предназначенный для беспроблемной доставки контента в Интернет.

 

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

Виртуальный хостинг Apache

Виртуальный хостинг — это функция Apache, которая позволяет пользователям размещать более одного веб-сайта на одном сервере (физическом сервере или облачном сервере). Лучшее в этом виртуальном хосте то, что он позволяет пользователям использовать любой виртуальный хост на одном сервере. Он отображает запросы каждого домена в корень документа соответственно, где находятся все файлы сайтов. Как правило, функции виртуального хостинга используются в общем веб-хостинге и реселлерском веб-хостинге.

Существует два основных типа виртуального хостинга: хостинг на основе имени и хостинг на основе IP. Каждый виртуальный хост имеет свой уникальный IP-адрес и виртуальные хосты на основе имени.

1. Виртуальный хостинг на основе имени

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

Виртуальный хостинг на базе IP

Виртуальный хостинг на основе IP

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

Лабораторная среда

Операционная система — Ubuntu 20.04
Приложение — Веб-сервер Apache
IP-адрес – 192.168.0.10
IP-адрес – 192.168.0.11
Домен – web1.example.com
Домен – web2.example.com

.com

Примечание : Оба домена должны быть указаны с IP-адресом вашего сервера.

Следуйте этому сообщению, чтобы узнать, как настроить виртуальные хосты Apache в Ubuntu 20.04.

Как настроить виртуальные хосты Apache в Ubuntu 20.

04

Установить веб-сервер Apache

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

apt-получить установить apache2 -y

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

systemctl запустить apache2
systemctl включить apache2

Теперь откройте веб-браузер и проверьте веб-сервер Apache, используя URL-адрес http://your-server-ip . Вы должны увидеть тестовую страницу Apache:

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

Для тестирования виртуального хостинга на основе имени и виртуального хостинга на основе IP вам потребуется создать структуру каталогов для всех веб-сайтов.

Сначала создайте каталог для обоих доменов внутри веб-корня Apache, используя следующую команду:

mkdir /var/www/html/web1.example. com /var/www/html/web2.example.com

Далее создайте пустую файл index.html для обоих доменов:

коснитесь /var/www/html/web1.example.com/index.html
коснитесь /var/www/html/web2.example.com/index.html

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

mkdir /var/www/html/ip1 /var/www/html/ip2

Затем создайте пустой файл index.html для обоих IP-адресов:

коснитесь /var/www/html/ip1/index.html
коснитесь /var/www/html/ip2/index.html

Теперь проверьте структуру каталогов с помощью следующей команды:

дерево /var/www/html/

Вы получите следующий вывод:

/var/www/html/
├── index.html
├── ip1
│   └── index.html
├── ip2
│   └── index.html
├── web1.example.com
│   └── index.html
└── web2.example.com
    └── index.html

Создание веб-страниц для каждого веб-сайта

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

Сначала создайте страницу index.htm l для web1.example.com домен:

нано /var/www/html/web1.example.com/index.html

Добавьте следующий код:

Добро пожаловать на web1.example.com

Успех! Домашняя страница web1.example.com!

Сохраните и закройте файл, затем создайте страницу index.html для web2.example.com домен:

нано /var/www/html/web2.example.com/index.html

Добавьте следующий код:

Добро пожаловать на web2.example.com

Успех! Домашняя страница web2.example.com!

Сохраните и закройте файл, затем создайте страницу index.html для ip1 :

нано /var/www/html/ip1/index. html

Добавьте следующий код:

Добро пожаловать на 192.168.0.10

Успех! Домашняя страница 192.168.0.10!

Сохраните и закройте файл, затем создайте страницу index.html для ip2 :

нано /var/www/html/ip2/index.html

Добавьте следующий код:

Добро пожаловать на 192.168.0.11

Успех! Домашняя страница 192.168.0.11!

Сохраните и закройте файл, затем измените владельца веб-корня Apache:

chown -R www-данные:www-данные /var/www/html

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

По умолчанию файлы конфигурации виртуальных хостов Apache находятся в каталоге /etc/apache2/sites-available в Ubuntu 20.04. В этом разделе мы создадим файл конфигурации виртуального хоста Apache как для виртуального хостинга на основе имени, так и для виртуального хостинга на основе IP.

Настройка виртуальных хостов на основе имени

Виртуальный хостинг на основе имени позволяет размещать несколько веб-сайтов на одном сервере с использованием доменного имени. Сначала создайте виртуальный хост Apache для web1.example.com домен:

нано /etc/apache2/sites-available/web1.example.com.conf

Добавьте следующие строки:


    Имя сервера web1.example.com
    Администратор сервера [email protected]
    DocumentRoot /var/www/html/web1.example.com
    
        Опции -Индексы +FollowSymLinks
        Разрешить переопределить все
    
    Журнал ошибок ${APACHE_LOG_DIR}/web1.example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/web1.example.com-access.log вместе

Сохраните и закройте файл, когда закончите. Затем создайте виртуальный хост Apache для домена web2.example.com :

.
нано /etc/apache2/sites-available/web2.example. com.conf

Добавьте следующие строки:


    Имя сервера web2.example.com
    Администратор сервера [email protected]
    DocumentRoot /var/www/html/web2.example.com
    
        Опции -Индексы +FollowSymLinks
        Разрешить переопределить все
    
    Журнал ошибок ${APACHE_LOG_DIR}/web2.example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/web2.example.com-access.log вместе

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

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

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

конфигурационный тест apachectl

Вы должны получить следующий вывод:

Синтаксис ОК

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

systemctl перезапустить apache2

Настройка виртуальных хостов на основе IP

Виртуальный хостинг на основе IP

позволяет размещать несколько веб-сайтов на одном сервере, используя отдельный IP-адрес для каждого веб-сайта. Сначала создайте файл конфигурации виртуального хоста Apache для IP 192.168.0.10 :

.
нано /etc/apache2/сайты-доступны/ip1.conf

Добавьте следующие строки:


    ИмяСервера 192.168.0.10
    Веб-мастер администратора сервера@192.168.0.10
    DocumentRoot /var/www/html/ip1
    
        Опции -Индексы +FollowSymLinks
        Разрешить переопределить все
    
    Журнал ошибок ${APACHE_LOG_DIR}/192.168.0.10-error.log
    CustomLog ${APACHE_LOG_DIR}/192.168.0.10-access.log вместе

Сохраните и закройте файл, когда закончите. Затем создайте файл конфигурации виртуального хоста Apache для IP 192.168.0.11 9.0030 :

нано /etc/apache2/сайты-доступны/ip2.conf

Добавьте следующие строки:


    ИмяСервера 192.168.0.11
    Веб-мастер администратора сервера@192.168.0.11
    DocumentRoot /var/www/html/ip2
    
        Опции -Индексы +FollowSymLinks
        Разрешить переопределить все
    
    Журнал ошибок ${APACHE_LOG_DIR}/192. 168.0.11-error.log
    CustomLog ${APACHE_LOG_DIR}/192.168.0.11-access.log вместе

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

ln -s /etc/apache2/sites-available/ip1.conf /etc/apache2/sites-enabled/
ln -s /etc/apache2/sites-available/ip2.conf /etc/apache2/sites-enabled/

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

конфигурационный тест apachectl

Вы должны получить следующий вывод:

Синтаксис ОК

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

systemctl перезапустить apache2

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

статус systemctl apache2

Вы получите следующий вывод:

● apache2.service — HTTP-сервер Apache.
   Загружено: загружено (/lib/systemd/system/apache2. service; включено; предустановка поставщика: включена)
  Вставка: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Активно: активно (работает) с пятницы 06 мая 2022 г., 10:28:54 IST; 3 с назад
  Процесс: 8037 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)
  Процесс: 7111 ExecReload=/usr/sbin/apachectl изящный (код=выход, статус=0/УСПЕХ)
  Процесс: 8042 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
 Основной PID: 8046 (apache2)
    Заданий: 55 (лимит: 4915)
   Группа CG: /system.slice/apache2.service
           ├─8046 /usr/sbin/apache2 -k запуск
           ├─8047 /usr/sbin/apache2 -k запуск
           └─8048 /usr/sbin/apache2 -k запуск
06 мая, 10:28:54 vyompc systemd[1]: остановлен HTTP-сервер Apache.
06 мая 10:28:54 vyompc systemd[1]: запуск HTTP-сервера Apache...
06 мая 10:28:54 vyompc systemd[1]: Запущен HTTP-сервер Apache.

Проверка виртуального хостинга на основе имени и IP

На этом этапе виртуальный хостинг на основе имени и IP-адреса настроен на сервере Ubuntu 20. 04. Теперь пришло время убедиться, что все работает так, как ожидалось.

Откройте веб-браузер и получите доступ к обоим доменам по их имени, используя URL:

http://web1.example.com

Вы должны увидеть содержимое index.html, размещенного в домене web1.example.com, на следующей странице:

http://web2.example.com

Вы должны увидеть содержимое index.html, размещенного в домене web2.example.com, на следующей странице:

Вы также можете получить доступ к обоим веб-сайтам по их IP-адресам, используя URL:

http://192.168.0.10

Вы должны увидеть содержимое index.html, размещенного на IP-адресе 192.168.0.10, на следующей странице:

http://192.168.0.11

Вы должны увидеть содержимое index.html, размещенного на IP-адресе 192.168.0.11, на следующей странице:

Как настроить виртуальные хосты Apache в Ubuntu 20.04 Заключение

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

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

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

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

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

Содержание

  • 1 Создание структуры каталогов
  • 2 Создание виртуальных хостов

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

Корень документа — это каталог, в котором файлы веб-сайта для доменного имени хранятся и обслуживаются в ответ на запросы . Мы можем установить рут в интересующем нас месте. Для каждого домена, размещенного на сервере apache, корневой каталог документов будет иметь значение /var/www/domain-name/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 

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

 


  <голова>
    доминио1
  
  <тело>
 

Дом доминио1

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

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

 

  <голова>
    доминио2
  
  <тело>
 

Дом доминио2

Поскольку приведенные выше команды запускаются с помощью 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 находятся в каталоге /etc/apache2/sites-available . Их можно включить, создав символические ссылки на каталог /Etc/apache2/sites-enabled , которые Apache читает при запуске.

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

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

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

 <Виртуальный хост *:80>
    Имя сервера dominio1.com
    Псевдоним сервера www. dominio1.com
    Администратор сервера [email protected]
    DocumentRoot /var/www/dominio1.com/public_html
    <Каталог /var/www/dominio1.com/public_html>
        Опции -Индексы +FollowSymLinks
        Разрешить переопределить все
    
    Журнал ошибок ${APACHE_LOG_DIR}/dominio1.com-error.log
    CustomLog ${APACHE_LOG_DIR}/dominio1.com-access.log вместе
 
  • имя_сервера → Вы собираетесь указать домен, который должен соответствовать этой конфигурации виртуального хоста. Восток должен быть доменным именем .
  • ServerAlias ​​ → Все другие домены или поддомены, которые должны совпадать с этим виртуальным хостом , например www.
  • DocumentRoot → Здесь будет указывать каталог, из которого Apache будет обслуживать файлы .
  • Параметры → Эта директива определяет, какие функции сервера доступны в определенном каталоге .
    • Индексы → Избегайте списков каталогов.
    • FollowSymLinks → Когда эта опция включена, Apache будет переходить по символическим ссылкам.
  • AllowOverride → Вы собираетесь указать, какие директивы, объявленные в файле .htaccess, могут переопределять директивы конфигурации .
  • ErrorLog, CustomLog → Здесь вы укажете расположение файлов журнала .

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

 sudo a2ensite dominio1.com 

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

 sudo lnapache -2 /etc /sites-available/dominio1.com.conf /etc/apache2/sites-enabled/ 

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

 sudo apachectl configtest 

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

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

 sudo systemctl restart apache2 

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

Добавить комментарий

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