Получив доступ к онлайн-хостингу, вы наверняка захотите узнать, как разместить несколько сайтов на одном сервере. Это может казаться сложным, но чем больше вы углубляетесь в тему, тем яснее становится: с помощью технических руководств сделать это вполне реально.
Существует множество веб-серверов, предлагающих бесплатные решения с открытым исходным кодом, которые используются по всему миру. Но прежде чем разбираться, как разместить несколько сайтов на одном сервере, стоит понять, что такое веб-сервер и как он работает.
Что такое веб-сервер?
Веб-сервер хранит и отдаёт контент — текст, изображения, видео и данные приложений. Клиенты, которым нужен этот контент, получают его через веб-серверы. Самый распространённый клиент — браузер: он запрашивает данные с сайта, когда пользователь переходит по ссылке или скачивает файл.
Веб-сервер общается с браузером по протоколу Протокол передачи гипертекста (HTTP) Большинство веб-страниц размечено на языке Hypertext Markup Language (HTML). Контент бывает статическим — текст и изображения, или динамическим — например, список товаров, добавленных покупателем в корзину. Большинство веб-серверов поддерживают серверные языки сценариев для встраивания бизнес-логики в ответы и формирования динамического контента. Как правило, поддерживаются такие языки, как Active Server Pages (ASP), JavaScript, PHP, Python и Ruby.
Как работает веб-сервер?
Веб-серверы работают по модели клиент-сервер В этой стандартной схеме клиент запрашивает ресурс или услугу у сервера.
Для обработки запросов клиентов веб-сервер выполняет несколько шагов:
- Когда пользователь хочет загрузить контент сайта, браузер запрашивает доступ (HTTP запрос) через интернет.
- Браузер ищет IP-адрес запрошенного сайта. Он преобразует URL веб-страниц с помощью Системы доменных имён (DNS) или обращаясь к своему кэшу. Этот процесс позволяет найти веб-сервер, на котором хранятся файлы сайта.
- На этом этапе веб-сервер получает HTTP запрос и обрабатывает его через свой HTTP сервер.
- После того как HTTP сервер принимает запрос, он выполняет поиск по файлам сервера для получения нужных данных.
- Веб-сервер возвращает файлы сайта браузеру, который отправил запрос. После этого пользователь видит содержимое сайта.
Обратите внимание: если HTTP серверу не удаётся найти или обработать запрошенные файлы, браузер отобразит сообщение об ошибке. Теперь, когда вы знакомы с основными понятиями о веб-серверах, вы сможете разобраться и в том, как разместить несколько сайтов на одном сервере.
Несколько сайтов на одном сервере: Apache
Если вы хотите разместить несколько сайтов на одном сервере, используйте файлы виртуальных хостов Apache, чтобы указать, какой домен должен использоваться. Один из методов обработки запросов к сайтам называется Виртуальные хосты на основе имён. Когда пользователь обращается к вашему сайту, запрос поступает на сервер, который по доменному имени определяет, какие файлы нужно отдать. Эта техника позволяет размещать несколько сайтов на одном сервере с одним IP-адресом. В этой статье описано, как настроить файл виртуального хоста для каждого из ваших доменов. Прежде чем перейти к деталям, учтите, что вам нужно войти под учётной записью root.
Читайте также: “Хостинг Linux или Windows: что лучше подходит для вас?”
Шаг 1: Создайте директорию для каждого сайта
Сначала установите apache2 с помощью этой команды
Для систем на базе Debian
apt install apache2 -y
Для систем на базе CentOS
yum install apache2 -y
Для каждого сайта, который вы будете размещать, нужно создать отдельный каталог (внутри папки /var/www). В качестве примеров доменных имён используйте domain.com и domain2.com.
mkdir -p /var/www/domain.com/public_html
mkdir -p /var/www/domain2.com/public_html
Шаг 2: Настройте права доступа к папкам
chmod -R 755 /var/www
Шаг 3: Настройка стартовой страницы
Чтобы отображалась домашняя страница, убедитесь, что index.html файл создан для каждого домена. Можно указать что-то простое, например тестирование для domain.com в этом файле.
vim /var/www/domain.com/public_html/index.html
тестирование для domain.com
Теперь сохраните файл и выйдите с помощью Побег и ввода: wq
Используйте команду ниже, чтобы повторить все эти шаги для второго домена.
vim /var/www/domain2.com/public_html/index.html
Шаг 4: Скопируйте файл конфигурации для каждого сайта
Необходимо скопировать файл конфигурации по умолчанию для каждого сайта — так у вас всегда будет исходная копия для создания новых сайтов в будущем.
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain.com.conf
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain2.com.conf
Шаг 5: Отредактируйте файл конфигурации для каждого сайта
Как минимум, измените и добавьте выделенные строки внутри <VirtualHost *:80> и тегов </VirtualHost>.
Обратите внимание, что ServerAlias — это альтернативное имя вашего домена. В большинстве случаев перед именем домена указывают www, чтобы сайт открывался как по адресу с www, так и без него (ServerName).
vim /etc/apache2/sites-available/domain.com.conf

