bolt Valebyte VPS від $4/міс — NVMe, запуск за 60 секунд.

Отримати VPS arrow_forward
eco Початковий Туторіал

Хостинг кількох сайтів на виділеному сервері з Nginx

calendar_month Jun 28, 2026 schedule 9 хв. читання visibility 13 переглядів
Host Multiple Websites on Your Dedicated Server with Nginx
info

Потрібен сервер для цього гайду? Ми пропонуємо виділені сервери та VPS у 50+ країнах з миттєвим налаштуванням.

Використання всієї потужності виділеного сервера забезпечує неперевершений контроль, продуктивність та масштабованість. Один з найпоширеніших та найефективніших способів максимізувати цей потенціал — це розміщення кількох веб-сайтів на одній машині. Цей посібник проведе вас через налаштування Nginx для обслуговування кількох доменів з вашого виділеного сервера Valebyte, забезпечуючи оптимальну роботу кожного сайту.

Потрібен сервер для цього гайду?

Розгорніть VPS або виділений сервер за хвилини.

Навіщо розміщувати кілька вебсайтів на виділеному сервері?

Виділені сервери надають ексклюзивний доступ до всіх своїх ресурсів — CPU, RAM, сховища та пропускної здатності мережі. Це різко контрастує зі спільним хостингом, де ресурси розподіляються між багатьма користувачами, або навіть VPS, який, хоча й пропонує більшу ізоляцію, все ще віртуалізує апаратне забезпечення. Для бізнесу, розробників та системних адміністраторів виділений сервер від Valebyte пропонує:

  • Неперевершена продуктивність: Відсутність "шумних сусідів", які конкурують за ресурси, означає стабільну, високошвидкісну продуктивність для всіх ваших сайтів. Ідеально підходить для вебдодатків з високим трафіком, інтернет-магазинів та сервісів, що інтенсивно використовують дані.
  • Покращена безпека: Повний контроль над середовищем вашого сервера дозволяє налаштовувати конфігурації безпеки, брандмауери та моніторинг відповідно до ваших конкретних потреб, зменшуючи ризики вразливості.
  • Повний контроль та гнучкість: Встановлюйте будь-яке програмне забезпечення, налаштовуйте будь-які параметри та оптимізуйте своє середовище саме так, як вам потрібно. Це критично важливо для складних налаштувань, таких як власні вебдодатки, CI/CD конвеєри або спеціалізовані ігрові сервери, які також можуть вимагати вебінтерфейсів.
  • Ефективність витрат: Для зростаючого портфоліо вебсайтів або додатків консолідація їх на одному потужному виділеному сервері може бути більш економічно вигідною, ніж керування кількома меншими тарифними планами хостингу.
  • Масштабованість: Легко оновлюйте апаратні компоненти або додавайте більше виділених серверів у міру зростання ваших потреб, забезпечуючи зростання вашої інфраструктури разом з вашим бізнесом.

Незалежно від того, чи керуєте ви набором бізнес-вебсайтів, керуєте клієнтськими проєктами, розміщуєте популярний ігровий сервер з веб-інтерфейсом або розробляєте кілька додатків, виділений сервер з Nginx є чудовим вибором для ефективного використання ресурсів.

Передумови та вимоги до сервера

Перш ніж ми почнемо налаштовувати Nginx, переконайтеся, що у вас є наступне:

  • Виділений сервер Valebyte: З root або sudo доступом.
  • Операційна система: Дистрибутив Linux (наприклад, Ubuntu 22.04 LTS, Debian 11, CentOS 8 Stream). Цей посібник використовуватиме приклади Ubuntu 22.04 LTS, але команди значною мірою схожі для інших систем на базі Debian.
  • Встановлений Nginx: Якщо Nginx ще не встановлено, ми розглянемо його встановлення.
  • Зареєстровані доменні імена: Вам знадобиться щонайменше два доменних імені (наприклад, example1.com та example2.com), які ви бажаєте розмістити.
  • Конфігурація DNS: Записи A для ваших доменних імен (наприклад, example1.com, www.example1.com, example2.com, www.example2.com) повинні вказувати на публічну IP-адресу вашого виділеного сервера. Зміни DNS можуть зайняти кілька годин для глобального поширення.
  • Базове знайомство з командним рядком: Впевнене використання SSH та базових команд Linux.

Покроковий посібник: Налаштування кількох вебсайтів за допомогою Nginx

Крок 1: Підключіться до свого сервера та оновіть систему

Спочатку підключіться до свого виділеного сервера Valebyte через SSH:

ssh username@your_server_ip

Після входу оновіть список пакетів вашої системи та оновіть усі наявні пакети, щоб переконатися, що у вас є останні виправлення безпеки та програмне забезпечення:

sudo apt update
sudo apt upgrade -y

