К содержанию
Siberian V

VPS или виртуальный хостинг: что брать под сайт и под сервис

VPS или виртуальный хостинг: слева общий сервер хостинга с папками сайтов, справа виртуальные машины с отдельной системой и root-доступом

Блог на WordPress или магазин на готовом движке живут на виртуальном хостинге годами, и владелец ни разу не открывает консоль. Бот на Python, приложение на Node.js или пара контейнеров Docker туда уже не встанут: им нужен процесс, который работает круглые сутки, а хостинг такие процессы останавливает. Ниже разница по пунктам, признаки того, что хостинг стал тесен, работа, которая на VPS ляжет на вас, и порядок переезда без простоя.

Чем они отличаются на деле

На виртуальном хостинге один сервер делят сотни сайтов. Вы получаете папку, базу данных и панель управления, а систему, веб-сервер и PHP настраивает и обновляет провайдер. VPS даёт виртуальную машину целиком: свою операционную систему, root-доступ, свой IP-адрес. Ставить туда можно что угодно, но и следить за всем приходится самому.

Виртуальный хостингVPS
ДоступПанель, FTP, иногда SSH без прав rootSSH с правами root
ПрограммыТо, что поставил провайдер: PHP, MySQL, реже PythonЛюбые: Node.js, Go, Docker, Redis, своя версия базы
Обновления системыПровайдерВы
Постоянные процессыКак правило, нет: скрипт завершают по лимиту времениДа, через systemd или Docker
Свои порты, WebSocketКак правило, нетДа
РесурсыЛимиты на аккаунт, соседние сайты в той же системеЗакреплены за машиной, физический хост общий
SSL-сертификатКнопка в панелиCertbot или веб-сервер с автоматическим выпуском
Почта на доменеОбычно есть в панелиСвой почтовый сервер или внешний сервис
Резервные копииЧаще делает провайдерНастраиваете сами или подключаете отдельно

Когда хватит виртуального хостинга

Есть и промежуточные варианты. На администрируемом VPS (managed) машина ваша, а обновления и мониторинг ведёт провайдер. Сайту без серверной части хватит статического хостинга вроде GitHub Pages: туда кладут готовые файлы, и сервера, о котором нужно заботиться, у вас нет вовсе.

Когда нужен VPS

Признаки, что хостинг стал тесен

Хостинг ограничивает каждый аккаунт по процессорному времени, памяти, числу одновременных процессов и числу файлов (инодов). В лимит упираются не плавно: днём сайт работает, а в час пик начинает отдавать ошибки.

Прежде чем переезжать, посмотрите на сам сайт. Кэширование страниц и отказ от пары тяжёлых плагинов часто снимают нагрузку, и тогда хостинга хватает ещё надолго.

Что на VPS придётся делать самому

Часть этой работы делается один раз, остальное повторяется каждый месяц. Минимальный набор:

Переезд с хостинга на VPS без простоя

  1. За сутки до переезда уменьшите TTL у A-записи домена до 300 секунд. Тогда новый адрес разойдётся по DNS-серверам за минуты.
  2. Поднимите на VPS то же окружение: веб-сервер, ту же версию PHP и базы данных, создайте пустую базу.
  3. Остановите изменения на старом сайте: закройте комментарии и формы или включите режим обслуживания. Иначе всё, что придёт между переносом базы и переключением, останется на старом сервере.
  4. Перенесите файлы (архивом из панели или через rsync по SSH) и базу:
    mysqldump -u <пользователь> -p <база> > site.sql
    mysql -u <пользователь> -p <база> < site.sql
    Первую команду запускают на хостинге (или выгружают дамп в phpMyAdmin), вторую на VPS.
  5. Проверьте сайт до смены DNS: добавьте строку с IP-адресом VPS и доменом в файл hosts на своём компьютере (/etc/hosts, в Windows C:\Windows\System32\drivers\etc\hosts) и пройдите главные страницы и формы.
  6. Поменяйте A-запись, а если есть IPv6, то и AAAA. Записи MX не трогайте, если почта остаётся у прежнего провайдера.
  7. Выпустите сертификат. Обычная проверка Let's Encrypt по HTTP проходит, только когда домен уже указывает на новый сервер, поэтому сертификат выпускают сразу после смены записи или через проверку по DNS.
  8. Старый хостинг держите ещё неделю-две, чтобы было куда откатиться. После этого верните TTL к прежнему значению.

Частые вопросы

Можно ли держать на одном VPS несколько сайтов?

Да. Веб-сервер разводит запросы по доменам: в Nginx это отдельные блоки server, в Apache виртуальные хосты. У каждого сайта своя папка и своя база, но процессор и память общие, и тяжёлый сайт замедлит соседей.

Нужна ли на VPS панель управления?

Не обязательно. Панель вроде ISPmanager или HestiaCP даёт привычный интерфейс хостинга, но сама занимает память и тоже требует обновлений. Если сайт один и командная строка вас не пугает, хватит веб-сервера и пары конфигов.

Станет ли WordPress быстрее после переезда на VPS?

Только если он упирался в лимиты хостинга: процессор, память, число процессов. Если сайт тормозит из-за темы или плагинов, на новой машине без кэширования страниц он останется таким же медленным.

Что безопаснее: хостинг или VPS?

Изоляция у VPS лучше: соседи не делят с вами операционную систему. Зато на хостинге систему обновляет провайдер, а на вас остаются пароли, движок и плагины. VPS, который никто не обновляет, опаснее хостинга, за которым следит команда провайдера.