Zuhause / Guides / VPS Migration

Verschieben Sie Ihren Server in ca. 30 Minuten

Bewegliche Hosts klingen beängstigend und sind hauptsächlich rsync, DNS und Geduld. Der Trick besteht aus zwei Durchgängen: einem langsamen, während der alte Server noch läuft, und einem schnellen letzten, der Sekunden dauert.

1. Bereiten Sie den neuen Server

Bestellung a Buran VPSInstallieren Sie die gleiche OS-Version wie der alte Server und führen Sie die Grundlagen aus: SSH Keys und FirewallInstallieren Sie die gleichen Dienste (nginx, PostgreSQL, Docker) in den gleichen Versionen - aber starten Sie sie noch nicht.

2. Erster rsync-Pass - während alles läuft

Vom neuen Server ziehen Sie die Daten ab. Dieser Pass kann so lange dauern, wie er will; niemand merkt es.

rsync -avz --delete \
  --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp \
  --exclude=/var/lib/postgresql \
  root@OLD_SERVER_IP:/etc /etc
rsync -avz --delete root@OLD_SERVER_IP:/var/www /var/www
rsync -avz --delete root@OLD_SERVER_IP:/root /root

Datenbankdatenverzeichnisse sind absichtlich ausgeschlossen - ein Live-PostgreSQL oder MySQL, das von Datei zu Datei kopiert wurde, ist gebrochen. Datenbanken bewegen sich als Dumps.

3. Datenbanken entsorgen

Auf dem alten Server:

pg_dumpall -U postgres > /root/all-databases.sql
# or per database, compressed:
pg_dump -Fc -U postgres appdb > /root/appdb.dump

Ziehen Sie die Dumps auf den neuen Server und importieren Sie sie:

rsync -avz root@OLD_SERVER_IP:/root/all-databases.sql /root/
sudo -u postgres psql < /root/all-databases.sql

4. Der Schalter — ein Zwei-Minuten-Fenster

Setzen Sie die App in den Wartungsmodus, führen Sie die endgültige Synchronisierung aus und starten Sie die Dienste:

# on the old server
pg_dumpall -U postgres > /root/final.sql
# on the new server
rsync -avz --delete root@OLD_SERVER_IP:/var/www /var/www
rsync -avz root@OLD_SERVER_IP:/root/final.sql /root/
sudo -u postgres psql < /root/final.sql
systemctl enable --now nginx postgresql myapp

Testen Sie zuerst lokal - bevor Sie DNS berühren:

curl -H "Host: example.com" http://127.0.0.1

5. Schalter DNS

Ändern Sie den A-Record auf die neue IP und senken Sie die TTL auf 300 Sekunden pro Tag vor – der alte Wert läuft schnell ab. Innerhalb weniger Minuten sind die meisten Besucher auf dem neuen Server; Nachzügler kommen in den nächsten Stunden an.

Bescheinigungen: Lauf certbot --nginx auf dem neuen Server, nachdem DNS dort aufgelöst wurde. Wenn Sie Cloudflare-Proxy verwenden, drehen Sie den Datensatz um und stellen Sie ihn wie gewohnt neu aus - die Befehle sind in der Nginx-Leitfaden.

6. Überprüfung und anschließende Stilllegung

Überprüfen Sie von mehreren Orten: Website, API, Mail, Cron-Jobs, Backups. Beobachten Sie die Protokolle des alten Servers für eine Stunde - jeder verbleibende Datenverkehr bedeutet, dass etwas immer noch auf die alte IP zeigt.

tail -f /var/log/nginx/access.log
crontab -l
systemctl list-timers

Behalten Sie den alten Server eine Woche nach dem Wechsel. Dann stornieren Sie es - kein Drama und ein einfaches Rollback, wenn Sie etwas verpasst haben.

Schnelle Antworten

Benötigt die Migration Downtime?

Bei der Zwei-Pass-Rsync-Methode ist die Ausfallzeit nur die endgültige Synchronisation plus DNS-Ausbreitung - typischerweise 2 bis 10 Minuten. Eine Wartungsseite auf dem alten Server macht es unsichtbar.

Werden IP-Adressen in Configs brechen?

Jede fest codierte alte IP muss sich ändern: nginx-Upstreams, App-Konfigurationen, Firewall-Erlaubnislisten. Durchsuchen Sie die Konfigurationen mit grep nach der alten IP vor der endgültigen Synchronisierung.

Kann Buran den Server für mich verschieben?

Die Bereitstellung erfolgt vollautomatisch, und das Panel bietet Ihnen den Zugriff auf die Konsole und die Neuinstallation; Migration ist ein Standard-Rsync-Job, den Sie in einer halben Stunde selbst ausführen können. Wenn etwas nicht passt, antwortet [email protected] innerhalb von 30 Minuten.

Related