Крок 2: Встановіть Nginx (якщо ще не встановлено)

Якщо Nginx ще не встановлено на вашому сервері, встановіть його:

sudo apt install nginx -y

Після встановлення Nginx повинен запуститися автоматично. Ви можете перевірити його статус:

sudo systemctl status nginx

Ви повинні побачити вивід, що вказує на те, що Nginx є active (running). Якщо ні, запустіть та увімкніть його:

sudo systemctl start nginx
sudo systemctl enable nginx

Переконайтеся, що ваш брандмауер (наприклад, UFW) дозволяє трафік HTTP (порт 80) та HTTPS (порт 443):

sudo ufw allow 'Nginx HTTP'
sudo ufw allow 'Nginx HTTPS'
sudo ufw enable

Крок 3: Створіть кореневі каталоги документів для кожного вебсайту

Nginx обслуговує файли з певних каталогів, відомих як кореневі каталоги документів. Рекомендується створювати окремий каталог для кожного вебсайту. Ми будемо використовувати /var/www/ як базовий каталог.

Давайте створимо каталоги для двох прикладів вебсайтів: example1.com та example2.com. Замініть їх на ваші фактичні доменні імена.

sudo mkdir -p /var/www/example1.com/html
sudo mkdir -p /var/www/example2.com/html

Призначте право власності на ці каталоги користувачу та групі www-data, які Nginx використовує для обслуговування файлів. Це гарантує, що Nginx має необхідні дозволи.

sudo chown -R www-data:www-data /var/www/example1.com
sudo chown -R www-data:www-data /var/www/example2.com

Встановіть відповідні дозволи для каталогів:

sudo chmod -R 755 /var/www/example1.com
sudo chmod -R 755 /var/www/example2.com

Крок 4: Створіть зразки індексних файлів для тестування

Щоб легко перевірити, чи кожен вебсайт обслуговується правильно, створіть простий файл index.html у кожному кореневому каталозі документа.

Для example1.com:

echo "<!DOCTYPE html><html><head><title>Welcome to Example 1</title></head><body><h1>Hello from Example 1!</h1><p>This is the first website on your Valebyte dedicated server.</p></body></html>" | sudo tee /var/www/example1.com/html/index.html

Для example2.com:

echo "<!DOCTYPE html><html><head><title>Welcome to Example 2</title></head><body><h1>Greetings from Example 2!</h1><p>This is the second website on your Valebyte dedicated server.</p></body></html>" | sudo tee /var/www/example2.com/html/index.html

Крок 5: Налаштуйте блоки сервера Nginx (віртуальні хости)

Nginx використовує "блоки сервера" (подібні до віртуальних хостів Apache) для визначення конфігурацій для окремих вебсайтів. Ці файли зазвичай зберігаються в /etc/nginx/sites-available/, а потім символічно пов'язуються з /etc/nginx/sites-enabled/ для їх активації.

Створіть конфігурацію для example1.com

Відкрийте новий файл для example1.com за допомогою текстового редактора, такого як Nano:

sudo nano /etc/nginx/sites-available/example1.com.conf

Вставте наступну конфігурацію, замінивши example1.com на ваше доменне ім'я:

server {
    listen 80;
    listen [::]:80;

    root /var/www/example1.com/html;
    index index.html index.htm index.nginx-debian.html;

    server_name example1.com www.example1.com;

    location / {
        try_files $uri $uri/ =404;
    }

    error_log /var/log/nginx/example1.com_error.log;
    access_log /var/log/nginx/example1.com_access.log;
}

Пояснення директив:

  • listen 80; та listen [::]:80;: Nginx прослуховує вхідні з'єднання на порту 80 як для IPv4, так і для IPv6.
  • root /var/www/example1.com/html;: Вказує кореневий каталог документа для цього вебсайту.
  • index index.html ...;: Визначає порядок, у якому Nginx шукає індексні файли.
  • server_name example1.com www.example1.com;: Вказує Nginx, на які доменні імена повинен відповідати цей блок сервера. Критично важливо для розміщення кількох сайтів.
  • location / { ... }: Визначає, як Nginx обробляє запити на файли, які не знайдено безпосередньо. try_files намагається обслужити запитуваний URI, потім URI як каталог, і нарешті повертає помилку 404.
  • error_log та access_log: Власні файли журналів для кожного сайту, що полегшує усунення несправностей та моніторинг.

Збережіть та закрийте файл (Ctrl+X, Y, Enter у Nano).

Створіть конфігурацію для example2.com

Повторіть процес для вашого другого домену:

sudo nano /etc/nginx/sites-available/example2.com.conf

Вставте конфігурацію, налаштувавши її для example2.com:

