Esta información se conserva como histórico. Te recomendamos visitar el nuevo portal:
www.linuxparatodos.net
 
 


Redirigir peticiones http de una maquina a otra sin perder hostname
Autor: Javier EDuarte | Lecturas: 908 | | viernes, 12 de febrero 2010 @ 10:30 CST |

Hoy me he encontrado con el siguiente problema, tengo que migrar un el site foo.com del servidor A al servidor B, no podemos tener el site caido mucho tiempo mas allá de unos pocos minutos (lo que tardamos en hacer un dump de los datos y una copia de ficheros), tampoco queremos cambiar el dominio del site (por ejemplo usando una redirección del estilo.foo.com a new.foo.com).


Resumiendo: queremos que todas las peticiones que entren al servidor A para el virtual host foo.com le lleguen al servidor B que tiene tambien configurado ese mismo dominio en sus virtual hosts.

Afortunadamente Apache 2 es el servidor web del dominio foo.com.

¿Como lo hacemos?

Voy a proponer una solución al problema utilizando mod_proxy:

Añadimos estas 3 lineas a la configuración del servidor A.

ProxyPass / http://192.240.2.93/
ProxyPassReverse / http://192.240.2.93/
ProxyPreserveHost On
Explicamos para que sirven los parametros:

ProxyPass redirige la petición del servidor A a la ip del servidor B.
ProxyPassReverse cambia la URL en las cabeceras Location, Content-Location y URI de las respuestas HTTP redirect. Se utiliza para que la respuesta de la petición vaya al cliente a traves del host A, lo cual es muy util cuando redirigimos peticiones a hosts en una red privada que no tienen acceso a internet. En nuestro caso esta directiva es opcional y podemos decidir que sea el host B el que responda al cliente directamente.
ProxyPreserveHost mantiene la cabecera Host de la petición en la redirección al servidor B, esta pensado especificamente para poder hacer redirecciones a servidores que utilicen virtual hosts basados en nombres de dominio.
En el host B tenemos que tener una configuración similar a esta para que acepte las peticiones que le entran desde el servidor A:
<virtualhost *:80>
ServerName foo.com
DocumentRoot /var/www/foo
<directory "/var/www/foo">
Order allow,deny
Allow from all
</directory>
ErrorLog /var/log/apache2/foo.err
CustomLog /var/log/apache2/foo.log combined
</virtualhost>

Relacionado con esto...

Opciones de la Noticia


Redirigir peticiones http de una maquina a otra sin perder hostname | 0 comentarios | Crea una cuenta nueva
Los siguientes comentarios son de la persona que los haya enviado. Este sitio no se hace responsable de las opiniones expresadas por los participantes en los foros y secciones de comentarios, y el hecho de publicar las mismas no significa que esté de acuerdo con ellas.
CONDICIONES DE USO     Imagen gráfica -ORVON Internet Service Bureau- www.orvon.com
 Derechos de autor © 2010 Linux Para Todos
 Todas las marcas y derechos en esta página son de sus respectivos dueños.
 Puede sindicar nuestras NOTICIAS a través de el fichero RSS dando click AQUI.
O si desea sindicar el FORO DE SOPORTE TECNICO lo puede hacer dando click AQUI
O si desea sindicar los NUEVOS MANUALES lo puede hacer dando click AQUI
Otra web montada con Geeklog 
Esta página fue creada en 0.21 segundos