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