server {
    listen 80;
    listen [::]:80;

    root /var/www/example2.com/html;
    index index.html index.htm index.nginx-debian.html;

    server_name example2.com www.example2.com;

    location / {
        try_files $uri $uri/ =404;
    }

    error_log /var/log/nginx/example2.com_error.log;
    access_log /var/log/nginx/example2.com_access.log;
}

Збережіть та закрийте файл.

Крок 6: Увімкніть блоки сервера та перезапустіть Nginx

Щоб активувати ваші нові блоки сервера, створіть символічні посилання з sites-available на sites-enabled:

sudo ln -s /etc/nginx/sites-available/example1.com.conf /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/example2.com.conf /etc/nginx/sites-enabled/

Часто корисно видалити стандартний блок сервера Nginx, щоб уникнути конфліктів або обслуговування небажаного вмісту:

sudo rm /etc/nginx/sites-enabled/default

Перед перезапуском Nginx завжди перевіряйте конфігурацію на наявність синтаксичних помилок:

sudo nginx -t

Ви повинні побачити вивід, подібний до:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Якщо помилок немає, перезапустіть Nginx, щоб застосувати зміни:

sudo systemctl restart nginx

Крок 7: Налаштуйте записи DNS

Цей крок є вирішальним і повинен бути виконаний через вашого реєстратора доменів або службу керування DNS. Для кожного домену (example1.com та example2.com) вам потрібно створити або змінити наступні записи A:

  • Запис A для кореневого домену (наприклад, example1.com), що вказує на IP-адресу вашого виділеного сервера.
  • Запис A для субдомену www (наприклад, www.example1.com), що також вказує на IP-адресу вашого виділеного сервера.

Зміни DNS можуть зайняти від кількох хвилин до 48 годин для повного поширення в Інтернеті. Ви можете використовувати онлайн-інструменти, такі як DNS Checker, для моніторингу поширення.

Крок 8: Протестуйте свої вебсайти

Після завершення поширення DNS відкрийте свій веббраузер і перейдіть на http://example1.com та http://example2.com. Ви повинні побачити відповідні повідомлення "Hello from Example 1!" та "Greetings from Example 2!".

Ви також можете протестувати з командного рядка вашого сервера за допомогою curl, явно встановивши заголовок Host для імітації запиту браузера:

curl -H "Host: example1.com" http://localhost
curl -H "Host: example2.com" http://localhost

Або, після поширення DNS:

curl http://example1.com
curl http://example2.com
rocket_launch Швидкий вибір

Need a dedicated server?

Compare prices from top providers. Configure and order in minutes.

Виділені сервери arrow_forward

Розширені міркування щодо хостингу на виділеному сервері

SSL/TLS з Let's Encrypt

Для безпечного зв'язку всі сучасні вебсайти повинні використовувати HTTPS. Let's Encrypt надає безкоштовні сертифікати SSL/TLS, а Certbot автоматизує процес. Встановіть Certbot для Nginx:

sudo apt install certbot python3-certbot-nginx -y

Потім запитайте та налаштуйте сертифікати для ваших доменів:

sudo certbot --nginx -d example1.com -d www.example1.com -d example2.com -d www.example2.com

Certbot проведе вас через процес, змінить ваші конфігурації Nginx та налаштує автоматичне поновлення.

Інтеграція з PHP-FPM

Якщо ваші вебсайти працюють на PHP-додатках (таких як WordPress, Laravel тощо), вам знадобиться PHP-FPM (FastCGI Process Manager). Встановіть його разом із поширеними розширеннями PHP:

sudo apt install php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip -y

Потім змініть блок сервера Nginx, щоб передавати PHP-запити до PHP-FPM. Додайте блок location ~ \.php$:

server {
    # ... інші директиви ...

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock; # Налаштуйте версію PHP, якщо вона відрізняється
    }

    # ... інші директиви ...
}

Не забудьте перезапустити Nginx та PHP-FPM після змін:

sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx

Найкращі практики безпеки

  • Брандмауер (UFW): Тримайте відкритими лише необхідні порти (22 для SSH, 80 для HTTP, 443 для HTTPS).
  • Регулярні оновлення: Підтримуйте свою ОС та Nginx в актуальному стані.
  • Надійні паролі/ключі SSH: Використовуйте надійні, унікальні паролі та ключі SSH для доступу до сервера.
  • Обмеження швидкості (Rate Limiting): Використовуйте модуль limit_req Nginx для захисту від DDoS-атак для сайтів з високим трафіком.
  • Fail2Ban: Встановіть Fail2Ban для автоматичного блокування IP-адрес з надто великою кількістю невдалих спроб входу.

Моніторинг та ведення журналів

