OffshoreVps
Guías18 oct 20268 min de lecturaPor el equipo de OffshoreVps

Migra un sitio web a un VPS nuevo sin tiempo de inactividad

Una migración de sitio web paso a paso: reduce el TTL de DNS, copia los archivos y la base de datos dos veces, prueba con una entrada en hosts, cambia el DNS y conserva el servidor antiguo hasta que el tráfico se agote.

La mayoría de las migraciones dolorosas fallan por errores de orden, no técnicos. La gente cambia primero el DNS y luego descubre que la base de datos está desactualizada. Sigue el orden de abajo y los visitantes no notarán el cambio.

Ventana de terminal en un VPS que muestra los comandos usados para migrar un sitio web sin tiempo de inactividad, empezando por “rsync -aHAX --info=progress2 -e ssh /var/www/ us”
El tipo de comandos que ejecutarás en tu servidor en esta guía.

Paso 1: baja el TTL del DNS con antelación

Al menos un día antes de la migración, fija el TTL de tus registros A y AAAA en 300 segundos. Las cachés que ya tienen el valor antiguo necesitan tiempo para expirar, así que este paso no se puede apurar el mismo día.

Paso 2: construye primero el servidor nuevo

Crea el nuevo VPS, aplica la lista de verificación de seguridad e instala la misma pila: servidor web, versión de PHP o Node, motor de base de datos. Usar las mismas versiones elimina la mayoría de las sorpresas. Copia la configuración, no solo el contenido.

Paso 3: copia los archivos

rsync -aHAX --info=progress2 -e ssh /var/www/ user@NEW_IP:/var/www/

Ejecútalo una vez ahora. La primera vez es lento y las repeticiones son rápidas, y de eso se trata.

Los pasos de esta guía en orden: 1. reduce el TTL de DNS con antelación; 2. construye primero el servidor nuevo; 3. copia los archivos; 4. prueba antes de enviar a nadie allí; 5. congela, sincroniza por última vez, cambia; 6. vigila y después retira el servidor antiguo
Los pasos de esta guía, en orden.

Paso 4: copia la base de datos

# on the old server
mysqldump --single-transaction --routines --triggers mydb | gzip > mydb.sql.gz
scp mydb.sql.gz user@NEW_IP:~/
# on the new server
gunzip < mydb.sql.gz | mysql mydb

Esto es un ensayo. Te da una copia funcional contra la que probar.

Paso 5: prueba antes de enviar a nadie allí

Apunta tu propio ordenador al nuevo servidor editando su archivo hosts: añade NEW_IP example.com www.example.com. Navega por el sitio, inicia sesión, envía un formulario y haz un pedido de prueba. Arregla lo que falle mientras el público sigue viendo el servidor antiguo. Instala el certificado TLS con un desafío DNS para que funcione antes del cambio.

Paso 6: congela, sincroniza por última vez y cambia

  1. Pon el sitio antiguo en modo de mantenimiento o de solo lectura.
  2. Repite el rsync y el volcado e importación de la base de datos.
  3. Cambia los registros DNS a la nueva IP.
  4. Elimina la entrada del archivo hosts y comprueba desde una red diferente.

La ventana de solo lectura suele durar minutos. Para una tienda o un sitio con inicios de sesión, prográmala para un momento tranquilo.

Paso 7: vigila y luego retira el servidor antiguo

Conserva la máquina antigua varios días. Algunos resolvedores ignoran los TTL, así que seguirá llegando un goteo de tráfico. Reenvía o haz proxy de ese tráfico a la nueva IP si puedes, revisa tus registros y luego vuelve a subir el TTL a un valor normal. Haz una copia de seguridad nueva del servidor nuevo antes de borrar el antiguo.

¿Te mudas también a otra jurisdicción? Antes compara opciones en jurisdicciones de hosting offshore comparadas.