Снова сохраните и закройте файл с помощью wq. Повторите этот процесс для файла domain2.com.conf ; не забудьте обновить ServerName, ServerAlias, и DocumentRoot для второго домена.
Читайте также: “Apache vs NGINX”
Шаг 6: Активация файла конфигурации
По умолчанию сервер читает файл 000-default.conf. Но на предыдущем шаге мы создали новый конфигурационный файл для каждого домена. Поэтому нужно отключить файл по умолчанию и активировать подходящий файл для новой конфигурации.
a2dissite 000-default.conf
Чтобы сервер направлял запросы на ваши домены, включите каждый из созданных .conf файлов.
a2ensite domain.com.conf
a2ensite domain2.com.conf
Теперь перезапустим Apache, чтобы применить внесённые изменения.
systemctl restart apache2
Шаг 7: Проверка конфигураций Apache
После запуска Apache можно проверить, что конфигурация работает, отредактировав файл /etc/host на вашем компьютере или DNS вашего домена.
После настройки каждого параметра можно открыть сайт в браузере и проверить страницы index.html, созданные на шаге 3.
Читайте также: Локальная инфраструктура vs. облако
Несколько сайтов на одном сервере: IIS
На одном IIS (Internet Information Services) сервере можно размещать десятки и даже сотни сайтов. IIS умеет обслуживать несколько сайтов одновременно, принимая запросы на одном и том же порту TCP. При этом интерфейс IIS Manager позволяет добавить новый сайт без привязки к другому порту, например 8080. В этом разделе объясняется, как разместить несколько сайтов на одном IIS-сервере и привязать их к одному порту и IP-адресу или к разным IP-адресам.
Как установить IIS на сервер Windows?
При установке IIS на Windows создаётся пустой Default Website, который прослушивает стандартный веб-порт HTTP – TCP 80. Технически это означает, что сайт привязан к порту TCP/80. Чтобы открыть его в браузере, нужно ввести имя IIS-сервера («http://web-srv1») или его IP-адрес («http://192.168.1.100»).
Шаг 1: привязка сайта в IIS
IIS-сервер на базе Windows Server позволяет размещать несколько сайтов. Однако IIS корректно распределяет HTTP-запросы только в том случае, если каждый сайт идентифицируется уникальным сочетанием параметров. Для этого у каждого сайта в IIS есть три атрибута, образующих уникальную комбинацию:
- номер порта TCP
- IP-адрес
- заголовок Host (имя хоста)
Данные о размещённых сайтах хранятся в атрибуте ServerBindings конфигурации IIS Metabase и имеют следующий формат: IP:Порт:Имя хоста. Чтобы разместить несколько сайтов на одном сервере с одинаковым портом и IP-адресом, необходимо использовать уникальный заголовок Host.
Что такое заголовок Host? Это часть HTTP-запроса к серверу, указывающая, какому сайту адресован запрос. Поэтому заголовок Host нужно указать и на стороне веб-сервера. Убедитесь, что в DNS есть корректная запись, связывающая имя хоста с IP-адресом IIS-сервера.
Предположим, у вас уже есть сайт, работающий на IIS-сервере и прослушивающий порт 80. Как привязать второй сайт к тому же порту?
Шаг 2: привязка второго сайта в IIS
В Internet Information Services (IIS) Manager создайте новый сайт через окно Add Website и назовите его TestSite. Файлы сайта будут располагаться в C:\inetpub\TestSite. На этом этапе имя хоста указывать не нужно.
После копирования содержимого сайта в C:\inetpub\TestSite откройте диспетчер служб IIS (Internet Information Services Manager) и в разделе имени хоста сервера добавьте сайт с помощью мастера настройки.


После нажатия кнопки «ОК» появится предупреждение о том, что нельзя использовать binding *:80 для обоих сайтов одновременно.


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

Windows VPS Хостинг
Ознакомьтесь с нашими доступными тарифами Windows VPS: мощное железо, минимальная задержка и бесплатный Windows на ваш выбор!
Получите бесплатный WindowsРазмещение нескольких сайтов на IIS-сервере с помощью заголовков хоста
Для второго сайта IIS необходимо задать отдельное имя хоста (Host Name), чтобы привязка была уникальной. Для этого щёлкните правой кнопкой мыши по TestSite и выберите Изменить Bindings. Выберите нужную привязку и нажмите Изменить.
Как видно на изображении ниже, нужно указать уникальное имя хоста, по которому пользователь будет обращаться к сайту. В этом руководстве мы используем TestSite — введите его в поле Hostname.

Для настройки привязки сайта IIS можно воспользоваться командной строкой. На IIS 7 и выше после выполнения команды вы увидите примерно следующее:
C:\Windows\System32\inetsrv\appcmd.exe set site /site.name:testsite /+bindings.[protocol='http',bindingInformation='*:80:testsite']
Второй сайт запускается так же, как и первый.

На этом этапе необходимо добавить псевдоним DNS для сервера (запись A или CNAME), указывающий на IP-адрес или имя хоста вашего веб-сервера IIS. Если вы используете домен Active Directory, записи DNS нужно создать на контроллере домена. IIS позволяет создать CNAME запись для имени TestSite в консоли DNS (dnsmgmt.msc) и указать доменное имя вашего IIS-сервера в качестве целевого FQDN-хоста.

Эту же запись DNS можно создать через PowerShell следующей командой:
Add-DnsServerResourceRecordCName -HostNameAlias web-srv1.woshub.com -Name testsite -ZoneName woshub.com
Попробуем открыть http://TestSite в браузере. Если всё сделано правильно, страница должна открыться без ошибок.

Хостинг Linux без лишних сложностей
Хотите удобнее размещать сайты и веб-приложения? Разрабатываете что-то новое? Просто не нравится Windows? Именно для этого у нас есть Linux VPS.
Получите свой Linux VPSЗапуск нескольких сайтов с разными IP-адресами на IIS-сервере
Теперь рассмотрим запуск двух сайтов на веб-сервере IIS с разными IP-адресами. Для начала нужно добавить отдельный интерфейс VLAN на сервер Windows или назначить дополнительный 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
Теперь необходимо создать запись A для нового сайта на сервере DNS:
Add-DnsServerResourceRecordA -Name NewSite3 -IPv4Address 192.168.13.101 -ZoneName woshub.com -TimeToLive 01:00:00 –CreatePtr
Остаётся открыть настройки привязки сайта и привязать его к дополнительному IP-адресу хоста. Управлять привязками сайтов на IIS-сервере можно через PowerShell. Для этого используется модуль WebAdministration:
Import-Module WebAdministration
Вы можете просмотреть информацию обо всех доступных сайтах IIS и их привязках:
Get-IISSite
Или только об одном сайте:
(Get-Website -Name NewSite).bindings.Collection

Используйте следующую команду для изменения привязки сайта. Она позволяет поменять IP-адрес, порт или имя:
Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:80:NewSite1" -PropertyName 'Port' -Value '8080'
Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:8080:NewSite1" -PropertyName 'IPAddress' -Value '192.168.13.100'
Чтобы добавить новую привязку к конкретному сайту IIS, выполните команду:
New-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:" -Protocol http
Удаление привязки выполняется следующей командой:
Remove-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:"
Как видно из примеров, на веб-сервере IIS можно одновременно запускать несколько сайтов как на разных IP-адресах, так и на одном IP-адресе с одним номером порта TCP.
Итог: размещение нескольких сайтов на одном сервере
В этой статье мы разобрали основные принципы работы серверов и показали, как разместить несколько сайтов на одном сервере. Cloudzy предлагает различные решения для Linux VPS хостинга, которые позволяют запускать несколько сайтов на одном сервере. Тарифы Cloudzy снижают затраты на содержание нескольких серверов, а наши услуги легко адаптировать под ваши задачи. Кроме того, вы можете в любой момент расширить ресурсы сервера: RAM, дисковое пространство, процессор и пропускную способность.
Часто задаваемые вопросы
Можно ли разместить несколько сайтов на одном веб-хостинге?
Если у вас мощный сервер с достаточным объёмом HDD, RAM и вычислительной мощностью CPU, вы можете размещать несколько сайтов с помощью виртуального хостинга. Количество сайтов на одном веб-сервере при этом не ограничено.
Как запустить два сайта на одном сервере?
Размещение нескольких сайтов на одном веб-сервере называется виртуальным хостингом. При этом важно убедиться, что выбранный сервер располагает достаточными ресурсами для обработки трафика и хранения данных.
Для чего используется сервер VPS?
VPS — это услуга хостинга, которая предоставляет выделенные (приватные) ресурсы на сервере. В отличие от общего хостинга, где дисковое пространство делится между пользователями, VPS обеспечивает более высокий уровень безопасности и стабильности.
Зачем люди используют VPS?
VPS-хостинг получил широкое распространение, поскольку стоит дешевле выделенного сервера и при этом превосходит общий хостинг по надёжности, безопасности и производительности.