Виділені сервери надають повний доступ до журналів. Регулярно перевіряйте журнали доступу та помилок Nginx (наприклад, /var/log/nginx/example1.com_access.log та /var/log/nginx/example1.com_error.log) для отримання інформації про трафік та проблеми. Розгляньте інструменти, такі як Logrotate, для керування розмірами файлів журналів та Prometheus/Grafana для розширеного моніторингу.

Усунення поширених проблем

Навіть при ретельному налаштуванні можуть виникнути проблеми. Ось поширені проблеми та їх вирішення:

1. Синтаксичні помилки конфігурації Nginx

Симптом: Nginx не вдається перезапустити, або nginx -t повідомляє про помилки. Рішення: Команда nginx -t — ваш найкращий друг. Вона точно вкаже файл та номер рядка синтаксичної помилки. Уважно перегляньте вказаний рядок на наявність друкарських помилок, відсутніх крапок з комою, неправильних директив або незакритих дужок.

2. Вебсайти не завантажуються або показують стандартну сторінку Nginx

Симптом: Браузер показує помилку 404, загальну вітальну сторінку Nginx або інший вебсайт, ніж очікувалося. Рішення:

  • Поширення DNS: Перевірте, чи записи A вашого домену правильно вказують на IP-адресу вашого виділеного сервера. Використовуйте dig example1.com або онлайн-перевірки DNS.
  • Невідповідність імені сервера: Двічі перевірте директиву server_name у вашій конфігурації Nginx. Вона повинна точно відповідати запитуваним доменним іменам.
  • Символічні посилання: Переконайтеся, що символічні посилання в /etc/nginx/sites-enabled/ правильно вказують на ваші файли конфігурації в /etc/nginx/sites-available/.
  • Стандартний блок сервера: Якщо ви бачите стандартну сторінку Nginx, можливо, ви не видалили або неправильно налаштували стандартний блок сервера (/etc/nginx/sites-enabled/default).
  • Перезапуск Nginx: Завжди перезапускайте Nginx після внесення змін до конфігурації (sudo systemctl restart nginx).

3. Проблеми з дозволами (403 Forbidden)

Симптом: Браузер показує помилку '403 Forbidden'. Рішення: Це зазвичай означає, що Nginx не має дозволу на читання файлів або каталогів. Переконайтеся, що кореневий каталог документа та його вміст належать www-data:www-data та мають відповідні дозволи на читання (наприклад, sudo chown -R www-data:www-data /var/www/example1.com та sudo chmod -R 755 /var/www/example1.com).

4. Конфлікти портів

Симптом: Nginx не вдається запустити, або журнали вказують на 'address already in use'. Рішення: Інша служба може прослуховувати порт 80 або 443. Перевірте наявність інших вебсерверів (таких як Apache) або служб. Використовуйте sudo netstat -tulpn | grep :80, щоб ідентифікувати конфліктуючий процес і або зупинити його, або змінити його порт.

5. Журнали Nginx

Симптом: Незрозуміло, в чому проблема. Рішення: Завжди перевіряйте журнали помилок Nginx. Для глобальних помилок дивіться /var/log/nginx/error.log. Для конкретних проблем вебсайту перевіряйте власні журнали помилок, які ви визначили (наприклад, /var/log/nginx/example1.com_access.log та /var/log/nginx/example1.com_error.log). Ці журнали надають безцінні підказки про те, що йде не так.

sudo tail -f /var/log/nginx/example1.com_error.log

Ця команда відобразить останні кілька рядків журналу та продовжуватиме показувати нові записи, що з'являються, що корисно для налагодження в реальному часі.

Систематично перевіряючи ці пункти, ви зможете вирішити більшість поширених проблем при налаштуванні кількох вебсайтів на вашому виділеному сервері з Nginx.

check_circle Висновок

Використання повної потужності вашого виділеного сервера Valebyte для розміщення кількох веб-сайтів за допомогою Nginx — це розумний, масштабований і безпечний підхід для будь-якої зростаючої онлайн-присутності. Від простих статичних сайтів до складних веб-додатків, ігрових серверів або потокових платформ, ефективність Nginx у поєднанні з виділеними ресурсами забезпечує оптимальну продуктивність. Дотримуйтесь цього посібника, щоб впевнено розгортати та керувати своїм різноманітним веб-портфоліо. Готові взяти під контроль свій веб-хостинг? Ознайомтеся з надійними рішеннями Valebyte для виділених серверів сьогодні та покращте свою онлайн-інфраструктуру.

help Часті запитання

Поділитися цим записом:

Nginx виділений сервер кілька веб-сайтів Nginx хостинг кількох доменів Nginx віртуальні хости виділений сервер bare-metal хостинг кількох сайтів Valebyte виділений сервер Nginx налаштування серверних блоків Nginx налаштування кількох веб-сайтів Linux виділений сервер веб-хостинг Nginx для системних адміністраторів продуктивність веб-сайту виділений сервер
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.