Міграція веб-сайту на новий хостинг
Зміна хостингу — ризик 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 годин залежно від обсягу даних.







