Migrar un sitio web a un VPS: guía paso a paso
Actualizado el 6 min de lecturaPor el equipo de DNSPeek
Para mover un sitio web a un VPS, prepara primero el servidor: actualizaciones, claves SSH, un firewall y el mismo stack web con el que funciona hoy el sitio. Copia los archivos y la base de datos, configura un host virtual para tu dominio y prueba el sitio en la IP del VPS con su dominio real antes de cambiar los DNS. Haz el cambio con un TTL corto, emite el certificado y deja el correo en un proveedor dedicado en lugar de en el VPS.
Qué cambia al dejar el hosting compartido
En un hosting compartido, el proveedor gestiona el servidor web, PHP, la base de datos, el correo, las copias de seguridad y las actualizaciones de seguridad. En un VPS no gestionado, todo eso pasa a ser tuyo. La ventaja es el control y unos recursos predecibles; el coste es que nada está configurado hasta que lo configuras tú. Planifica la mudanza como dos proyectos: montar el servidor y luego mover el sitio a él.
| Tarea | Hosting compartido | VPS no gestionado |
|---|---|---|
| Actualizaciones de seguridad | El hosting | Tú (o las actualizaciones automáticas) |
| Servidor web, PHP, base de datos | Preinstalados | Los instalas y ajustas tú |
| Alojamiento del correo | Normalmente incluido | Mejor en un proveedor dedicado |
| Copias de seguridad | A menudo incluidas | Las configuras tú, idealmente fuera del servidor |
| Certificados | Automáticos | Certbot o un cliente ACME similar |
Prepara el servidor
Parte de una versión de Linux con soporte. Los comandos siguientes son para Ubuntu o Debian; adapta los nombres de los paquetes para otras distribuciones.
# Updates and a non-root user with sudo
apt update && apt upgrade -y
adduser deploy && usermod -aG sudo deploy
# Firewall: SSH, HTTP and HTTPS only
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
# Automatic security updates
apt install -y unattended-upgradesInicia sesión con una clave SSH y luego desactiva el acceso por contraseña en SSH. Instala el stack que necesita el sitio, por ejemplo nginx o Apache, PHP-FPM con la misma versión y extensiones que el hosting anterior, y MySQL o MariaDB. Igualar la versión de PHP evita sorpresas; actualízala más adelante como un paso aparte.
Mueve el sitio paso a paso
Paso 1: Reduce el TTL
Pon los registros A con un TTL de 300 segundos un día antes del cambio. Revisa el valor actual con el verificador de TTL.
Paso 2: Protege el VPS e instala el stack
Aplica las actualizaciones, crea un usuario con sudo, activa las claves SSH y un firewall, y luego instala las versiones de servidor web, PHP y base de datos que necesita el sitio.
Paso 3: Copia los archivos
Copia el sitio con
rsync -avzpor SSH, o descarga un archivo comprimido del hosting anterior y súbelo. Asigna la propiedad al usuario del servidor web.Paso 4: Importa la base de datos
Expórtala en el hosting anterior, crea una base de datos y un usuario en el VPS, importa el volcado y actualiza la configuración de la aplicación con las nuevas credenciales.
Paso 5: Configura el host virtual
Añade un bloque server para el dominio y www, traduce las reglas de .htaccess que haya y recarga el servidor web.
Paso 6: Prueba en la IP del VPS antes de los DNS
Crea un enlace de vista previa con el dominio y la IP del VPS, y usa el modo Solo HTTP u Omitir verificación hasta que haya un certificado instalado. Recorre el sitio, envía formularios e inicia sesión.
Paso 7: Ejecuta un informe de QA
Rastrea la vista previa con un informe de QA para detectar páginas predeterminadas del servidor web, errores 502 de PHP-FPM, reglas de reescritura que faltan y errores de PHP.
Paso 8: Cambia los DNS y emite el certificado
Haz una sincronización final de archivos y base de datos, apunta los registros A al VPS, emite el certificado y sigue la propagación con el verificador de propagación de DNS.
Configura el host virtual
El servidor web elige el sitio según el nombre de dominio de la solicitud. Configura un bloque server para example.com y para www.example.com:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
}Si el sitio dependía de reglas de .htaccess en el hosting anterior, tradúcelas para nginx: las URL amigables, las redirecciones y las restricciones de acceso no se trasladan solas. Ajusta la ruta del socket de PHP-FPM a la versión que instalaste. Prueba la configuración con nginx -t antes de cada recarga y revisa los ajustes del pool de PHP-FPM: el número predeterminado de procesos es bajo, y un sitio con mucho tráfico que se queda sin procesos responde con errores 502 o 504.
HTTPS antes del cambio
El desafío HTTP habitual de Let’s Encrypt solo funciona cuando el dominio ya apunta al VPS. Tienes tres opciones: emitir el certificado justo después del cambio (unos minutos con HTTP sin cifrar o con un certificado autofirmado), usar el desafío DNS, que funciona antes del cambio si tu proveedor de DNS tiene una API, o copiar el certificado existente del hosting anterior.
Para las pruebas, un VPS recién creado sin ningún certificado funciona con una vista previa de DNSPeek en modo Solo HTTP: los visitantes siguen abriendo la vista previa por HTTPS y DNSPeek habla HTTP sin cifrar con el servidor. Haz primero que la aplicación confíe en el HTTPS del proxy, o una redirección que fuerza HTTPS entrará en bucle. La documentación muestra los ajustes de PHP y nginx: Origen sin SSL.
El correo: no lo muevas al VPS
Si el hosting compartido anterior también gestionaba tu correo, la mudanza es un buen momento para separarlos. Mantener bien un servidor de correo (filtrado de spam, reputación, DKIM, listas de bloqueo) es un trabajo en sí mismo, y muchos proveedores de nube bloquean por defecto el puerto 25 de salida. Mueve los buzones a un proveedor de correo dedicado, actualiza MX, SPF, DKIM y DMARC, y deja que el sitio web envíe el correo transaccional a través de un servicio SMTP autenticado. Verifica los registros con la consulta de registros MX, el verificador de SPF y el verificador de DMARC.
Después del cambio
- Emite o verifica el certificado y revísalo con el verificador de SSL.
- Configura copias de seguridad que salgan del servidor: volcados de la base de datos y archivos, a un almacenamiento de objetos o a otra máquina, y prueba una restauración.
- Añade una monitorización básica: comprobaciones de disponibilidad, espacio en disco y expiración del certificado.
- Recrea las tareas cron del hosting anterior.
- Sigue el checklist posterior a la mudanza.
Checklist de migración a un VPS
VPS
- Actualizaciones aplicadas, actualizaciones automáticas activadas
- Usuario con sudo que no es root, claves SSH, acceso por contraseña desactivado
- El firewall solo permite SSH, HTTP y HTTPS
- Misma versión de PHP y extensiones que el hosting anterior
- Archivos copiados, propiedad y permisos configurados
- Base de datos importada, configuración de la aplicación actualizada
- Host virtual para el dominio y www; reglas de reescritura traducidas
- Sitio probado en la IP del VPS con un enlace de vista previa
- Informe de QA sin problemas
- Correo movido a un proveedor dedicado; MX, SPF, DKIM y DMARC configurados
- Sincronización final, DNS cambiados, certificado emitido
- Copias de seguridad fuera del servidor y una restauración probada
- Monitorización de disponibilidad y de disco activa
Preguntas frecuentes
¿Un VPS es más rápido que un hosting compartido?
A menudo sí, porque la CPU y la memoria están reservadas para ti en lugar de compartirse con muchos otros sitios. Aun así, la velocidad depende de la configuración: los ajustes de PHP-FPM, la caché y la base de datos importan tanto como el hardware.
¿Puedo obtener un certificado SSL en un VPS antes de cambiar los DNS?
Sí, con un desafío DNS si tu proveedor de DNS lo admite, o copiando el certificado existente del hosting anterior. El desafío HTTP estándar solo funciona cuando el dominio ya apunta al VPS.
¿Cómo pruebo mi sitio en un VPS antes de apuntar el dominio a él?
Solicita el sitio a la IP del VPS con su dominio real. Un enlace de vista previa lo hace en cualquier navegador y se puede compartir; una entrada en el archivo hosts lo hace en tu propio equipo. Abrir la IP sola suele mostrar la página predeterminada del servidor web.
¿Debo alojar el correo en mi VPS?
Normalmente no. Los servidores de correo necesitan atención continua por el filtrado de spam, la reputación y las listas de bloqueo, y muchos proveedores de nube bloquean el puerto 25 de salida. Un proveedor de correo dedicado y un servicio SMTP para el sitio web es más sencillo y fiable.
¿Cuál es el error más habitual al pasar a un VPS?
Olvidar el trabajo que el hosting anterior hacía sin que se notara: copias de seguridad, actualizaciones de seguridad, correo y tareas cron. Haz una lista de todo lo que ofrecía el hosting anterior antes de la mudanza y decide quién se encarga de cada parte en el VPS.