SIU-Guarani/Version3.14.0/vhost

De SIU
Saltar a: navegación, buscar

Configuración de VirtualHost

A continuación mostraremos un ejemplo, en el que se configurarán tres hosts virtuales de Apache, para:

  1. Atender el acceso general a Gestión, mostrando cómo restringir por rango de IPs.
  2. Atender accesos públicos a Gestión, permitiendo el acceso a un conjunto limitado de operaciones (solicitud de constancias y certificados desde 3w, validación de constancias), y prohibiendo el acceso al resto del sistema.
  3. Atender el acceso a la interfaz de Autogestión (3w)

Para los ejemplos, asumimos que tenemos registrados los siguientes dominios:

  1. g3.unx.edu.ar
  2. g3publico.unx.edu.ar
  3. 3w.unx.edu.ar

1. Acceso general a Gestión

Partimos de una instalación de producción, en la que ya fueron eliminados y despublicados los proyectos toba_editor y toba_referencia. Es decir, sólo existen en la instancia los proyectos guarani y toba_usuarios.

El checkout lo tenemos en la carpeta /opt/proyectos/gestion.

Como publicaremos el proyecto guarani en la raíz del host virtual, lo dejamos establecido con el string vacío en la variable "url" del bloque de configuración del proyecto del archivo instancia.ini:

; Configuracion de la INSTANCIA

base = "guarani3"
proyectos = "toba_usuarios, guarani"
tipo = "normal"

[toba_usuarios]
path = "/opt/proyectos/gestion/lib/toba/proyectos/toba_usuarios"
url = "/toba_usuarios"

[guarani]
path = "/opt/proyectos/gestion"
url = ""
url_pers = "/guarani_pers"

Como primer paso para la configuración del VirtualHost, crearemos un archivo de configuración en algún lugar (en este ejemplo será /opt/proyectos/conf/vhosts.conf), y lo incluiremos en Apache:

Include "/opt/proyectos/conf/vhosts.conf"

A continuación, prepararemos el "esqueleto" de la configuración del VirtualHost, con el nombre de servidor, carpeta raíz y filtros por rango de IP:

<VirtualHost *:80>
        ServerName g3.unx.edu.ar

        # Como carpeta raíz establecemos el directorio navegable de Gestión
        DocumentRoot "/opt/proyectos/gestion/www"

        # Acá irá la configuración de proyectos
        # ...

        <Location />
                # Filtrar acceso a Guaraní por rango de IP a la subred 10.23.10.*
                Require ip 10.23.10.0/24
        </Location>

        <Location /toba_usuarios>
                # Filtrar acceso a toba_usuarios por rango de IP 10.23.10.*
                Require ip 10.23.10.0/24
        </Location>

</VirtualHost>

Con el esqueleto armado, copiamos la configuración de toba.conf, teniendo en cuenta que se debe eliminar el alias de Guaraní, ya que accederemos con el nombre de servidor. La configuración de Directory de su carpeta navegable servirá de configuración del DocumentRoot del VirtualHost. La configuración completa del VirtualHost, entonces, quedaría en este ejemplo de la siguiente manera:

