Actualmente tengo un nombre de dominio registrado para un servidor Linux / Apache que voy a reemplazar por otro en una nueva dirección IP.
La migración de los datos será relativamente rápida y una interrupción de 5 minutos durante ese proceso es aceptable.
El registro DNS tiene un TTL de 6 a 12 horas aparentemente, que no puedo acelerar.
¿Cuáles son las posibles consecuencias de este cambio? Presumiblemente, los usuarios que todavía están mirando la dirección anterior continuarán accediendo al servidor anterior, mientras que los usuarios cuyo caché dns ha caducado o está vacío verán el nuevo dominio.
¿Es posible hacer algún tipo de redirección desde el servidor anterior (con Apache o iptables) a la nueva IP? El antiguo servidor puede continuar ejecutándose todo el tiempo que sea necesario.
Respuestas:
Puede usar un proxy inverso en el antiguo servidor web. Puede ser un poco difícil de configurar, pero siempre que su DNS esté actualizado, estará bien.
Lo que sucederá es:
Si está ejecutando Apache, busque mod_proxy. Si está ejecutando IIS, busque ISAPI Rewrite para obtener este tipo de funcionalidad.
(tenga en cuenta que el DNS en el servidor web anterior debe estar actualizado si desea usar el proxy con el nombre de dominio. De lo contrario, conéctelo directamente a la dirección IP y asegúrese de que el host esté escuchando en la IP sin un nombre de host)
fuente
/etc/hosts
123.456.789.12 my.domain.com
Esto solo le permitirá a su antiguo servidor web conocer la dirección actualizada. Cuando un cliente accede al antiguo servidor web (porque no tiene un DNS actualizado), el servidor web puede representar la solicitud mediante el nombre de dominio. No uso Apache pero aquí hay un ejemplo de Nginx: gist.github.com/scragg0x/738f144b33d17ef763d1Mi compañía acaba de hacer esto con varios sitios web grandes. El procedimiento básico que seguimos fue:
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:
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:
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.
fuente
De acuerdo con lo que @Farseeker recomendó, configuré la siguiente configuración en el antiguo servidor Apache para reenviar solicitudes al nuevo servidor:
Para asegurarme de que el servidor anterior tenía la dirección correcta, puse una entrada en
/etc/hosts
:También tuve que habilitar Apache
mod_proxy
y losmod_proxy_http
módulos, y volver a cargar la configuración:fuente
Es un hilo viejo pero tal vez ayude a alguien:
Además de las respuestas de Mark Henderson (mod_proxy) O James Sneeringer (redirección 302,301 a nuevos subdominios), se podría agregar una cosa más con respecto a la sincronización de la base de datos al mover aplicaciones grandes.
Si su proyecto web utiliza una base de datos (por ejemplo, MySQL), antes de cambiar el DNS, asegúrese de que las aplicaciones (por ejemplo, PHP) de ambos servidores estén conectadas a la misma base de datos. Para que las lecturas y escrituras vayan al mismo lugar y no tenga que lidiar con diferentes herramientas de sincronización de bases de datos después.
Esto (muy probablemente) afectaría el tiempo de carga en un servidor, pero para el período de cambio esto puede ser aceptado.
En caso de que el servidor de base de datos no sea accesible desde el exterior, también puede configurar mysql_proxy en el servidor web que tiene acceso a él y que es accesible desde IP externas.
fuente
Utilizo iptables para esto cuando necesito hacer esto; un poco de DNAT / SNAT y todo su tráfico reaparece mágicamente donde debería estar. Si tiene una necesidad real de mantener las direcciones IP de origen, un proxy inverso puede ayudar, al configurar los encabezados apropiados, pero eso requiere mucha atención en ambos extremos para asegurarse de que todo coincida, por lo que normalmente no me preocupo por eso para algo así como una migración, ya que es transitoria, y la reducción de TTL maneja la mayor parte.
fuente