Как сделать много сайтов на одном домене

Обновлено: 08.07.2024

В статье описано по шагам как настроить многосайтовость на VDS и виртуальном хостинге. Приводится пример для панели сервера CPanel и системы управления сайтом HostCMS, но всё это применимо практически к любому серверу. Также приведён пример как создать мультисайт на обычном виртуальном хостинге.

Настройка многосайтовости зависит от Вашего хостинга, но в любом случае не представляет сложности. Для начала мы рассмотрим более сложный пример, а именно — настройку многосайтовости на виртуальном выделенном сервере (VDS), поскольку именно в этом случае возникает основное число вопросов.

Для начала разберёмся в определениях, чтобы вопросов в процессе рассмотрения задачи было меньше.

  • Один URL для входа в панель управления (в том числе платные);
  • Сайты могут использовать общие компоненты;
  • Экономия на лицензии платформы сайта (CMS);
  • Мультисайт занимает меньше места на диске, чем два отдельных сайта (опять же за счёт использования общих компонентов ядра системы);
  • Удобнее администрировать сайт (в том числе выполнять резервное копирование, обновление CMS и другие подобные операции);

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

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

Как работает мультисайт

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

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

Давайте посмотрим как создать мультисайт на практике.

Многосайтовость (мультисайт) на VDS и выделенном сервере

Выделенные серверы (и похожие на них по своей сути VDS) по определению отличаются друг от друга прежде всего установленной операционной системой. В зависимости от установленной на сервере ОС операции, сопутствующие созданию мультисайта, могут отличаться.

Мы рассмотрим выполнение всех операций на примере тестового сервера с установленной CentOS 7. Обратите внимание, что структура папок на сервере может также отличаться в зависимости от панели управления сервером. Однако в данном случае это не имеет никакого значения.

Также нам потребуется SSH доступ, так как все операции мы будем выполнять из консоли. В принципе можно обойтись и без SSH, если панель управления сервером позволяет выполнять описанные ниже необходимые операции. Но мы рассмотрим самый универсальный способ.

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

Будем считать, что один сайт у вас уже есть. Наша задача — создать второй.

Поскольку запросы к обоим сайтам должны обрабатываться файлами первого сайта, то папка второго сайта будет пустой. Или почти пустой — это зависит от панели управления сервером (если она вообще используется). Посмотрите на скриншот ниже.

настройка многосайтовости на VDS


[нажмите на картинку для увеличения]
Справка: как сохранять фото с сайтов

Пример настройки мультисайта для CPanel

Настройка мультисайта (многосайтовость) в CPanel


[нажмите на картинку для увеличения]
Справка: как сохранять фото с сайтов

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

Пример настройки мультисайта через SSH

Что мы имеем в нашем примере:

Нужно сделать так, чтобы папка второго сайта (нового) вела в папку первого. Для этого удалим папку /public_html/ у второго(!) сайта, после чего создадим симлинк с таким же названием (/public_html/), который будет указывать на папку первого сайта. В CentOS мы для этого используем следующую команду:

Как создать симлинк в UNIX


[нажмите на картинку для увеличения]
Справка: как сохранять фото с сайтов

При работе через SSH консоль будьте осторожны, чтобы не повредить серверу! Если Вы не уверены в том что делаете, обратитесь к специалисту.

Как видите, сложного ничего нет. Способ с символическими ссылками работоспособен вне зависимости от панели управления сервером (в том числе может применяться для серверов без панели управления вообще).

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

Многосайтовость (мультисайт) на виртуальном хостинге

Отличие в том, что симлинк в случае виртуального хостинга не нужно создавать через SSH, а можно сделать через файловый менеджер хостинга (если есть такая возможность). Хотя если Вам привычнее работать через консоль и хостинг предоставляет SSH доступ, то можно всё сделать как написано выше для отдельного сервера.

Если создать симлинк не получается, мы рекомендуем обратиться к справочной системе Вашего хостинг-провайдера или написать в техподдержку и объяснить что Вы хотите создать и настроить многосайтовость (мультисайт). Обычно же проблем никаких не возникает.

