Кілька сайтів на одному сервері
Як розмістити десяток сайтів на одному VPS: структура каталогів, окремі конфігурації та користувачі, спільний сертифікат і оцінка навантаження за тарифом.
Оновлено 23 серпня 2026 р.
Одна публічна IPv4-адреса може обслуговувати будь-яку кількість доменів: вебсервер маршрутизує запити за заголовком Host. Обмеження не в адресах — а в пам'яті та диску вашого тарифу.
Структура
Тримайте один шаблон, інакше за пів року ви не зможете сказати, який сайт кому належить:
/var/www/example.ru/public
/var/www/example.ru/logs
/var/www/shop.ru/public
/var/www/shop.ru/logs
Тримайте окремий файл конфігурації для кожного сайту: /etc/nginx/sites-available/<domain>, увімкнений через симлінк у sites-enabled. Тоді вимкнення сайту означає видалення одного симлінка й перезавантаження, а не пошук потрібного фрагмента у спільному файлі.
Конфігурація
server {
listen 80;
server_name example.ru www.example.ru;
root /var/www/example.ru/public;
index index.html index.php;
access_log /var/www/example.ru/logs/access.log;
}
Також налаштуйте «сайт за замовчуванням» для невідомих доменів, інакше для будь-якого стороннього домену, спрямованого на вашу адресу, відкриється перша за алфавітом конфігурація:
server {
listen 80 default_server;
server_name _;
return 444;
}
Розділення прав
Якщо сайти належать різним клієнтам або різним проєктам, не давайте їм спільного користувача: дірка в одному скрипті інакше означає доступ до всіх.
useradd -r -d /var/www/example.ru -s /usr/sbin/nologin site-example
chown -R site-example:www-data /var/www/example.ru
chmod 750 /var/www/example.ru
Для PHP створіть окремий пул FPM для кожного сайту з власними user і listen — див. PHP-FPM. Розділіть і бази даних: користувачі та права.
Сертифікати
Один запуск certbot охоплює кілька доменів одразу:
certbot --nginx -d example.ru -d www.example.ru -d shop.ru -d www.shop.ru
Оновлення спільне, один таймер. Деталі — Let's Encrypt.
Скільки сайтів уміститься
Рахуйте за пам'яттю, а не за кількістю доменів. Статичний сайт майже нічого не коштує; сайт на CMS із базою даних коштує сотні мегабайтів.
| Тариф | Пам'ять | Орієнтир |
|---|---|---|
| VDS-1 (2 GB) | 2 GB | 1–2 сайти на CMS або десяток статичних |
| VDS-2 (4 GB) | 4 GB | 3–5 сайтів на CMS |
| VDS-3 (8 GB) | 8 GB | 8–12 сайтів на CMS |
Диск теж не безмежний: 40 GB на VDS-1, 250 GB на VDS-6. Ви можете лише підвищити тариф, доплативши різницю за решту днів оплаченого періоду.
Типові помилки
| Симптом | Причина |
|---|---|
| Усі домени показують той самий сайт | server_name не збігся, тож запит обробив перший блок |
| Логи всіх сайтів в одному файлі | access_log не задано в блоці сайту |
| Один сайт поклав усе | Спільний пул PHP-FPM без обмежень |
| Забракло місця на диску | Логи й бекапи на одному диску — налаштуйте logrotate |
Перш ніж додавати ще один сайт, перегляньте графіки пам'яті за минулий тиждень у «Огляді» панелі за адресою
/hosting/vds/m/<id>. Якщо пік уже сягає стелі, новий сайт стане причиною збоїв, а не наслідком.