Причин переехать с reg.ru, timeweb или beget много: цены выросли в 2 раза за 2 года, сервер тормозит по вечерам, не хватает root-доступа, санкции ломают доступ к сервисам, конкуренты предлагают в 3 раза дешевле. Разберёмся, как переехать без потери данных и почти без downtime.
Гайд применим для миграции любого сайта: WordPress, Bitrix, Laravel, Node.js, Django. Пример — с shared-хостинга reg.ru на VPS в Германии, но схема универсальная.
Шаг 0. Что готовить заранее
Перед миграцией:
- Инвентаризация. Список всех сайтов, поддоменов, БД, cron-джобов, почтовых ящиков.
- Доступы. Панель хостинга, FTP/SSH, панель регистратора, DNS.
- Список зависимостей. Версии PHP/Python, PostgreSQL/MySQL, установленные пакеты, специфические модули nginx.
- TTL DNS. За 24-48 часов до переезда снизьте TTL A-записей до 300 секунд. Это ускорит переключение.
Не начинайте миграцию в пятницу. Разница часовых поясов и выходные усложняют реагирование на проблемы.
Шаг 1. Развернуть новый сервер
На новом VPS настройте окружение под ваш стек. Пример для WordPress:
# Ubuntu 24.04 LTS, свежий VPS
apt update && apt upgrade -y
apt install -y nginx mysql-server php8.3-fpm php8.3-mysql \
php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml \
php8.3-zip certbot python3-certbot-nginx unzip
# Создать БД
mysql -e "CREATE DATABASE wp;
CREATE USER 'wp'@'localhost' IDENTIFIED BY '$(openssl rand -hex 16)';
GRANT ALL ON wp.* TO 'wp'@'localhost';"Шаг 2. Перенос файлов
Способ 1: rsync через SSH (лучший). Работает, если на reg.ru доступен SSH:
- Способ 2: через архив. На reg.ru: панель → «Создать бэкап» → скачать. На новом сервере:
wgetархив,unzipв нужную папку. - Способ 3: FTP. Медленно, но работает всегда. Через
lftpможно параллелить.
# С НОВОГО сервера (быстрее — трафик идёт мимо вас)
rsync -azP --delete \
[email protected]:/home/user/public_html/ \
/var/www/example.com/Шаг 3. Перенос БД
Классика — mysqldump со старого, mysql на новом:
# На старом сервере (или через панель phpMyAdmin → Export)
mysqldump -u user -p --single-transaction \
--routines --triggers old_db > /tmp/dump.sql
gzip /tmp/dump.sql
# Переносим на новый
scp user@old:/tmp/dump.sql.gz /tmp/
gunzip /tmp/dump.sql.gz
mysql -u wp -p wp < /tmp/dump.sqlДля больших БД (>10 ГБ) — не через архив. Используйте mysqldump | ssh new-server 'mysql' напрямую, чтобы не терять время на диск.
Шаг 4. Тестовое поднятие через hosts-файл
Настройте nginx на новом сервере с вашим доменом. Не переключайте DNS пока. Проверьте сайт локально через /etc/hosts:
# На вашем компьютере
sudo nano /etc/hosts
# Добавьте строку:
5.75.xxx.xxx example.com www.example.com
# Теперь браузер идёт на новый сервер
# Проверьте: главная, авторизация, оплата, формы
# Не забудьте удалить строку после миграцииШаг 5. Переключение DNS
Когда убедились, что всё работает:
- В панели регистратора (не хостера!) поменяйте A-запись домена на IP нового сервера.
- TTL 300 — переключение произойдёт за 5-10 минут для большинства резолверов.
- Не отключайте старый сервер ещё 24-48 часов. Часть пользователей будет ходить по кешу — увидят старую версию.
- Логи старого: следите за 500-ми и активностью. Если бэкенд что-то пишет — репликация теряется.
Шаг 6. Почта — отдельная история
Если почта у reg.ru (`@yourdomain.ru` на их серверах). Скорее всего у вас нет резервной копии писем. Варианты:
- Скачать IMAP через Thunderbird или
imapsyncдо переезда. - Перевести домен на Yandex.Mail для бизнеса (бесплатно до 2024, платно с 2025) или Zoho Mail (бесплатно 5 юзеров).
- Свой mail-server поднимать не рекомендуем — deliverability будет кошмаром.
Что забыть на новом сервере
Типовые вещи, о которых забывают:
- Cron-джобы — их надо перенести вручную из crontab старого.
- SSL-сертификат — новый через
certbot --nginx, не пытайтесь скопировать старый. - Robots.txt / sitemap.xml — обычно они уже в файлах, но проверьте.
- Настройки WordPress `wp-config.php` — DB_HOST, DB_PASSWORD.
- Права на папки —
uploads,cache,logsдолжны быть отwww-dataилиnginx.