Как проверить работоспособность мультисайта

Проверить, работает ли наш мультисайт, очень просто. Откройте новый домен (поддомен) в браузере: Вы должны видеть не пустой лист (или заглушку), а что-то имеющее отношение к системе управления (CMS) Вашего сайта. Например, для HostCMS это будет выглядеть как на скриншоте ниже.

мультисайт HostCMS


[нажмите на картинку для увеличения]
Справка: как сохранять фото с сайтов

В данном случае система управления HostCMS просит добавить лицензионный ключ для нового домена (поддомена). Это уже имеет отношение к конкретной системе управления сайтом, нам же важно, что запрос к новому домену был успешно обработан в соответствии с нашими сделанными настройками. То есть всё получилось.

Многосайтовость на разных доменах и поддомене

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

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

Мультисайт (многосайтовость) на HostCMS

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

  • Добавить новый сайт в панели управления;
  • Добавить домен к новому сайту (тот домен или поддомен, для которого и были сделаны все настройки на сервере);
  • Получить лицензионный ключ для нового домена (поддомена);

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

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


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

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

Количество сайтов, которые можно разместить на сервере под Ubuntu 18.04, ограничивается лишь местом на диске и пропускной способностью канала.

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

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

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

Установка Apache2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Перезапуск Apache

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

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

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

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

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

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

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

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

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

Заключение

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

date

02.04.2021

user

itpro

directory

Windows Server 2016, Windows Server 2019

comments

комментариев 6

управление привязкой сайтов в IIS

ServerBindings — привязка сайтов в IIS

  • номер TCP порта
  • IP адрес
  • имя узла (host header)

Например, наш тестовый веб сайт IIS уже на 80 порту. Нам нужно добавить второй сайт на этом же порту.

В консоли управления IIS создадим второй сайт (Add Website). С именем TestSite , файлы которого будут храниться в каталоге c:\inetpub\TestSite (имя хоста пока не указываем).

добавить новый сайт в iis

После того, как вы нажмете “OK”, появится предупреждение, в котором говорится, что вы не можете использовать привязку *:80 для двух сайтов, т.е. одновременно может работать только один из них.

The binding

Согласимся с этим предупреждением. Итак, у нас появился второй сайт, также привязанный к 80 порту, но запустить его без остановки первого сайта нельзя.

несколько сайтов в iis

Добавляем новое имя сайта в Host Header в IIS

Щелкните ПКМ по сайту TestSite и выберите пункт меню Edit Bindings. Выберите нужную привязку и нажмите Edit.

В поле Host Name укажите уникальное имя хоста, к которому должны обращаться пользователи, например, TestSite.

указать новый hostname в iis site bindings

Настроить привязку можно и из командной строки. В данном примере для IIS 7 и выше команда установки привязки будет выглядеть так:

Теперь можно запустить и второй веб сайт.

запуск второго сайта IIS на том же порту

Все, что осталось сделать – добавить в DNS алиас для сервера (запись типа A или CNAME), указывающую на IP адрес веб-сервера или его имя.

Если вы используйте домен Active Direcroty, нужно создать DNS записи на контроллере домена.

Создать CNAME запись для имени TestSite можно с помощью консоли DNS (dnsmgmt.msc), в качестве FQDN target host указать доменное имя вашего IIS сервера.

создать CNAME запись в dns

проверка второго сайта iis на 80 порту

Еще несколько полезных моментов, которые стоит упомянуть.

В том случае, если у вас используется локальный сервер IIS, сопоставление имен сайтов с IP адресом сервера выполняется через локальный файл hosts ( C:\Windows\system32\drivers\etc\hosts ).

Настройки привязок хранятся в конфигурационном файле IIS ( C:\Windows\System32\inetsrv\config\applicationHost.config ) в секции .

В нашем примере эта секция содержит такие данные:

