MAATRIX / Блог / Как перенести сайт на VPS без простоя

Как перенести сайт на VPS без простоя

Блог MAATRIX · 2026-07-07

Переезд с виртуального хостинга на VPS пугает словом «простой». На деле грамотный перенос проходит незаметно для посетителей: сначала вы поднимаете точную копию сайта на новом сервере, тестируете её по IP, и только потом переключаете домен.

Стратегия «сначала копия, потом домен»

['Главный принцип нулевого простоя — не трогать боевой домен, пока новая площадка не готова. Вы разворачиваете сайт на VPS, проверяете его по IP или временному поддомену, и лишь затем меняете DNS. Старый хостинг продолжает обслуживать посетителей всё это время.', 'За сутки до переезда снизьте TTL A-записи домена до 300 секунд у регистратора. Тогда после переключения кэш DNS у провайдеров обновится за 5 минут, а не за сутки.', 'На VPS MAATRIX (AMD EPYC + NVMe) распаковка дампа и импорт базы идут в разы быстрее, чем на shared-хостинге, — окно синхронизации сокращается до минут.', 'Перед стартом соберите чек-лист: доступы к старому хостингу (SSH или FTP), доступы к панели DNS у регистратора домена, IP нового VPS и список движков и версий PHP, на которых работает сайт. Чем меньше сюрпризов на этапе переключения, тем короче окно риска. Отдельно проверьте, какие внешние сервисы завязаны на текущий сервер: почта на домене, вебхуки платёжных систем, API-интеграции — их тоже нужно будет перенастроить.']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для переноса сайта

Шаг 1. Готовим сервер

['Обновляем систему и ставим веб-стек — nginx, PHP-FPM и клиент MySQL:', '
apt update && apt upgrade -y\napt install -y nginx php-fpm php-mysql php-gd php-mbstring php-xml php-curl mysql-server unzip\nsystemctl enable --now nginx php8.2-fpm mysql
', 'Проверяем, что nginx отвечает по IP сервера — в браузере должна открыться дефолтная страница.']

Шаг 2. Переносим файлы

['На старом хостинге упаковываем корень сайта в архив и забираем его на VPS через rsync или scp — так сохранятся права и не потеряются точечные файлы:', '
# на новом сервере\nmkdir -p /var/www/site\nrsync -avz -e ssh user@old-host:/home/user/public_html/ /var/www/site/\nchown -R www-data:www-data /var/www/site
', 'Если SSH на старом хостинге нет — качаем архив по FTP и распаковываем: unzip site.zip -d /var/www/site.']

Шаг 3. Переносим базу данных

['Снимаем дамп на старом сервере и заливаем его на новый:', '
# дамп на старом хостинге\nmysqldump -u olduser -p olddb > dump.sql\n\n# на VPS: создаём БД и импортируем\nmysql -u root -p -e "CREATE DATABASE site CHARACTER SET utf8mb4;"\nmysql -u root -p -e "CREATE USER \'site\'@\'localhost\' IDENTIFIED BY \'СИЛЬНЫЙ_ПАРОЛЬ\';"\nmysql -u root -p -e "GRANT ALL ON site.* TO \'site\'@\'localhost\'; FLUSH PRIVILEGES;"\nmysql -u root -p site < dump.sql
', 'Пропишите новые доступы к БД в конфиге движка (для WordPress — wp-config.php, поля DB_NAME/DB_USER/DB_PASSWORD).']

Шаг 4. Конфиг nginx + PHP

['Создаём server-блок. Для теста укажите IP или временный поддомен в server_name:', '
server {\n    listen 80;\n    server_name example.com www.example.com;\n    root /var/www/site;\n    index index.php index.html;\n\n    location / { try_files $uri $uri/ /index.php?$args; }\n    location ~ \\.php$ {\n        include snippets/fastcgi-php.conf;\n        fastcgi_pass unix:/run/php/php8.2-fpm.sock;\n    }\n}
', '
ln -s /etc/nginx/sites-available/site /etc/nginx/sites-enabled/\nnginx -t && systemctl reload nginx
', 'Проверьте сайт до переключения домена: временно добавьте строку IP example.com в свой локальный файл /etc/hosts — увидите новую копию, посетители пока на старом хостинге.']

Шаг 5. Переключаем домен и SSL

['Когда копия проверена, меняем A-запись домена на IP вашего VPS. Пока обновляется DNS, часть трафика ещё идёт на старый сервер — поэтому его не выключаем 2–3 дня.', 'После того как домен «смотрит» на VPS, выпускаем бесплатный SSL:', '
apt install -y certbot python3-certbot-nginx\ncertbot --nginx -d example.com -d www.example.com
', 'Certbot сам добавит редирект на HTTPS и настроит автопродление. Готово — переезд завершён без единой секунды даунтайма для посетителей.']

Частые ошибки при переносе

['
  • Забыли про TTL — домен переключается сутками. Снижайте TTL заранее.
  • Кодировка базы — импорт в latin1 вместо utf8mb4 ломает кириллицу. Создавайте БД с utf8mb4.
  • Права на файлы — 500-я ошибка из-за неверного владельца. Выставляйте www-data.
  • Старые ссылки в БД — для WordPress прогоните wp search-replace при смене домена.
']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для переноса сайта

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

Сколько длится простой при правильном переносе?

Ноль. Посетители всё время обслуживаются либо старым хостингом, либо уже новым VPS — переключение домена происходит после полной проверки копии.

Обязательно ли снижать TTL заранее?

Да, за 12–24 часа. Иначе после смены A-записи часть пользователей будет попадать на старый сервер до суток, пока не истечёт кэш DNS.

Что делать со старым хостингом после переезда?

Держите его активным ещё 2–3 дня, пока DNS полностью не обновится по всему миру, затем можно отключать.