Как разместить нескольких сайтов на одном сервере под Ubuntu 18.04

Опубликовано: 05.10.2019 - 11:17 | Сазанов Александр

Содержание

Преимущество использования Ubuntu 18.04 (или более свежих версий) совместно с Apache заключается в возможности хостинга нескольких сайтов на одном сервере. Это экономически выгодно, так как позволяет управлять всеми вашими доменами с одного сервера. Такой подход называется виртуальным хостингом.

Например, он позволяет разместить домены, такие как example.com и test.com, на едином публичном IP-адресе. Apache распределяет пользователей по различным папкам, в которых хранятся файлы каждого из доменов. При посещении сайта пользователь не замечает, что на сервере находятся и другие виртуальные узлы. Количество сайтов, которые можно разместить на сервере с Ubuntu 18.04, ограничивается только доступным дисковым пространством и пропускной способностью сети.

В этом руководстве мы расскажем, как настроить сервер для размещения двух различных сайтов на одном сервере под управлением Ubuntu 18.04 VPS.

Что потребуется:

  • Ubuntu 18.04 VPS
  • Стандартный пользователь с возможностью выполнения sudo-команд
  • Веб-сервер Apache

Установка Apache2

Для установки Apache необходимо выполнить следующую команду:

$ sudo apt-get install apache2

В качестве примера мы будем использовать вымышленные домены example.com и test.com. В этом руководстве также будет объяснено, как отредактировать файл hosts на вашем компьютере для проверки работы виртуальных хостов.

Создание каталогов

Сначала необходимо организовать структуру каталогов для новых веб-сайтов. Apache использует основной каталог /var/www, где находятся все сайты. Создадим две директории для наших новых доменов. Для этого введите в терминале следующие команды:

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

Изменение владельца каталогов

Права на редактирование содержимого в каталогах принадлежат системному пользователю root. Для разрешения доступа в каталог текущего пользователя необходимо воспользоваться командой chown:

$ sudo chown -R $USER:$USER /var/www/example.com/public_html
$ sudo chown -R $USER:$USER /var/www/test.com/public_html

Изменение прав доступа к файлам

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

Для этого необходимо выполнить команду:

$ sudo chmod -R 755 /var/www

Создание контента для каждого виртуального узла

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

Для домена test.com:

$ sudo nano /var/www/test.com/public_html/index.html

Скопируйте текст в редактор

<html>
  <body>
    This is our test.com website
  </body>
</html>

Для домена example.com:

$ sudo nano /var/www/example.com/public_html/index.html

Скопируйте в редактор в текст

<html>
  <body>
    This is our example.com website
  </body>
</html>

Не забывайте закрывать и сохранять каждый файл, нажимая CTR+X и Y.

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

При установке Apache на Ubuntu 18.04 по умолчанию создается файл конфигурации. Найти его можно здесь:

/etc/apache2/sites-available/000-default.conf

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

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test.com.conf
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf

Файлы конфигурации Apache должны иметь расширение ".config".

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

$ sudo nano /etc/apache2/sites-available/test.com.conf

Отредактируем файл следующим образом:

<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>

Выше мы указали каталог /var/www/test.com/public_html, потому что все файлы сайта test.com будут размещены в нем.

Повторим операцию для второго сайта example.com

$ sudo nano /etc/apache2/sites-available/example.com.conf

В конфигурационном файле укажем следующее:

<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>

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

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

$ sudo a2ensite test.com.conf
$ sudo a2ensite example.com.conf

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

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

$ sudo apache2ctl configtest

Если команда возвращает "Syntax OK", значит, конфигурация верна.

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

Журнал ошибок: /var/log/apache2/error.log

Журнал доступа: /var/log/apache2/access.log

Эти файлы помогут выявить проблемы и оптимизировать производительность.

Перезапуск Apache

После добавления виртуального сервера на Ubuntu 18.04 необходимо перезапустить Apache:

$ sudo service apache2 restart

Изменение локального файла hosts

Наши виртуальные хосты настроены. Для проверки вымышленных адресов нам необходимо отредактировать файл hosts на локальном компьютере (НЕ на сервере!).

Это позволит компьютеру обратиться к правильному публичному IP-адресу сервера. Предположим, что публичный IP-адрес сервера xxx.xxx.xxx.xxx, поэтому на нашем компьютере нужно будет отредактировать файл hosts следующим образом:

xxx.xxx.xxx.xxx example.com
xxx.xxx.xxx.xxx test.com

Если Вы используете ПК под Linux, необходимо отредактировать файл /etc/hosts с помощью команды:

$ sudo nano /etc/hosts

Внесите в него изменения и сохраните.

Если на компьютере установлена ОС Windows, отредактируйте файл c:\windows\system32\drivers\etc\hosts, используя текстовый редактор (блокнот).

Не забудьте заменить xxx.xxx.xxx.xxx на публичный IP-адрес Вашего сервера.

Проверка новых сайтов в браузере

Теперь нужно проверить сайты example.com и test.com в браузере. Если все выполнено по инструкции, то в браузере Вы должны увидеть следующее:

test.com

This is our test.com website

example.com

This is our example.com website

Заключение

Хостинг нескольких сайтов на одном сервере под Ubuntu 18.04 прост и  удобен: можно не переплачивать за отдельные виртуальные сервера.

С виртуальным хостингом вы получаете мощные инструменты для управления вашим сайтом, а мы поможем сделать выбор!

Сазанов Александр системный администратор
  • Опыт работы в IT более 20 лет
  • инженер, специалист поддержки, переводчик
Оценить эту страницу
0
Средняя: 5 (4 оценок)

Еще полезные статьи