По аналогии вы можете разместить и запустить на одном порту 80 или 443 веб-сервера IIS несколько десятков сайтов.

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

Теперь попробуем запустить на веб сервере IIS два сайта на разных IP адресах. В первую очередь нужно добавить на Windows Server отдельный VLAN интерфейс или просто назначить на сетевое подключение дополнительный IP адрес (алиас).

В этом примере у сервера основной IP адрес 192.168.13.100, и я добавлю на этот же сетевой адаптер дополнительный IP алиас 192.168.13.101:

Get-NetIPAddress | ft IPAddress, InterfaceAlias, SkipAsSource
New-NetIPAddress –IPAddress 192.168.13.101 –PrefixLength 24 –InterfaceAlias “Ethernet” –SkipAsSource $True

добавление дополнительного IP адреса на windows server

Теперь на DNS сервере нужно создать A запись для нового сайта (сразу создадим PTR запись в обратной зоне):

Осталось открыть настройки Site Binding и привязать сайт к новому IP адресу.

привязать сайт IIS к новому IP адресу

Управление привязкой сайтов IIS с помощью PowerShell

Вы можете управлять привязкой (биндингом) сайтов на сервере IIS с помощью PowerShell. Для этого используется модуль WebAdministration:

Вывести информацию о всех имеющихся сайтах и привязках:

Get-IISSite вывести информацию о привзяказ сайтов iis в powershell

Либо о конкретном сайте:

(Get-Website -Name NewSite3).bindings.Collection

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

Set-WebBinding -Name NewSite3 -BindingInformation "192.168.13.101:80:NewSite3" -PropertyName 'Port' -Value '81'
Set-WebBinding -Name NewSite3 -BindingInformation "192.168.13.101:81:NewSite3" -PropertyName 'IPAddress' -Value '192.168.13.100'

Для добавления новой привязки к сайту, выполните:

Для удаления привязки:

Remove-IISSiteBinding -Name NewSite3 -BindingInformation "*:9090:"

Таким образом вы можете запустить на веб сервере IIS несколько сайтов как на разных IP адресах, так и на одном и том же IP адресе и TCP порту.

Favorite

Добавить в избранное

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

Н а этом уроке, мы собираемся показать вам шаг за шагом инструкции о том, как разместить несколько веб – сайтов на одном IP – адресе с Apache или Nginx на Ubuntu или CentOS 7. Хостинг нескольких доменов/поддоменов на VPS с помощью виртуальных хостов Apache или с использованием серверных блоков в Nginx довольно не сложен.

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

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

Ubuntu или Debian:

CentOS или Fedora:

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

Ubuntu или Debian:

CentOS или Fedora:

Обратите внимание, что директива ‘NameVirtualHost‘ уже включена по умолчанию в Ubuntu 16.04 и CentOS 7.

Ubuntu или Debian:

Активируйте конфигурацию ‘domain1.conf’ и ” domain2.conf в Apache с помощью:

Или, используйте команду a2ensite, чтобы включить конфигурации “domain1.conf” и “domain2.conf” в Apache:

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

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

Создайте каталоги /var/www/html/domain1 и /var/www/html/domain2, и загрузите свои веб-сайты в них.

Все файлы сайта должны быть доступны для чтения веб-сервером, поэтому установить правильную собственность:

Ubuntu или Debian:

CentOS или Fedora:

Серверный блок Nginx

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

Ubuntu или Debian:

CentOS или Fedora:

Создайте резервную копию конфигурации Nginx, а затем создайте блок сервера для первого веб-сайта:

Ubuntu или Debian:

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

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

CentOS или Fedora:

Выполните следующие команды:

Создайте новый файл конфигурации Nginx для первого веб-сайта:

включите конфигурацию ‘domain1.conf’ в Nginx с помощью:

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

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

Установите соответствующую владельца файлов веб-сайта, так что они могут быть доступны с помощью веб-сервера Nginx (например, www-data):

Все. Повторите ту же процедуру для каждого дополнительного веб-сайта.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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