Миграция сайта на новый хостинг
Смена хостинга — риск downtime. Правильный процесс: сначала поднять копию на новом хостинге, убедиться в работоспособности, только потом переключать DNS.
Этапы миграции
1. Подготовка нового сервера
# Установка LEMP-стека на Ubuntu 22.04
sudo apt update && sudo apt upgrade -y
sudo apt install -y nginx mysql-server php8.2-fpm php8.2-mysql php8.2-gd \
php8.2-curl php8.2-zip php8.2-mbstring php8.2-xml php8.2-intl redis-server
# Для Node.js проектов
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
2. Копирование файлов
# rsync с сохранением прав и символических ссылок
rsync -avz --progress --exclude='.git' \
-e "ssh -p 22" \
user@old-server:/var/www/mysite/ \
user@new-server:/var/www/mysite/
# Для больших сайтов — через сжатый архив
tar -czf /tmp/mysite.tar.gz -C /var/www mysite/
scp /tmp/mysite.tar.gz user@new-server:/tmp/
ssh user@new-server "tar -xzf /tmp/mysite.tar.gz -C /var/www/"
3. Миграция базы данных
# MySQL: дамп и восстановление
mysqldump -u root -p mysite_db > /tmp/mysite_db.sql
scp /tmp/mysite_db.sql user@new-server:/tmp/
ssh user@new-server "mysql -u root -p new_db < /tmp/mysite_db.sql"
# PostgreSQL
pg_dump -U mysite mysite_db > /tmp/mysite_db.sql
scp /tmp/mysite_db.sql user@new-server:/tmp/
ssh user@new-server "psql -U mysite new_db < /tmp/mysite_db.sql"
4. Настройка на новом сервере
- Nginx/Apache virtual host
- Переменные окружения (.env)
- SSL-сертификат
- Права на директории (storage, cache, uploads)
- Cron jobs
- Queue workers (если есть)
5. Проверка через hosts-файл (без DNS)
# На локальной машине добавляем в /etc/hosts (или C:\Windows\System32\drivers\etc\hosts)
NEW_SERVER_IP mysite.com www.mysite.com
# Проверяем сайт в браузере через новый сервер
# Убеждаемся, что всё работает: формы, авторизация, оплата
6. Переключение DNS
Снижаем TTL до 300 секунд за сутки до переключения. После переключения TTL → обычное значение (3600+).
# Мониторинг propagation
watch -n 5 "dig @8.8.8.8 mysite.com A +short"
watch -n 5 "dig @1.1.1.1 mysite.com A +short"
Период параллельной работы
Держим старый сервер активным 48–72 часа после переключения DNS. Это позволяет откатиться при проблемах.
Проверки после миграции
# Проверка доступности
curl -I https://mysite.com
# Проверка SSL
echo | openssl s_client -connect mysite.com:443 2>/dev/null | grep "Verify return code"
# Проверка редиректов
curl -I http://mysite.com # должен быть 301
curl -I http://www.mysite.com # должен быть 301
Стандартная миграция сайта на новый VPS — 4–16 часов в зависимости от объёма данных.







