martes, 7 de noviembre de 2017

Apache mod_proxy


Caso de Estudio
Brindar servicios web con mas de un servidor y una sola IP pública.

Solución
Configuración Apache mod_proxy

Un reverse proxy es un servidor proxy instalado en el lugar de uno o más servidores web. Todo el tráfico entrante de Internet y con el destino de uno de esos servidores web pasa a través del servidor apache proxy el cual redirige la solicitud al servidor correspondiente.










Configuración

Para que todo este servicio funcione, además de la configuración que se presenta, los clientes deben consultar a un servidor de nombres, el cual responde la IP del servidor apache proxy cuando le preguntan por cualquiera de los dominios.

vim /etc/httpd/conf/httpd.conf

NameVirtualHost *:80
# Puerto que atiende las solicitudes


# VirtualHost que atiende al nombre sur.cfe.edu.uy .
# El contenido esta alojado dentro del mismo servidor.
<VirtualHost *:80>
ServerName sur.cfe.edu.uy

DocumentRoot /var/www/html

</VirtualHost>



# VirtualHost que atiende al nombre www.sur.cfe.edu.uy .
# El contenido esta alojado dentro del mismo servidor en otro directorio.
<VirtualHost *:80>

ServerName www.sur.cfe.edu.uy

DocumentRoot /var/www/html/joomla

</VirtualHost>



# VirtualHost que atiende al nombre norte.cfe.edu.uy .
# El contenido esta alojado dentro de un servidor con nombre norte.cfe.edu.uy
<VirtualHost *:80>

ServerName norte.cfe.edu.uy

ProxyPass / http://norte.cfe.edu.uy/

ProxyPassReverse / http://norte.cfe.edu.uy/

</VirtualHost>



# VirtualHost que atiende al nombre noreste.cfe.edu.uy .
# También atiende al nombre www.noreste.cfe.edu.uy .
# El contenido esta alojado dentro de un servidor con nombre noreste.cfe.edu.uy
<VirtualHost *:80>

ServerName noreste.cfe.edu.uy

ServerAlias www.noreste.cfe.edu.uy

ProxyPass / http://noreste.cfe.edu.uy/

ProxyPassReverse / http://noreste.cfe.edu.uy/

</VirtualHost>









Explicación de las variables

<VirtualHost *:80>

ServerName norte.cfe.edu.uy

ProxyPass / http://norte.cfe.edu.uy/

ProxyPassReverse / http://norte.cfe.edu.uy/

</VirtualHost>



ServerName norte.cfe.edu.uy
Atiende al dominio norte.cfe.edu.uy

ProxyPass / http://norte.cfe.edu.uy/

Redirege las peticiones a http://norte.cfe.edu.uy/


ProxyPassReverse / http://norte.cfe.edu.uy/

Indica que va a ser un proxy reverso, modificando las cabeceras HTTP Location, Content-Location y URI en la respuesta, para que ésta vuelva al cliente a través del servidor A.


Registros en /etc/hosts
Necesita especificar en este archivo las ip y los nombres de los otros servidores web para que los encuentre en la red local.

192,168,1,3 norte.cfe.edu.uy
192,168,1,3 noreste.cfe.edu.uy
192,168,1,3 www.noreste.cfe.edu.uy


Registros en servidor DNS
En el servidor DNS se especifican todos los host con la misma ip (Dirección ip pública).

norte IN A 192,168,1,3
noreste IN A 192,168,1,3
www.noreste IN A 192,168,1,3
sur IN A 192,168,1,3




Nota:


ProxyPass / http://192.240.2.93/
ProxyPassReverse / http://192.240.2.93/
ProxyPreserveHost On
La primera línea redirige la petición del servidor A al B. La segunda indica que va a ser un proxy reverso, modificando las cabeceras HTTP Location, Content-Location y URI en la respuesta, para que ésta vuelva al cliente a través del servidor A. Por último, la tercera línea preservará la cabecera Host para hacer redirecciones basadas en el dominio. Esto es porque el caso que explica el artículo original, lo que se quería hacer es que las peticiones enviadas al dominio foo.com (que entendemos que resuelve la IP del servidor A) sean procesadas por el servidor B.

No hay comentarios:

Publicar un comentario