Знижка 50% усі тарифи, обмежений час. Починаючи від $2.48/mo
13 хвилин залишилось
Веб- і бізнес-додатки

Розміщення кількох сайтів на одному сервері (Apache і IIS) 🌐

Ліллі Карнелл By Ліллі Карнелл Читання за 13 хвилин Оновлено 18 вересня 2023
Розміщення кількох сайтів на одному сервері (Apache і IIS) 🌐

Коли ви отримаєте доступ до онлайн-хостингу, ви, ймовірно, захочете дізнатися, як розмістити кілька веб-сайтів на одному сервері. Хоча це може здатися складним, зі зростанням вашого розуміння цієї теми ви зрозумієте, що це можна зробити з допомогою технічних посібників.

Різні веб-сервери можуть надати вам безплатні, відкриті та широко використовувані сервіси у всьому світі. Однак перш ніж ми пояснимо, як розмістити кілька веб-сайтів на одному сервері, нам потрібно розуміти, що таке веб-сервер і як він працює.

Зміст таблиці

Що таке веб-сервер?

Вебсервер зберігає й надає контент — текст, зображення, відео та дані додатків для сайту. Іншими словами, клієнти, що запитують цей контент, можуть його використовувати завдяки вебсерверам. Найбільш типовий клієнт — браузер, який запитує дані з вашого сайту, коли користувач клацає на посилання або завантажує файл.

Вебсервер обмінюється даними через Протокол передачі гіпертексту (HTTP) з браузером. Вміст більшості вебсторінок кодується мовою Hypertext Markup Language (HTML). Контент може бути статичним (текст, зображення) або динамічним (наприклад, список товарів у кошику). Більшість вебсерверів підтримують скрипти на стороні сервера для кодування бізнес-логіки та надання динамічного контенту. Зазвичай підтримуються мови як Active Server Pages (ASP), JavaScript, PHP, Python та Ruby.

Як працює веб-сервер?

Вебсервери працюють за принципом клієнт-сервер моделі. У цій стандартній архітектурі клієнт запитує ресурс або послугу у сервер.

Вебсервер проходить кілька кроків, щоб обробити запит від клієнта:

  1. Коли користувач хоче завантажити контент на сайт, браузер запитує доступ (HTTP запит) через інтернет.
  2. Браузер знаходить IP-адресу запитаного сайту. Він перекладає URL вебсторінки за допомогою Система імен доменів (DNS) або шукає в своєму кеші. Цей процес допомагає локалізувати вебсервер — місце, де розташовані файли сайту.
  3. На цьому етапі вебсервер отримує запит HTTP і обробляє його через HTTP сервер.
  4. Як тільки сервер HTTP прийме запит, він пошукає файли на сервері, щоб отримати потрібні дані.
  5. Вебсервер повертає файли сайту в браузер, який надіслав запит. Після цього користувач бачить вміст сайту.

Однак, якщо сервер 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 і додайте сайт до імені хоста сервера, щоб відкрити майстер для вас.

hostwebsites.png

додати-новий-сайт-iis
Вікно Add Website

 

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

додати вебсайт

прив'язка порту 80 призначена іншому веб-сайту
Перевірити прив'язку

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

4 Призначення різних портів прив'язування для веб-сайтів
Призначення різних портів прив'язки для веб-сайтів

windows-original-vps Windows VPS Хостинг

Ознайомтеся з нашими доступними тарифами Windows VPS: потужне залізо, мінімальна затримка та безкоштовний Windows на ваш вибір!

Отримати безкоштовний Windows

Розміщення кількох веб-сайтів на сервері IIS за допомогою заголовків хостів

Ви повинні вибрати іншу назву (Host Name) для другого веб-сайту IIS, щоб створити унікальну прив'язку. Для цього натисніть правою кнопкою миші TestSite та виберіть Редагувати Bindings. Виберіть потрібну прив'язку та натисніть Редагувати.

Як видно на наступному зображенні, вам потрібно вказати унікальне ім'я хоста, яке вводить користувач. У цьому посібнику ми використовуємо TestSite; тому введіть його у поле Hostname.

test-iis-site-binding
Вікно редагування прив'язки сайту

Ви можете використовувати командний рядок для налаштування прив'язки сайту IIS. Якщо у вас IIS 7 або новіша версія, після виконання команди для налаштування прив'язки сайту IIS ви побачите щось на кшталт цього:

C:\Windows\System32\inetsrv\appcmd.exe set site /site.name:testsite /+bindings.[protocol='http',bindingInformation='*:80:testsite']

Аналогічно першому веб-сайту, ви можете запустити й другий.

start-iis-site
Керування веб-сайтами

На цьому етапі ви повинні додати alias DNS для сервера (A або CNAME), що вказує на IP-адресу або ім'я хоста вашого веб-сервера IIS. Якщо ви використовуєте домен Active Directory, вам потрібно створити записи DNS на контролері домену. IIS дозволяє вам створити CNAME запис для імені TestSite у консолі DNS (dnsmgmt.msc) та встановити ім'я домену вашого сервера IIS як цільовий FQDN.

створення запису CNAME для імені TestSite у консолі DNS
створення запису CNAME для імені TestSite у консолі DNS

Ви також можете створити цей запис DNS через PowerShell за допомогою такої команди:

Add-DnsServerResourceRecordCName -HostNameAlias web-srv1.woshub.com -Name testsite -ZoneName woshub.com

Спробуємо відкрити http://TestSite у браузері. Якщо все зроблено правильно, він повинен відкритися без проблем.

кілька-iis-сайтів-на-одному-80-http-порту
Кінцевий результат testsite

 

linux-vps Хостинг на 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

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 хостинг став широко поширеним вибором, оскільки він зазвичай дешевший за виділений хостинг, але забезпечує кращу надійність, безпеку та продуктивність порівняно зі спільним хостингом.

Поділитися

Ще з блогу

Читайте далі.

Зображення для огляду Odoo: великий заголовок ліворуч і логотип Odoo праворуч, на тлі м'якого фіолетового хмарного фону з панелями інтерфейсу застосунку.
Веб- і бізнес-додатки

Повний огляд Odoo: чи підходить Odoo як ERP для вашого бізнесу

Odoo - одна з найбільш розглянутих ERP-платформ для бізнесу, що зростає, і причина проста: вона обіцяє закрити багато потреб в одному місці. Продажі, бухгалтерія, складський облік

Джим ШварцДжим Шварц 11 хв читання
Зображення для статті про відкриті альтернативи WordPress: барвистий градієнтний фон, монітор, редактор коду, розмитий попередній перегляд дашборду та великий заголовок ліворуч.
Веб- і бізнес-додатки

Найкращі відкриті альтернативи WordPress для розробників

WordPress залишається актуальним і добре справляється з широким спектром сайтів. У каталозі плагінів налічується понад 62 000 плагінів, а в каталозі тем - понад 14 000 безплатних тем. Tha

Джим ШварцДжим Шварц 14 хв читання
Зображення для порівняння Automad і WordPress: логотипи обох платформ і заголовок із запитанням, яку CMS обрати розробникам.
Веб- і бізнес-додатки

Automad проти WordPress: детальне порівняння двох провідних CMS-платформ

Automad та WordPress вирішують одне й те саме завдання двома принципово різними способами. Automad — це CMS на основі файлів і рушій шаблонів: контент зберігається у файлах, а не в базі даних. Натомість WordPress,

Джим ШварцДжим Шварц 9 хв читання

Готові до розгортання? З $2.48/міс.

Незалежна хмара з 2008 року. AMD EPYC, NVMe, 40 Gbps. Повернення коштів протягом 14 днів.