ODK aggregate y mod proxy de apache

ESCENARIO:

Necesitaba publicar un servidor ODK aggregate que estaba desplegado en una máquina virtual. Por tanto no era posible añadir el servidor ODK aggregate a al servidor web existente.

El problema que encontré fue que solo disponía de una IP pública, por tanto todas las peticiones http son redireccionadas al servidor web principal.

Encontré dos soluciones:

  • Utilizar la función de proxy del router mikrotik para redireccionar dependiendo del subdominio entrante.
  • Utilizar el servidor apache del servidor principal como un proxy inverso.

La primera opción fue descartada por la dificultad técnica y por qué no quería sobrecargar el pequeño procesador del router mikrotik. Por tanto, la segunda opción fue la escogida.

Network's diagram

 

PRE REQUISITOS:

  • Un servidor apache funcionando donde vaian a parar todas las peticiones http externas.
  • Un servidor ODK aggregate funcionando en otra IP interna.

PASSOS:

  • Para utilizar la función proxy del servidor apache es necesario activar el módulo principal (“proxy”) y el submódulo (“proxy_http”).
a2enmod proxy
a2enmod proxy_http
  • Creamos un nuevo host virtual de apache en /etc/apache2/sites-available/ y utilizamos el código siguiente:
<VirtualHost *:80>
        ServerAdmin user@domain
        #USE YOUR OWN DOMAIN, IT'S CRTICAL
        ServerName subdomain.domain.

        ProxyRequests Off
        ProxyPreserveHost On
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>
        ProxyErrorOverride On
        ProxyPass / http://10.0.0.10/
        ProxyPassReverse / http://10.0.0.10/
     

</VirtualHost>
  • Activamos el host virtual que acabamos de crear, en este caso “example.conf”.
a2ensite example.conf
  • Reiniciamos apache
service apache2 restart

Y debería funcionar!

Atención:

Tuve algunos problemas descargando y cargando formularios al servidor ODK aggregate hasta que añadí la línea inferior al fichero de configuración del host virtual.

ProxyPreserveHost On

Links:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *