У наступній статті ми збираємось поглянути на віртуальні хости 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
Всередині файлу ми збираємось вставити наступний вміст:
<!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

<!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 знаходяться в каталозі / etc / apache2 / sites-доступно. Їх можна увімкнути, створивши символічні посилання на каталог / etc / apache2 / sites-enabled, яку Apache читає під час запуску.
Ми можемо називати файли конфігурації як завгодно. Але найкраща практика - використовувати доменне ім'я як ім'я файлу конфігурації віртуального хосту. Зараз ми збираємося відкрити наш улюблений текстовий редактор і створити основні файли конфігурації. У прикладі я просто покажу код для domain1:
sudo vim /etc/apache2/sites-available/dominio1.com.conf
Всередині ми додамо щось на зразок наступного, але для домену2 нам доведеться змінити домен1 на домен2 у наступному коді:

<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 буде обслуговувати файли.
- Варіанти → Ця директива контролює, які функції сервера доступні в певному каталозі.
- Індекси → Уникайте списків каталогів.
- FollowSymLinks → Коли цю опцію ввімкнено, Apache перейде за символічними посиланнями.
- AllowOverride → Ви збираєтесь вказати, що Директиви, заявлені у файлі .htaccess, можуть замінити директиви конфігурації.
- ErrorLog, CustomLog → Тут ви вкажете розташування файлів журналу.
Після того, як файли збережені, ми увімкнемо новий файл віртуального хосту створити символічне посилання з файлу віртуального хосту на каталог із підтримкою сайту. Ми зробимо це за допомогою сценарію a2сайт:

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:

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

Розкрита річ у цій статті - лише основне пояснення щодо віртуального хосту та його конфігурації в Ubuntu. Це може отримати більше інформації на Веб-сайт Apache.