Коли ви отримаєте доступ до онлайн-хостингу, ви, ймовірно, захочете дізнатися, як розмістити кілька веб-сайтів на одному сервері. Хоча це може здатися складним, зі зростанням вашого розуміння цієї теми ви зрозумієте, що це можна зробити з допомогою технічних посібників.
Різні веб-сервери можуть надати вам безплатні, відкриті та широко використовувані сервіси у всьому світі. Однак перш ніж ми пояснимо, як розмістити кілька веб-сайтів на одному сервері, нам потрібно розуміти, що таке веб-сервер і як він працює.
- Що таке веб-сервер?
- Розміщення кількох веб-сайтів на одному сервері: Apache
- Крок 1: Створіть каталог для кожного сайту
- Крок 2: Встановіть дозволи папки
- Крок 3: Налаштування стартової сторінки
- Крок 4: Копіювання файлу конфігурації для кожного сайту
- Крок 5: Редагування файлу конфігурації для кожного сайту
- Крок 6: Активуйте ваш файл конфігурації
- Крок 7: Перевірка конфігурацій Apache
- Розміщення кількох веб-сайтів на одному сервері: IIS
- Запуск кількох сайтів з різними IP-адресами на сервері IIS
- Фінальна думка: розміщення кількох веб-сайтів на одному сервері
- Часто задавані питання
Що таке веб-сервер?
Вебсервер зберігає й надає контент — текст, зображення, відео та дані додатків для сайту. Іншими словами, клієнти, що запитують цей контент, можуть його використовувати завдяки вебсерверам. Найбільш типовий клієнт — браузер, який запитує дані з вашого сайту, коли користувач клацає на посилання або завантажує файл.
Вебсервер обмінюється даними через Протокол передачі гіпертексту (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, так і без 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) для десятків або навіть сотень веб-сайтів. Ви можете розміщати на ньому кілька сайтів, які слухають та відповідають на одному й тому самому TCP портОднак інтерфейс IIS Manager показує, що ви можете розміщувати інший веб-сайт без прив'язки його до іншого порту, як-от 8080. У цьому розділі пояснюється, як розміщувати кілька веб-сайтів на одному сервері IIS та прив'язувати їх до одного порту та IP-адреси або до різних IP-адрес.
Як встановити IIS на сервер Windows?
Коли ви встановлюєте IIS на Windows, створюється порожній веб-сайт за замовчуванням, який прослуховує стандартний веб-порт HTTP – TCP 80Технічно наш сайт прив'язаний до порту TCP 80. Ми повинні ввести назву сервера IIS («http://web-srv1») або його IP-адресу («http://192.168.1.100») у браузер, щоб відкрити цей сайт.
Крок 1: прив'язування веб-сайту IIS
Веб-сервер IIS, запущений на сервері Windows, допомагає розміщувати кілька веб-сайтів. Однак IIS розподіляє запити HTTP коректно тільки якщо кожен веб-сайт можна ідентифікувати унікальним значенням. Веб-сайт IIS включає три атрибути, які утворюють унікальну комбінацію для кожного сайту. Ці атрибути перелічені тут:
- номер порту TCP
- IP-адреса
- заголовок хоста (ім'я хоста)
Інформація про розміщені веб-сайти зберігається у ServerBindings атрибуті Metabase IIS, і його формат виглядає так: IP:Порт:Ім'я хостаОтже, якщо ви хочете розміщувати кілька веб-сайтів на одному сервері (один порт та одна IP-адреса), ви повинні використовувати унікальний заголовок хоста.
Ви можете запитати, що таке заголовок хоста? Заголовок хоста – це частина запиту HTTP до сервера, яка визначає, до якого веб-сайту він адресований. Тому ми повинні вказати цей заголовок хоста на стороні веб-сервера. Зауважте, що DNS має правильний запис, який відповідає імені хоста та IP-адресі веб-сервера IIS.
Припустимо, у вас є веб-сайт, запущений на сервері IIS та що прослуховує порт 80. Що робити, коли ми хочемо прив'язати другий веб-сайт до того ж порту?
Крок 2: прив'язування другого веб-сайту IIS
У Internet Information Service (IIS) Manager потрібно створити ще один веб-сайт за допомогою вікна Add Website та назвати його TestSite; цей веб-сайт буде розміщений у C:\inetpub\TestSite. Зверніть увагу на те, щоб поки що не вказувати ім'я хоста.
Після копіювання вмісту сайту в C:\inetpub\TestSite відкрийте Internet Information Service (IIS) Manager і додайте сайт до імені хоста сервера, щоб відкрити майстер для вас.


Після натискання Ok ви побачите повідомлення про попередження, яке говорить, що ви не можете використовувати binding *:80 для обох цих веб-сайтів.


Після того як ви погодитесь з цим попередженням, у вас буде ще один сайт, прив'язаний до порту 80. Таким чином, ви не можете його запустити, не зупинивши перший веб-сайт. Ви можете краще зрозуміти це, звернувши увагу на наступне зображення.

Windows VPS Хостинг
Ознайомтеся з нашими доступними тарифами Windows VPS: потужне залізо, мінімальна затримка та безкоштовний Windows на ваш вибір!
Отримати безкоштовний WindowsРозміщення кількох веб-сайтів на сервері IIS за допомогою заголовків хостів
Ви повинні вибрати іншу назву (Host Name) для другого веб-сайту IIS, щоб створити унікальну прив'язку. Для цього натисніть правою кнопкою миші TestSite та виберіть Редагувати Bindings. Виберіть потрібну прив'язку та натисніть Редагувати.
Як видно на наступному зображенні, вам потрібно вказати унікальне ім'я хоста, яке вводить користувач. У цьому посібнику ми використовуємо TestSite; тому введіть його у поле Hostname.

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

На цьому етапі ви повинні додати alias 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-адресу (alias) сетевій картці.
У цьому посібнику сервер має основну IP-адресу 192.168.13.100, і ми додамо alias 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.
Фінальна думка: розміщення кількох веб-сайтів на одному сервері
Цю статтю присвячено основним концепціям серверів і тому, як розміщувати кілька веб-сайтів на одному сервері. Ми пропонуємо різноманітні Linux VPS рішення для хостингу, які можна використовувати для запуску різних веб-сайтів на одному сервері. Плани Cloudzy зменшують вартість утримання кількох серверів, але ви також можете повною мірою використовувати наші послуги. Крім того, ви легко можете розширити ресурси вашого сервера, включаючи RAM, дисковий простір, процесор та пропускну здатність.
Часто задавані питання
Чи можна мати кілька веб-сайтів на одному веб-хостингу?
Якщо у вас є потужний сервер з достатніми ресурсами, такими як дисковий простір HDD, RAM та обчислювальна потужність CPU, ви можете розміщувати кілька веб-сайтів за допомогою віртуального хостингу. На вашому веб-сервері можна розміщувати необмежену кількість веб-сайтів.
Як ми можемо запустити два веб-сайти на одному сервері?
Розміщення кількох веб-сайтів на одному веб-сервері називається віртуальним сервером. Крім того, переконайтеся, що вибраний сервер має достатньо ресурсів для обробки трафіку та вимог до дискового простору.
Для чого використовується сервер VPS?
VPS - це послуга хостингу, яка надає вам виділені (приватні) ресурси на сервері. Звертайте увагу на те, що VPS є більш безпечним та стабільним рішенням, ніж спільний хостинг, який не надає вам виділеного дискового простору.
Чому люди використовують VPS?
VPS хостинг став широко поширеним вибором, оскільки він зазвичай дешевший за виділений хостинг, але забезпечує кращу надійність, безпеку та продуктивність порівняно зі спільним хостингом.