Несколько сайтов на одной машине
Как разместить десяток сайтов на одном VDS: раскладка каталогов, отдельные конфиги и пользователи, общий сертификат и оценка нагрузки по ступеням.
Обновлено 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/<домен>, включение через ссылку в sites-enabled. Отключить сайт тогда означает удалить одну ссылку и сделать reload, а не искать нужный кусок в общем файле.
Конфигурация
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 ГБ) | 2 ГБ | 1–2 сайта на CMS или десяток статических |
| VDS-2 (4 ГБ) | 4 ГБ | 3–5 сайтов на CMS |
| VDS-3 (8 ГБ) | 8 ГБ | 8–12 сайтов на CMS |
Диск тоже конечен: 40 ГБ на VDS-1, 250 ГБ на VDS-6. Улучшение тарифа доступно только вверх, с доплатой за оставшиеся дни оплаченного срока.
Частые ошибки
| Симптом | Причина |
|---|---|
| Все домены показывают один сайт | Не совпал server_name, сработал первый блок |
| Логи всех сайтов в одном файле | Не задан access_log в блоке сайта |
| Один сайт положил все | Общий пул PHP-FPM без лимитов |
| Кончилось место | Логи и бэкапы на том же диске — настройте logrotate |
Перед добавлением очередного сайта посмотрите графики памяти в «Обзоре» панели
/hosting/vds/m/<id>за неделю. Если пик уже под потолком, новый сайт станет причиной падений, а не следствием.