Mi compañía acaba de hacer esto con varios sitios web grandes. El procedimiento básico que seguimos fue:
- Baje el TTL del dominio tanto como sea posible. Haga esto por adelantado al menos tanto tiempo como el TTL actual.
- Configure el sitio web en el nuevo servidor exactamente como desea que sea el "producto final"
- Agregue un nombre con alias al sitio en el nuevo servidor, como www2.domain.com o www-new.domain.com. Con Apache, usaría la directiva ServerAlias . Si el sitio tiene algún código dinámico (PHP, mod_perl, RubyOnRails, etc.), asegúrese de que el sitio se comportará y responderá correctamente con este nuevo nombre.
- En el momento de la transición, configure una redirección en el servidor anterior que apunte al nuevo servidor
- Cambiar DNS para www para ir a la nueva IP.
Para Apache, probablemente debería usar mod_rewrite para la redirección para poder preservar los URI solicitados por el cliente. Una implementación simple sería:
# old server
<VirtualHost 1.1.1.1:80>
ServerName www.domain.com
RewriteEngine on
RewriteRule ^(.*)$ http://www-new.domain.com$1 [L]
</VirtualHost>
# new server
<VirtualHost 1.1.1.2:80>
ServerName www.domain.com
ServerAlias www-new.domain.com
</VirtualHost>
Esto hará una redirección temporal 302 para www.domain.com/anything a www-new.domain.com/anything. Desea que sea temporal porque probablemente desee que los motores de búsqueda solo indexen www.dominio.com, no www-nuevo.dominio.com.
Una vez que el cambio de DNS para www.dominio.com se ha propagado a su satisfacción, puede volcar www-new por completo, o facilitar a cualquiera que lo use nuevamente a www con otra redirección. Es casi el mismo proceso que el anterior; configure el servidor antiguo para manejar www-new, cambie el DNS para www-new para que apunte al servidor antiguo y configure una redirección en el servidor antiguo que envía tráfico www-new a www:
# old server
<VirtualHost 1.1.1.1:80>
ServerName www-new.domain.com
RewriteEngine on
RewriteRule ^(.*)$ http://www.domain.com$1 [R=301,L]
</VirtualHost>
# new server
<VirtualHost 1.1.1.2:80>
ServerName www.domain.com
# ServerAlias removed, no longer needed
</VirtualHost>
Esta vez desea hacer una redirección 301 permanente, nuevamente para dar una pista en los rastreadores de motores de búsqueda de que www.dominio.com es el sitio que desea que indexen.