<VirtualHost *:80>
        ServerName g3.unx.edu.ar

        # Como carpeta raíz establecemos el directorio navegable de Gestión
        DocumentRoot "/opt/proyectos/gestion/www"

        # Recursos navegables de Toba
        Alias /toba_g3 "C:/proyectos/SIU/gestion/trunk/lib/toba/www"
        <Directory "C:/proyectos/SIU/gestion/trunk/lib/toba/www/">
                SetEnv TOBA_DIR         "C:/proyectos/SIU/gestion/trunk/lib/toba"
                Options MultiViews FollowSymLinks
                AllowOverride None
                <IfModule !mod_authz_core.c>
                        Order allow,deny
                        Allow from all
                </IfModule>
                <IfModule mod_authz_core.c>
                        Require all granted
                </IfModule>
        </Directory>

        #Configuracion del SP de SAML
        Alias /toba_g3_sp "C:/proyectos/SIU/gestion/trunk/lib/toba/php/3ros/simplesamlphp/www"
        <Directory C:/proyectos/SIU/gestion/trunk/lib/toba/php/3ros/simplesamlphp/www>
                SetEnv TOBA_INSTALACION_DIR "C:/proyectos/SIU/gestion/trunk/lib/toba/instalacion"
                <IfModule !mod_authz_core.c>
                        Order allow,deny
                        Allow from all
                </IfModule>
                <IfModule mod_authz_core.c>
                        Require all granted
                </IfModule>
        </Directory>

        #Proyecto: guarani
        #No hace falta definir Alias de Guaraní, sólo el directorio, porque es el DocumentRoot de este servidor
        <Directory "C:/proyectos/SIU/gestion/trunk/www/">
                SetEnv TOBA_DIR         "C:/proyectos/SIU/gestion/trunk/lib/toba"
                SetEnv TOBA_PROYECTO    "guarani"
                SetEnv TOBA_INSTALACION_DIR "C:/proyectos/SIU/gestion/trunk/lib/toba/instalacion"
                SetEnv TOBA_INSTANCIA   "desarrollo"
                DirectoryIndex aplicacion.php

                AllowOverride None
                <IfModule !mod_authz_core.c>
                        Order allow,deny
                        Allow from all
                </IfModule>
                <IfModule mod_authz_core.c>
                        Require all granted
                </IfModule>

                #API REST
                RewriteEngine On
                RewriteBase /
                Options FollowSymLinks SymLinksIfOwnerMatch
                RewriteRule ^rest/(.*)$ rest.php/$1 [PT,L,QSA]
                RewriteRule ^rest$      rest.php/   [PT,L,QSA]
                SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
        </Directory>

        #Proyecto_pers: guarani
        Alias /guarani_pers "C:/proyectos/SIU/gestion/trunk/personalizacion/www"
        <Directory "C:/proyectos/SIU/gestion/trunk/personalizacion/www/">
                SetEnv TOBA_DIR         "C:/proyectos/SIU/gestion/trunk/lib/toba"
                SetEnv TOBA_PROYECTO    "guarani"
                SetEnv TOBA_INSTALACION_DIR "C:/proyectos/SIU/gestion/trunk/lib/toba/instalacion"
                SetEnv TOBA_INSTANCIA   "desarrollo"
                Options MultiViews

                <Files rest>
                        ForceType application/x-httpd-php
                </Files>

                AllowOverride None
                <IfModule !mod_authz_core.c>
                        Order allow,deny
                        Allow from all
                </IfModule>
                <IfModule mod_authz_core.c>
                        Require all granted
                </IfModule>
        </Directory>

        #Proyecto: toba_usuarios
        Alias /toba_usuarios "C:/proyectos/SIU/gestion/trunk/lib/toba/proyectos/toba_usuarios/www"
        <Directory "C:/proyectos/SIU/gestion/trunk/lib/toba/proyectos/toba_usuarios/www/">
                SetEnv TOBA_DIR         "C:/proyectos/SIU/gestion/trunk/lib/toba"
                SetEnv TOBA_PROYECTO    "toba_usuarios"
                SetEnv TOBA_INSTALACION_DIR "C:/proyectos/SIU/gestion/trunk/lib/toba/instalacion"
                SetEnv TOBA_INSTANCIA   "desarrollo"
                DirectoryIndex aplicacion.php

                AllowOverride None
                <IfModule !mod_authz_core.c>
                        Order allow,deny
                        Allow from all
                </IfModule>
                <IfModule mod_authz_core.c>
                        Require all granted
                </IfModule>

                #API REST
                RewriteEngine On
                RewriteBase /toba_usuarios
                Options FollowSymLinks SymLinksIfOwnerMatch
                RewriteRule ^rest/(.*)$ rest.php/$1 [PT,L,QSA]
                RewriteRule ^rest$      rest.php/   [PT,L,QSA]
                SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
        </Directory>

        <Location />
                # Filtrar acceso a Guaraní por rango de IP a la subred 10.23.10.*
                Require ip 10.23.10.0/24
        </Location>

        <Location /toba_usuarios>
                # Filtrar acceso a toba_usuarios por rango de IP 10.23.10.*
                Require ip 10.23.10.0/24
        </Location>

</VirtualHost>