Руководство по миграции с Shared-хостинга на VPS
Приветствую, друзья!
Рано или поздно любой успешный веб-проект перерастает рамки обычного виртуального хостинга (Shared Hosting). Вы начинаете замечать, что сайт медленнее открывается в часы пик, база данных всё чаще упирается в лимиты одновременных соединений, а ограничения на размер загружаемых файлов или процессорное время в панели управления не дают развернуть нужные плагины.
Переезд на собственный VPS (Virtual Private Server) — это естественный и зрелый этап эволюции вашей ИТ-инфраструктуры. Однако для многих новичков процесс миграции кажется сложной хирургической операцией, сопряженной с риском потерять данные или «уронить» сайт на несколько дней. Конечно же, вы можете оформить услугу по одноразовому менеджменту для переноса данных, если такая услуга предусмотрена хостинг-провайдером — это сэкономит вам время и нервы.
В этом руководстве мы разберем, как правильно подготовить инфраструктуру, настроить новое окружение и перенести проект с общего хостинга на изолированный VPS абсолютно бесшовно — так, чтобы ваши клиенты даже не заметили технических работ.
Key Takeaways: Секреты успешной миграции
Снижайте TTL заранее: За 24 часа до миграции уменьшите значение TTL в DNS-записях вашего домена до минимальных 300 секунд (5 минут). Это позволит новому IP-адресу VPS мгновенно распространиться по сети, когда вы переключите домен.
Сначала окружение, потом данные: Никогда не переносите файлы на ненастроенный сервер. На VPS должен быть полностью развернут и протестирован весь стек (LAMP/LEMP или Docker) до начала импорта.
Режим обслуживания (Maintenance): В момент финального экспорта базы данных переведите сайт на старом хостинге в режим обслуживания, иначе вы потеряете заказы или комментарии, которые пользователи успеют оставить в процессе переноса.
Тестирование через hosts: Вы можете проверить работу сайта на новом VPS еще до того, как перепишете DNS-записи, просто подменив IP в локальном файле hosts на своем компьютере.
Shared-хостинг против VPS: Время менять правила
Виртуальный хостинг идеален для старта, но он жестко ограничивает свободу действий. Вы делите операционную систему с сотнями соседей. На VPS вы получаете гарантированные ресурсы, собственное ядро Linux и полные права суперпользователя (root). Как правило, люди всегда переходят на VPS спустя время использования Shared Hosting, и это связано с тем, что на VPS у вас значительно больше возможностей, места на диске, ядер и оперативной памяти. Переход на VPS сразу даст вам ощущение большей свободы и больших мощностей.
Сравнительная таблица условий размещения
| Параметр инфраструктуры | Виртуальный хостинг (Shared) | Виртуальный выделенный сервер (VPS) | Эффект для вашего проекта |
| Изоляция ресурсов | Отсутствует. Соседи могут перегрузить CPU/диск. Также ваш IP может попасть в СПАМ из-за соседей. | Полная (KVM-виртуализация квотирует RAM и ядра). | Стабильный Response Time и отсутствие внезапных падений. |
| Параметры PHP/ОС | Жесткие лимиты (memory_limit, upload_max_filesize). | Полная свобода конфигурации любых конфигурационных файлов. | Можно запускать тяжелые скрипты, Docker и плагины автоматизации. |
| Управление базами | Базовый доступ через phpMyAdmin. | Полный доступ к конфигам СУБД, логам и тюнингу памяти. | Ускорение обработки тяжелых SQL-запросов в разы. |
| Безопасность среды | Зависит от общей защищенности сервера провайдера. | Изолированная система + возможность поставить Fail2ban/Zeek. | Минимальный риск перекрестного заражения от чужих сайтов. |
Пошаговый процесс миграции на VPS
Перенос проекта требует строгого соблюдения хронологической последовательности действий. Ошибка на любом этапе (например, слишком позднее отключение старой базы) может привести к рассинхронизации данных.
Чтобы данные не рассинхронизировались, а пользователи не заметили сбоя, миграцию нужно проводить по строгому алгоритму. Ниже представлен пошаговый план переноса проекта на VPS с Ubuntu 24.04.
Этап 1. Подготовка новой базы (VPS)
На этом этапе мы настраиваем «приёмную сторону», но пока ничего не переключаем. Посетители всё еще работают со старым сервером.
Базовая безопасность: Обновите пакеты, создайте non-root пользователя с sudo-правами, настройте SSH по ключам и включите брандмауэр UFW (разрешите порты 22, 80, 443).
Установка окружения (стека): Установите веб-сервер (Nginx/Apache), СУБД (PostgreSQL/MySQL), а также нужную версию языка (PHP, Node.js, Python и т.д.) или настройте Docker.
Перенос кода: Склонируйте репозиторий вашего проекта на VPS (например, в директорию
/var/www/my-project).Конфигурация окружения: Создайте файл
.envили конфигурационные файлы. Важно: пока укажите в них учетные данные новой, еще пустой локальной базы данных.Тестовый запуск веб-сервера: Настройте конфигурационный файл Nginx для вашего домена, но пока не выпускайте SSL-сертификат Let's Encrypt (он не подтвердится, пока DNS указывает на старый сервер).
Этап 2. Снижение TTL (За 24–48 часов до миграции)
Самая частая ошибка — забыть про кэширование DNS.
Зайдите к вашему DNS-провайдеру (Cloudflare, Reg.ru и др.).
Найдите параметр TTL (Time to Live) для вашей A-записи. Обычно там стоит 3600 (1 час) или 84600 (24 часа).
Уменьшите это значение до минимума: 60–300 секунд (1–5 минут).
Зачем? Это заставит провайдеров по всему миру быстрее узнать о том, что ваш сайт переехал на новый IP, когда мы сменим записи.
Этап 3. День X. (Режим обслуживания)
Выбирайте время с наименьшей посещаемостью (например, 3 часа ночи).
Включение Maintenance Mode
Переведите сайт на старом сервере в режим обслуживания (Maintenance Mode). Пользователи должны видеть заглушку: «Ведутся технические работы».
Критически важно: Это гарантирует, что в процессе копирования никто не создаст новый заказ, не напишет комментарий и не изменит баланс в базе данных. Также вы можете заранее сделать рассылку по базе email-адресов, чтобы клиенты знали о проведении техработ.
Фиксация и дамп данных
Как только сайт закрыт на обслуживание, делаем «слепок» актуальных данных:
База данных: Создайте дамп (например, с помощью
mysqldumpилиpg_dump).Медиа-файлы: Заархивируйте папку с загрузками пользователей (
uploads/,storage/), которые не хранятся в Git.
Перенос данных на VPS
Перенесите архивы и дамп со старого сервера на новый через
scpилиrsync. Пример:
rsync -avz /path/to/dump.sql user@new_vps_ip:/tmp/
Разворачивание на новом месте
На VPS импортируйте дамп в новую пустую базу данных.
Распакуйте медиа-файлы в соответствующую директорию проекта, задайте правильные права:
chown -R www-data:www-data /var/www/my-project
Запустите миграции (если это Laravel, Django и т.д.), очистите кэш приложения.
Этап 4. Проверка и Переключение DNS
Проект на VPS готов, но мир о нём ещё не знает.
Локальный тест (Файл hosts): Чтобы убедиться, что всё работает идеально, обманите свой компьютер. Пропишите в файл
hostsвашего ПК (на Windows или Mac) строку:IP_NEW_VPS yourdomain.comЗайдите на сайт через браузер. Вы увидите работу сайта уже с нового сервера. Проверьте авторизацию, админку, корзину. Если всё ок — удалите строку из
hosts.Переключение DNS: Идите в панель DNS и измените IP-адрес в A-записи со старого сервера на IP нового VPS.
Выпуск SSL: Поскольку TTL мы уменьшили заранее, изменения вступят в силу быстро. Как только домен начнет вести на новый IP, запустите на VPS
certbotдля получения SSL-сертификата Let's Encrypt.
Этап 5. Пост-миграция и «План Б»
Мониторинг логов: В первые часы внимательно смотрите в
/var/log/nginx/error.logи логи самого приложения на VPS.Старый сервер НЕ выключаем: Держите старый сервер включенным еще 2–3 дня. Даже при низком TTL у некоторых интернет-провайдеров DNS-кэш может обновляться дольше.
Заглушка-прокси (Лайфхак): Чтобы те редкие пользователи, у которых DNS еще не обновился, не получали ошибку или не писали в старую БД, измените конфиг веб-сервера на старом хостинге. Настройте его так, чтобы он просто перенаправлял (проксировал) все запросы на IP нового VPS.
Через 3-4 дня, когда трафик на старом сервере полностью иссякнет (это можно увидеть по логам доступа), его можно со спокойной душой гасить.
FAQ: Коротко о главном
Сколько времени занимает полное обновление DNS при переносе?
Если вы заранее снизили TTL до 5 минут, то переключение произойдет практически мгновенно для большинства пользователей. В худшем случае, если TTL не был изменен, полное обновление кэша провайдеров по всему миру может занять от 12 до 24 часов. Именно поэтому старый хостинг нельзя отключать сразу после изменения А-записи — он должен поработать еще пару дней подстраховкой.
Как перенести проект, если у меня очень большой объем файлов (более 50 Гб)?
Для переноса тяжелых медиа-архивов не используйте скачивание на локальный ПК. Настройте прямую передачу файлов между серверами по протоколу SSH с помощью утилиты
rsync. Она не только передаст данные на максимальной скорости сетевого порта, но и позволит докачать файлы в случае обрыва связи.
Заключение
Миграция с виртуального хостинга на собственный VPS — это важный шаг, который дает вашему проекту технологическую независимость, бескомпромиссную скорость загрузки страниц и железобетонную безопасность. Сам процесс не так страшен, если подходить к нему системно, проверять права на файлы и не забывать про бэкапы перед каждым действием.
И если вы сейчас находитесь в процессе масштабирования вашей ИТ-инфраструктуры и ищете надежную площадку для переезда, обратите внимание на наши услуги Shared Hosting / NVME VPS. Если ваш сайт пока не готов к консоли, наш быстрый виртуальный хостинг с прозрачными лимитами обеспечит отличный аптайм.
Автор статьи — Anatolie Cohaniuc

