Home / Guías / Migración VPS

Mueva su servidor en unos 30 minutos

Moving hosts suena aterrador y es principalmente rsync, DNS y paciencia. El truco es dos pases: uno lento mientras el viejo servidor sigue funcionando, y un final rápido que toma segundos.

1. Preparar el nuevo servidor

Orden a Buran VPS, instalar la misma versión OS que el servidor antiguo, y hacer los conceptos básicos: SSH llaves y cortafuegos. Instalar los mismos servicios (nginx, PostgreSQL, Docker) en las mismas versiones, pero todavía no se inician.

2. Primer paso rsync — mientras todo está funcionando

Desde el nuevo servidor, tire los datos. Este pase puede tardar tanto como quiera; nadie lo nota.

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

Los directorios de datos de bases de datos están excluidos a propósito: un PostgreSQL en vivo o MySQL dir copiado archivo por archivo está roto. Las bases de datos se mueven como basuras.

3. Bombear las bases de datos

En el antiguo servidor:

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

Tire los vertederos al nuevo servidor e importarlos:

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

4. El interruptor - una ventana de dos minutos

Ponga la aplicación en modo de mantenimiento, ejecute la sincronización final y comience los servicios:

# 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

Prueba localmente primero - antes de tocar DNS:

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

5. Interruptor DNS

Cambia el registro A al nuevo IP y baja el TTL a 300 segundos al día antes — el valor antiguo expira rápidamente. En pocos minutos la mayoría de los visitantes están en el nuevo servidor; los traficantes llegan a las próximas horas.

Certificados: ejecutar certbot --nginx en el nuevo servidor después de DNS resuelve allí. Si utilizas el proxy Cloudflare, voltea el registro y vuelve a registrar como de costumbre, los comandos están en el Guía Nginx.

6. Verificar, luego desmantelar

Check from several places: website, API, mail, cron jobs, backups. Vea los registros del antiguo servidor durante una hora: cualquier tráfico quede allí significa algo que aún apunta en la vieja IP.

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

Mantenga el antiguo servidor durante una semana después del interruptor. Luego cancelarlo, sin drama, y una vuelta fácil si te perdiste algo.

Respuestas rápidas

¿La migración requiere tiempo de inactividad?

Con el método de dos pasos rsync, el tiempo de inactividad es sólo la sincronización final más la propagación DNS — típicamente de 2 a 10 minutos. Una página de mantenimiento en el antiguo servidor lo hace invisible.

¿Las direcciones IP se romperán en los configs?

Cualquier IP vieja y codificada tiene que cambiar: nginx upstreams, app configs, firewall allowlists. Busque los configs con grep para el antiguo IP antes del sincronizado final.

¿Puede Buran mover el servidor para mí?

El suministro es totalmente automático, y el panel le da consola y acceso de reinstalación; la migración es un trabajo rsync estándar que se puede ejecutar en media hora. Si algo no encaja, [email protected] responde dentro de 30 minutos.

Relacionados