ODK aggregate i mod proxy de apache

ESCENARI:

Necessitava publicar un servidor ODK aggregate que estava desplegat en una màquina virtual. Per tant no era possible afegir el ODK aggregate a al servidor web existent.

El problema que vaig trobar és que només disposava d’una IP pública, per tant totes les peticions http son redireccionades al servidor web principal.

Vaig trobar dos solucions:

  • Utilitzar la funció de proxy del router mikrtotik per a redireccionar depenent del subdomini entrant.
  • Utilitzar el servidor apache del servidor principal com un proxy invers.

La primera opció va ser descartada per la dificultat tècnica i perquè no volia sobrecarregar el petit processador del router mikrotik. Per tant la segona opció va ser la escollida.

Network's diagram

 

PREREQUISITS:

  • Un servidor apache funcionant on hi vagin a parar totes les peticions http externes.
  • Un servidor ODK aggregate funcionant en una altra IP interna.

PASSOS:

  • Per utilitzar la funció proxy del servidor apache és necessari activar el mòdul principal (“proxy”) i el submòdul (“proxy_http”).
a2enmod proxy
a2enmod proxy_http
  • Creem un nou host virtual a apache a /etc/apache2/sites-available/ i utilitzem el codi següent:
<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>
  • Activem el host virtual que acabem de crear, en aquest cas “example.conf”.
a2ensite example.conf
  • Reiniciem apache
service apache2 restart

I hauria de funcionar!

Atenció:

Vaig tindre alguns problemes descarregant i carregant formularis al servidor ODK aggregate fins que vaig afegir la línia inferior al fitxer de configuració del host virtual.

ProxyPreserveHost On

Links: