Portal de Publicaciones en un Diaguita en Intranet (aportes UNMdP, UNSL y UNVM)

Hola, en el comité había planteado el problema respecto a la publicación de convocatorias en el portal que trae Diaguita cuando tenemos el sistema en Intranet.

Un técnico de una universidad nos había planteado tener una instancia de Diaguita con usuario postgres de sólo consulta que apunte a la base de producción y en un servidor con acceso externo. Me parece una solución bastante coherente a pesar que hay que mantener dos instancias.

Me habían comentado que otras universidades establecieron algunas reglas de apache para la publicación, no creo que esa sea una solución que nos sirva ya que el servidor de nuestra aplicación no tiene acceso a la red externa, igualmente me gustaría saber como lo configuraron.

Cualquier información que nos puedan mencionar al respecto nos va a venir bien.

Saludos y gracias!

Gabriel

Hola Grabriel, en nuestra universidad tenemos preparado para cuando esté el OK de las autoridades la salida del portal público, incluso siendo el servidor de la red interna (ip privada). Lo que tenemos acá es un proxy reverso con NGNX. (aunque también se puede hacer con apache).

El tema es asi: Vos tenes por un lado el servidor del Diaguita, en la intranet, con una ip privada, y por otro lado un servidor con IP pública donde le configuras un proxy reverso (recibe las peticiones desde la nube, y se las reenvia a la IP interna, y hace lo inverso para las respuestas desde el server interno).

Además tenemos algunas reglas adicionales que si alguien que está viendo el portal, e intenta acceder a la aplicación (por ejemplo accediendo sin parametros al ‘aplicacion.php’) directamente lo echa para otro lado.

Contá conmigo para lo que necesites de ayuda.

Saludos

Diego

Hola Diego! esta muy buena esa solución, seguramente te voy estar consultando algún que otro detalle. Saludos y gracias!

Gabriel

Hola buenos días, en nuestra universidad tenemos actualmente 2 instancias de Diaguita corriendo, la que tiene acceso desde el exterior se conecta con un usuario de postgres de solo lectura y la otra apunta a producción.

Diego como son las reglas adicionales que tiene para hacer los que planteas de: …si alguien que está viendo el portal, e intenta acceder a la aplicación (por ejemplo accediendo sin parametros al ‘aplicacion.php’) directamente lo echa para otro lado.

Nosotros tambien usamos un proxy reverso nginx.

Saludos.

Hola Carlos, para poder solucionar ese inconveniente, hice lo siguiente:

  • NO HICE UN proxy_pass DEL RAIZ DE LA APLICACIÓN diaguita. Eso derivaría TODO el trafico a la aplicación, que es justamente lo que permite abrir la pantalla de logueo al sistema… En lugar de hacer eso, hice los proxy_pass para cada subdirectorio, es decir un proxy_pass para diaguita/skins, otro para diaguita/css, etc…

  • Para la aplicación en sí, hice una definición directamente al archivo “aplicacion.php” (y no al directorio) donde me aseguro que las URI TENGAN el código numérico (ID) de las únicas 2 operaciones que consume: 110000003 y 100000024. Si no tiene alguna de esas dos IDs, lo echo para otro lado.

(se complica un poco los condicionales IF cuando son mas de uno como en este caso, pero le encontré la vuelta… También hay algunas definiciones mas en la configuración, pero lo principal es esto que te comenté)

Adjunto al mensaje ,el archivo de configuración (detallado con los cambios que tenés que hacer para implementarlo).

Saludos!


ejemplo_configuracion_nginx.conf.zip (1.07 KB)

Hola Diego.

Muchas gracias por el ejemplo que subiste, te comento que lo modifique algunas cosas que tenemos distinto en el nginx y actualmente esta en producción.
Cambios necesarios para la descarga de los documentos asociados.:

[ol]- Agregue los códigos numérico (ID) 100000039 y 29000009

  • Agregar
    location /diaguita/temp {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_pass http://XX.XX.XX.XX:80/diaguita/temp; #IP Y PUERTO QUE CORRESPONDA
    }[/ol]

Saludos.

Buenas Chicos!!!
Muchas gracias por el Aporte Gaby, Diego y Carlos!!!
Saludos!!!.
Juan Manuel.

Saludos, Comunidad. En la UNVM usamos Apache como proxy con la siguiente configuración:
`

CONFIG PARA Diaguita 2.5.0

Para usar nuesta config hay que habilitar mod_proxy y mod_macro

sudo a2enmod proxy

sudo a2enmod macro

<Macro MacroDiaguita ${HostExt} ${ipInterna} ${DirDiaguita} ${DirToba}>
<VirtualHost :80>
ProxyPreserveHost On
ProxyRequests Off
RewriteEngine on
RewriteCond %{QUERY_STRING} (.
(?:^|&))(ai=diaguita(?:|||%7C%7C))(110000003|100000024|29000009|100000039)((?:&|$).)
RewriteRule ^(${DirDiaguita}aplicacion.php)$ ${ipInterna}$1?%1%2%3%4 [P]
ProxyPassMatch ^(${DirDiaguita}(?:toba|skins|img|css|temp|js|rest).
)$ “${ipInterna}$1”
ProxyPassMatch ^(${DirToba}(?:toba|skins|img|css|temp|js|rest).*)$ “${ipInterna}$1”
#PARA LA APP LA URL CONFIGURADA EN DIAGUITA DEBE SER SIN LA / AL FINAL
ProxyPassReverse “/” “${ipInterna}:80”

ServerName ${HostExt}
CustomLog /var/log/apache2/diaguita-access.log combined
ErrorLog /var/log/apache2/diaguita-error.log
Use MacroDiaguita DOMINIO http://IP_INTERNA /diaguita/ /toba_diaguita/ UndefMacro MacroDiaguita ` En la penúltima línea, solo hay que reemplazar DOMINIO con el dominio público del servidor proxy e IP_INTERNA con la dirección IP de la máquina en la LAN. Cabe destacar que esta configuración está diseñada para Diaguita 2.5.0 con la configuración de URLs predefinida.

Buenas tardes Matías.
Esta configuración de Apache como proxy la hacen en el Servidor de Diaguita?
Saludos.

Buen día Martín.

La configuración iría en el servidor expuesto a Internet que hace de proxy reverso. Así, el servidor Diaguita quedaría en la LAN sin poder ser accedido desde afuera de manera directa.

Buenos días.
Perfecto!
Muchas Gracias!
Saludos.