Вступ до мультисайтового хостингу на Bare Metal
Інвестуючи у виділений сервер Valebyte, ви отримуєте чисту, необмежену потужність. На відміну від спільного хостингу або невеликих віртуальних приватних серверів, виділений сервер забезпечує цикли процесора, оперативну пам'ять та NVMe-накопичувачі, необхідні для одночасної роботи кількох вебсайтів промислового рівня. Незалежно від того, чи ви веб-агентство, що керує портфоліо клієнтів, розробник, який запускає різні CI/CD середовища, або власник бізнесу з кількома брендами, Nginx є галузевим стандартом вебсервера для цих завдань.
Чому варто використовувати Nginx для кількох вебсайтів?
Nginx використовує асинхронну архітектуру, керовану подіями, що дозволяє йому обробляти тисячі одночасних з'єднань з мінімальним споживанням пам'яті. На виділеному сервері це означає, що ви можете масштабувати свою веб-присутність горизонтально на різних доменах, зберігаючи пікову продуктивність для кожного відвідувача. Секрет полягає в серверних блоках (Server Blocks) (подібно до віртуальних хостів Apache), які дозволяють Nginx спрямовувати вхідний трафік у потрібний каталог на основі імені домену в заголовку HTTP-запиту.
Попередні вимоги та вимоги до сервера
Перш ніж ми почнемо налаштування, переконайтеся, що ваше середовище відповідає наступним вимогам:
- Виділений сервер Valebyte: з чистою інсталяцією дистрибутива Linux (рекомендуються Ubuntu 22.04 або Debian 12).
- Root або Sudo доступ: ви повинні мати права адміністратора для встановлення пакетів та зміни конфігурацій системи.
- Доменні імена: принаймні два доменних імені (наприклад, example1.com та example2.com) з A-записами, спрямованими на публічну IP-адресу вашого сервера.
- Доступ через брандмауер: порти 80 (HTTP) та 443 (HTTPS) повинні бути відкриті.
Крок 1: Встановлення Nginx на ваш виділений сервер
Спочатку оновіть репозиторій пакетів і встановіть вебсервер Nginx. Підключіться до свого сервера через SSH і виконайте наступні команди:
sudo apt update
sudo apt install nginx -y
Після завершення встановлення перевірте, чи працює Nginx:
sudo systemctl status nginx
Якщо служба активна, ви можете перейти за IP-адресою вашого сервера у веб-браузері, щоб побачити стандартну сторінку привітання Nginx.
Крок 2: Створення структури каталогів
Щоб ваші вебсайти були впорядкованими та безпечними, найкраще створити окремий каталог для кожного домену в межах шляху /var/www/. Це запобігає перехресному забрудненню файлів і полегшує керування резервними копіями.
sudo mkdir -p /var/www/example1.com/public_html
sudo mkdir -p /var/www/example2.com/public_html
Налаштування прав доступу та власності
За замовчуванням ці каталоги належать користувачу root. Щоб дозволити вебсерверу та вашим інструментам розгортання взаємодіяти з файлами, змініть власника на вашого звичайного користувача, а групу — на www-data.
sudo chown -R $USER:www-data /var/www/example1.com/public_html
sudo chown -R $USER:www-data /var/www/example2.com/public_html
sudo chmod -R 755 /var/www
Крок 3: Створення тестового контенту
Для перевірки нашої конфігурації створимо простий HTML-файл для кожного сайту. Це допоможе нам переконатися, що серверні блоки правильно спрямовують трафік.
Для першого сайту:
nano /var/www/example1.com/public_html/index.html
Вставте наступний вміст:
<html>
<head><title>Ласкаво просимо до Example 1</title></head>
<body><h1>Успіх! Example1.com працює на Valebyte Bare Metal.</h1></body>
</html>
Повторіть цей процес для example2.com, відповідно змінивши текст.
Крок 4: Налаштування серверних блоків Nginx
Nginx зберігає свої конфігураційні файли в /etc/nginx/sites-available/. Ми створимо новий файл конфігурації для кожного вебсайту.
Конфігурація для Example1.com
sudo nano /etc/nginx/sites-available/example1.com
Вставте наступний блок конфігурації:
server {
listen 80;
listen [::]:80;
root /var/www/example1.com/public_html;
index index.html index.htm;
server_name example1.com www.example1.com;
location / {
try_files $uri $uri/ =404;
}
access_log /var/log/nginx/example1.com.access.log;
error_log /var/log/nginx/example1.com.error.log;
}
Конфігурація для Example2.com
Створіть аналогічний файл для другого домену:
sudo nano /etc/nginx/sites-available/example2.com
Змініть root, server_name та шляхи до логів відповідно до другого сайту. Такий модульний підхід гарантує, що якщо один сайт зазнає високого трафіку або помилок конфігурації, він залишиться ізольованим від іншого.
Крок 5: Активація конфігурацій та тестування
Nginx використовує систему символічних посилань для визначення активних сайтів. Створіть посилання на ваші нові файли з sites-available у sites-enabled:
sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/example2.com /etc/nginx/sites-enabled/
Перед перезапуском Nginx завжди перевіряйте конфігурацію на наявність синтаксичних помилок:
sudo nginx -t
Якщо ви бачите syntax is ok та test is successful, перезапустіть службу Nginx, щоб застосувати зміни:
sudo systemctl restart nginx
Крок 6: Захист ваших вебсайтів за допомогою SSL (Let's Encrypt)
У сучасному вебі HTTPS є обов'язковим для SEO та безпеки. Використовуючи Certbot, ви можете отримати безкоштовні SSL-сертифікати для всіх доменів, розміщених на вашому сервері Valebyte.
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example1.com -d www.example1.com
sudo certbot --nginx -d example2.com -d www.example2.com
Certbot автоматично оновить ваші конфігураційні файли Nginx для обробки термінації SSL та перенаправлення всього HTTP-трафіку на HTTPS.
Поширені випадки використання мультисайтових виділених серверів
| Випадок використання | Навіщо використовувати виділений сервер? | Перевага Nginx |
|---|
| Портали ігрових серверів | Висока тактова частота процесора для ігрової логіки. | Швидка доставка статичного контенту для ресурсів. |
| Мережі електронної комерції | Ізоляція ресурсів бази даних для безпеки. | Відмінна обробка продажів з великою кількістю одночасних з'єднань. |
| Розробка SaaS | Прогнозована продуктивність для CI/CD конвеєрів. | Легке зворотне проксіювання до бекенд-мікросервісів. |
| Стрімінгові медіа | Виділена безлімітна пропускна здатність 1 Гбіт/с+. | Ефективна буферизація та пропускна здатність даних. |
Усунення поширених проблем
1. Помилка 403 Forbidden
Це зазвичай стається через неправильні права доступу до файлів. Переконайтеся, що користувач www-data має доступ на читання до вашого веб-каталогу та доступ на виконання до батьківських каталогів.
2. Сайт показує стандартну сторінку Nginx
Перевірте, чи не перекриває стандартна конфігурація ваші серверні блоки. Вам може знадобитися видалити стандартне посилання: sudo rm /etc/nginx/sites-enabled/default і перезапустити Nginx.
3. Проблеми з розповсюдженням DNS
Якщо ваш браузер не може знайти сайт, скористайтеся командою dig, щоб перевірити, чи правильно ваш домен вказує на IP-адресу вашого виділеного сервера: dig +short example1.com.
Поради щодо розширеної оптимізації
Після того, як ваші сайти запрацюють, ви можете додатково оптимізувати свій сервер Valebyte, увімкнувши стиснення Gzip, налаштувавши кешування FastCGI для PHP-додатків та тонко налаштувавши параметри worker_processes і worker_connections у /etc/nginx/nginx.conf відповідно до кількості ядер вашого виділеного процесора.