Как разместить несколько сайтов на одном веб-сервере Apache2

Современное серверное оборудование обладает большими вычислительными возможностями. Поэтому на одном сервере не рационально размещать по одному сайту, которые очень слабо нагружают сервер ввиду их низкой посещаемости или других объективных причин. Исключения разве что составляют веб-приложения крупных корпораций, таких как Google, Microsoft, Facebook, где наоборот нагрузка распределяется по множеству дата-центров. Но сегодня мы рассмотрим первый случай.

Предположим, что нам нужно разместить на одном сервере основной сайт site.com, и два поддоменных ресурса, например его форум forum.site.com и веб-интерфейс для управления почтой mail.site.com. Для реализации данной задачи, нам нужно чтобы в DNS записях типа A для домена site.com и его поддоменов forum.site.com, mail.site.com был прописан IP-адрес нужного сервера. Обратите внимание, что изменения в DNS записях для доменов начинают делегироваться от 10 минут до 72 часов.

Заходим к себе на сервер через SSH.

ssh {Пользователь}@{IP сервера}

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

sudo mkdir -p /var/www/site.com/html
sudo mkdir -p /var/www/forum.site.com/html
sudo mkdir -p /var/www/mail.site.com/html

Теперь поочередно создадим 3 конфигурационных файла для Apache2.

Первый файл для основного сайта site.com.

sudo nano /etc/apache2/sites-available/site.com.conf

Заполняем файл таким содержимым:

<VirtualHost *:80>
        # Имя вирутального сервера
        ServerName site.com
        # Домены по которым доступен сайт
        ServerAlias site.com www.site.com
        # Почтовый адрес администратора
        ServerAdmin [email protected]
        # Корневой каталог сайта
        DocumentRoot /var/www/site.com/html

        # Указываем, куда писать логи ошибок и посещений
        # Логи будут писаться в папку с сайтом
        ErrorLog /var/www/site.com/error.log
        CustomLog /var/www/site.com/access.log combined

        # Настройки для корневого каталога сайтов
        <Directory /var/www/site.com/html>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                Allow from all
                Require all granted
        </Directory>
</VirtualHost>

Сохраняем файл сочетанием клавиш [Ctrl + O], выходим из текстового редактора [Ctrl + X].

Аналогичным образом, в той же папке создаем файлы для 2-х остальных сайтов:

sudo nano /etc/apache2/sites-available/forum.site.com.conf
<VirtualHost *:80>
        ServerName forum.site.com
        ServerAlias forum.site.com
        ServerAdmin [email protected]
        DocumentRoot /var/www/forum.site.com/html

        ErrorLog /var/www/forum.site.com/error.log
        CustomLog /var/www/forum.site.com/access.log combined

        <Directory /var/www/forum.site.com/html>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                Allow from all
                Require all granted
        </Directory>
</VirtualHost>
sudo nano /etc/apache2/sites-available/mail.site.com.conf
<VirtualHost *:80>
        ServerName mail.site.com
        ServerAlias mail.site.com
        ServerAdmin [email protected]
        DocumentRoot /var/www/mail.site.com/html

        ErrorLog /var/www/mail.site.com/error.log
        CustomLog /var/www/mail.site.com/access.log combined

        <Directory /var/www/mail.site.com/html>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                Allow from all
                Require all granted
        </Directory>
</VirtualHost>

Теперь самое время зайти на сервер через FTP/SFTP и закинуть файлы сайтов в соответствующие папки.

После того как сделали это, активируем нужные конфиграционные файлы:

sudo a2ensite site.com
sudo a2ensite forum.site.com
sudo a2ensite mail.site.com

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

sudo /etc/init.d/apache2 restart

Если конфиги написаны праильно, то сервер успешно перезапустится.

Теперь при переходе на site.com откроется один сайт, а при переходе на поддомены — другие сайты. Также можно в будет в будующем разместить сколько угодно сайтов на других доменах. Количество ограничено лишь ресурсами сервера.

 

ShiftHackZ

ShiftHackZ

Автор блога LocalHost // Blog. Интересуюсь компьютерными технологиями, системным администрированием и веб-разработкой. Днями напролет провожу время за своим компьютером и самосовершенствуюсь. Подробнее

Читайте также:

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

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