Перейти к содержанию
Innovialabs

Как переехать на новый хостинг без простоя сайта

Продвинутое3 мин

Коротко

Заранее снизьте TTL DNS-записей, разверните полную копию сайта на новом сервере, проверьте её через файл hosts, сделайте финальную синхронизацию данных и только потом переключите DNS, держа старый сервер готовым к откату.

Короткий ответ

Переезд без простоя возможен, потому что старый и новый сервер какое-то время работают параллельно. Пользователи продолжают ходить на старый сервер, пока вы готовите и проверяете новый. Затем вы переключаете DNS, и трафик постепенно перетекает. Ключ к успеху — короткий TTL, проверенная копия и чёткий план отката.

План по шагам

1. Инвентаризация

Перед началом составьте список того, что переезжает:

  • файлы сайта и загруженные пользователями файлы;
  • базы данных;
  • cron-задачи, фоновые процессы, очереди;
  • версии языка, расширений, веб-сервера;
  • SSL-сертификаты;
  • почта (если она на том же хостинге) и все DNS-записи: A, AAAA, CNAME, MX, TXT.

Почту и DNS часто забывают, и после переезда перестают приходить письма.

2. Снижение TTL

TTL определяет, сколько резолверы кешируют DNS-ответ. Если он большой, часть пользователей ещё долго будет попадать на старый сервер.

За время, не меньшее текущего TTL (лучше за сутки-двое), снизьте TTL нужных записей до нескольких минут, например до 300 секунд. Проверить текущее значение можно так:

dig +noall +answer example.com A

Число во втором столбце — оставшийся TTL в секундах.

3. Подготовка нового сервера и копирование

Установите то же окружение, что и на старом сервере, затем скопируйте файлы и базу:

rsync -avz --progress user@old-server:/var/www/site/ /var/www/site/
mysqldump -u user -p dbname > dump.sql   # на старом сервере
mysql -u user -p dbname < dump.sql       # на новом сервере

Для PostgreSQL используются pg_dump и pg_restore. Выпустите SSL-сертификат на новом сервере заранее, либо перенесите существующий.

4. Проверка через файл hosts

DNS ещё указывает на старый сервер, но вы можете открыть сайт на новом. Добавьте в файл hosts своего компьютера строку с IP нового сервера:

203.0.113.10  example.com www.example.com

На Linux и macOS это /etc/hosts, на Windows — C:\Windows\System32\drivers\etc\hosts. Пройдите ключевые сценарии: вход, формы, оплату, загрузку файлов, отправку писем. Затем удалите строку.

5. Финальная синхронизация

Пока вы тестировали, на старом сервере появились новые заказы, комментарии и файлы. Перед переключением:

  1. Включите режим «только чтение» или короткое окно обслуживания для операций записи, если данные критичны.
  2. Повторите rsync (он передаст только изменения) и свежий дамп базы.
  3. Для больших и активных баз рассмотрите репликацию со старой базы на новую — тогда данные синхронизируются непрерывно.

6. Переключение DNS

Измените A/AAAA-записи на IP нового сервера. Из-за короткого TTL основная часть трафика переедет быстро, но старый сервер не выключайте: часть резолверов может держать старые записи дольше. Следите за логами обоих серверов — когда на старый перестанут приходить запросы, переезд завершён.

После стабилизации верните TTL к обычному значению.

7. План отката

Решите заранее, при каких признаках вы откатываетесь (ошибки, падение заказов, проблемы с почтой) и кто принимает решение. Откат — это возврат DNS-записей на старый IP. Он работает, только если старый сервер жив и данные, записанные на новом, можно перенести обратно.

Частые ошибки

  • TTL снизили в последний момент, и кеш держит старый IP часами.
  • Забыли MX и TXT-записи (SPF, DKIM) — почта ломается.
  • Не перенесли cron-задачи и бэкапы.
  • Отключили старый хостинг сразу после смены DNS.
  • Не проверили права на файлы и пути в конфигурации.

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

Да, если сайт в основном отдаёт статический контент или если вы настроили репликацию базы. Для магазинов и сервисов с частыми записями короткое окно «только чтение» обычно проще и безопаснее, чем пытаться согласовать данные после переключения.

Поможем с этим

Если хотите не разбираться самим, а получить результат — этим мы занимаемся каждый день.

Обсудить проект

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.