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.
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.
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.
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).
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, 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”
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.
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.