В этом обучающем руководстве мы познакомимся с настройкой нескольких доменов и сайтов с помощью виртуальных хостов Apache на сервере Ubuntu 18.04. Во время этого процесса вы научитесь предоставлять разный контент разным посетителям в зависимости от того, какие домены они запрашивают.
Более подробную версию настоящего обучающего руководства с более подробным описанием каждого действия можно найти в статье Настройка виртуальных хостов Apache в Ubuntu 18.04.
Для выполнения этого обучающего руководства вам потребуется доступ к следующим компонентам на сервере Ubuntu 18.04:
sudo apt install apache2
Сначала мы создадим структуры директорий, где будут храниться данные сайта, которые мы будем предоставлять для посетителей в нашей директории Apache верхнего уровня. Мы будем использовать примеры доменных имен, как показано ниже. Вы можете заменить их на ваши реальные доменные имена.
Теперь нам нужно изменить разрешения для текущего пользователя без привилегий root, чтобы получить возможность изменять файлы.
Также мы гарантируем, что доступ для чтения разрешен для общей веб-директории и всех файлов и папок, которые она содержит, чтобы страницы могли отображаться корректно.
Давайте создадим содержимое для отображения, мы создадим демонстрационную страницу index.html
для каждого сайта. Мы можем открыть файл index.html
в текстовом редакторе для нашего первого сайта с помощью, например, nano.
В этом файле необходимо создать HTML-документ для конкретного домена, например, следующий:
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com virtual host is working!</h1>
</body>
</html>
Сохраните и закройте файл, а затем скопируйте этот файл для использования в качестве основы для второго сайта:
Откройте файл и измените соответствующие части информации:
<html>
<head>
<title>Welcome to Test.com!</title>
</head>
<body> <h1>Success! The test.com virtual host is working!</h1>
</body>
</html>
Сохраните и закройте этот файл.
Apache имеет файл виртуального хоста с именем 000-default.conf
, который мы будем использовать в качестве шаблона. Мы скопируем его, чтобы создать файл виртуального хоста для каждого из наших доменов.
Скопируйте файл для первого домена:
Откройте новый файл в вашем редакторе (ниже мы используем nano) с привилегиями root:
Мы настроим данный файл для нашего собственного домена. Измените выделенный текст ниже согласно вашим собственным условиям.
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Сохраните и закройте файл.
Теперь у нас есть первый файл виртуального хоста, и мы можем создать второй файл посредством копирования первого и его надлежащей настройки.
Для начала скопируйте файл:
Откройте новый файл в редакторе с привилегиями root:
Теперь вам нужно изменить все элементы информации, чтобы они ссылались на второй домен. Итоговый файл должен выглядеть следующим образом, а выделенный текст должен соответствовать данным вашего домена.
<VirtualHost *:80>
ServerAdmin admin@test.com
ServerName test.com
ServerAlias www.test.com
DocumentRoot /var/www/test.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Сохраните файл и закройте его после завершения.
После создания файлов виртуальных хостов мы должны активировать их. Для этой цели мы используем инструмент a2ensite
.
Отключите сайт по умолчанию, заданный в файле 000-default.conf
:
После завершения нужно перезапустить Apache для вступления изменений в силу и использовать команду systemctl status
для подтверждения успешного перезапуска.
Теперь наш сервер должен быть настроен для обслуживания двух сайтов.
Если вы использовали для тестирования этой процедуры фиктивные доменные имена, вы можете проверить результаты вашей работы, временно изменив файл хостов
на локальном компьютере.
Введите на локальном компьютере Mac или Linux следующую команду:
Если вы используете локальный компьютер Windows, см. инструкции по изменению файла хостов здесь.
Для доменов, указанных в настоящем руководстве, замените IP-адрес сервера на your_server_IP
, и ваш файл будет выглядеть примерно так:
127.0.0.1 localhost
127.0.1.1 guest-desktop
your_server_IP example.com
your_server_IP test.com
Сохраните и закройте файл. При таких настройках все запросы доменов example.com
и test.com
на нашем компьютере будут перенаправляться на наш сервер.
Мы настроили виртуальные хосты и теперь можем протестировать настройки, открыв в браузере настроенные домены:
http://example.com
Вы должны увидеть страницу, выглядящую примерно так:
Также вы можете открыть вторую страницу и увидеть файл, созданный для второго сайта.
http://test.com
Если все эти сайты работают ожидаемым образом, вы успешно настроили два виртуальных хоста на одном сервере.
Если вы изменили файл хостов домашнего компьютера, удалите добавленные вами строки.
Ниже представлены ссылки на более подробные материалы, связанные с настоящим обучающим руководством:
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!