miércoles, 9 de mayo de 2012

Cómo migrar una web de forma correcta

Hoy tras superar numerosos obstáculos para completar la migración del servidor web... a vuelto a estar operativo de nuevo.

Paso a mencionar cuáles son los pasos a realizar en caso de que se quiera hacer una migración de un servidor a otro en 4 partes:
  1. Copiamos todo el contenido del servidor antiguo al nuevo.
  2. Cambiamos los registros DNS para nuestro dominio y los apuntamos al nuevo server. Esto tarde de 36-48 en realizarse, puesto que los DNS de Internet han de actualizarse y propagar la nueva dirección del domino.
  3. Configuramos un servidor MySQL duplicado para que la base de datos del servidor antiguo y el nuevo se mantuvieran actualizadas.
  4. Cuando ya está movido todo y los DNS apuntando al nuevo server, tenemos que dar de baja los virtual host de apache para la web antigua. Con ello ya nadie accederá por equivocación a la antigua web.
  5. Quitamos el servidor mysql duplicado.
  6. Resolvemos errores si los hay.

En primer lugar cabe mencionar que nosotros migramos la web corporativa haciendo una copia con rsync del servidor completo. Esto tiene algunas ventajas y algunos inconvenientes.
  • Las ventajas son que al copiar todo, no tenemos que preocuparnos por volver a instalar todos los servidores que teníamos anteriormente y no hace falta migrar los usuarios ni los ficheros de configuración.
  • Los inconvenientes es que hay que cambiar de forma manual multitud de ficheros que tienen parámetros que hacen referencia al servidor antiguo. Como ejemplos tenemos el /etc/hosts, /etc/hostname, archivos .php de la web, configuración de los servidores, etc...
 La diferencia radica que montando todo desde 0 sabes que es lo que estás configurando aunque tardas más tiempo en volver a tener toda la infraestructura y al copiarlo tardas mucho menos tiempo pero entras en "pánico" en caso de que te aparezca algún error.

Este fue el caso nuestro: el correo dejó de funcionar y la parte de la web que administraba las reservas no funcionaba.

Analicemos por partes que es lo que ocurría y que soluciones tomamos para remediarlo.

En primer lugar y mayor problema de todos era que el servidor web no estaba recibiendo correo. El 80% de las reservas que los usuarios realizaban para nuestros establecimientos se recibían por correo. Esto se tradujo en 3 días sin tener reservas, hablando en plata 3 días perdiendo dinero.
  • Creamos una entrada mx en el servidor DNS con el nombre mail.hostalescomohoteles.com.
  • Cambiamos la configuración de postfix para que entendiera que el nombre del nuevo servidor y la dirección ip habían cambiado.
  • Configuramos Clamav (antivirus para el correo) para que trabajara con el nuevo nombre del servidor.
  • Configuramos SpamAssasin (configuración antispan) para que trabajara con el nuevo nombre del servidor.
  • Descongestionamos la cola del correo del servidor para los mensajes acumulados.
 En segundo lugar la web dejó de funcionar en su totalidad.
  • Cambiamos las direcciones de los virtual host de apache, debido a que están apuntando al servidor antiguo.
  • La parte de administración de reservas no funcionaba por lo que hay que dar de alta una entrada A en el servidor DNS para secure.hostalescomohoteles.com. Esta dirección gestiona la parte de las reservas con seguridad SSL. (Puerto 443)
  • Ahora nos arroja un error a la hora de aceptar los pagos, esto era debido por que en multitud de archivos de la web estaba puesto la dirección ip del servidor antiguo. En este caso en especial era cuando realizábamos el pago a través del sistema tpv, porque enviaba la información al servidor antiguo y no al nuevo.
Tras solucionar estos resquicios ya tenemos el server funcionado. Saludos curiosos.

No hay comentarios:

Install Drupal 8 in CentOS

Drupal is an open source, flexible, highly scalable and secure Content Management System (CMS) which allows users to easily build and create...