Configuración y Ejecución de AOLserver

Como ejecutar AOLServer

Para ejecutar AOLserver se utiliza nsd ubicado en el directorio /bin de la instalación de AOLserver, este archivo de ejecución toma varios parámetros los más importantes son:

  • -f : Indica que el proceso proceso de AOLserver en el shell actual.
  • -u : Indica el usuario al cual pertenecerá el proceso de AOLserver. (NOTA: Asegúrese que la instalación de AOLServer (archivos y directorios) también sea de este usuario)
  • -t : Especifica el archivo *.tcl que contiene los parámetros de AOLserver
  • -s : Indica el servidor o "Instancia" que será ejecutada del archivo *.tcl. ( Vea Servidores Múltiples AOL )

Ejemplo:

osmosis# /usr/local/aolserver/bin/nsd 
             -u nsadmin -t /aol/conf/osmosis.tcl -u desarrollo

Lo anterior ejecutaría AOLserver bajo el usuario nsadmin con los parámetros del archivo osmosis.tcl bajo el servidor (Instancia) desarrollo

Una vez ejecutado este comando deberán aparecer 4 o 5 "threads" (dependiendo de la configuración) pertenecientes a AOLserver en los procesos del sistema (utilice: ps -uax ). Nótese que en realidad son "threads", este es el funcionamiento de AOLserver; haga la prueba: si elimina el "thread" superior los demás "threads" también desaparecerán, esto indica que en realidad los 4 o 5 pertenecen a 1 proceso .

El archivo *.tcl

Este archivo contiene todos los parámetros que regirán el funcionamiento de AOLserver. Se encuentra compuesto por diversas secciones, aunque es posible ejecutar Aolserver sin especificar diversos parámetros de este archivo (*.tcl) se recomienda se indicar la mayor cantidad posible.

Un archivo *.tcl


 # Indica un comentario 
 ns_log  : Mensaje que debe ser enviado al registro "log" de Aolserver.
 set  Especifica una variable que sera utilizada en todo el archivo *.tcl 
 ns_section  Indica el inicio de una sección de parámetros
 ns_param  Indica un parámetro para la sección.

# El nombre de este archivo dependerá de su gusto
# El nombre debe ser especificado directamente al ejecutar Aolserver con el
# con el parámetro  -t

# Inicio de archivo con parámetros TCL 
ns_log notice "configuracion.tcl: Empezando a leer el archivo de 
configuración..."
         ########################## 
         ##      Parámetros      ## 
         ##      Globales        ## 
         ##########################

# Especificar variables que serán utilizadas a lo largo del archivo 

set AOL_HOME /usr/local/aolserver
set directoryfile index.asp index.htm index.html ;# Indica que página 
debe de ser ejecutada cuando solo se especifique un directorio, esto es, 
si se busca en www.osmosislatina.com/oracle , se intentara accesar 
index.asp,index.htm o index.html. 

# Parámetros generales para Aolserver 
ns_section "ns/parameters" 
ns_param home $AOL_HOME  ;# Página raíz de Aolserver 
ns_param debug false     ;# Información
 de Debug 

         

# Parámetros para Threads de Aolserver                     
ns_section "ns/threads" 
ns_param mutexmeter true  ;# medición de "Lock contention" 
ns_param stacksize 500000 ;# Tamaño del 
Stack por thread,incrementar si se utilizan scripts Tcl, especialmente ADP's
  
     
 

# Sección de tipos de MIME, Aolserver ya define varios tipos por "default" 
# por lo que esta sección es utilizada en casos extraordinarios.
ns_section "ns/mimetypes"
ns_param default "*/*"  ;# Tipo de MIME para una extensión desconocida 
ns_param noextension "*/*" ;# Tipo de MIME cuando no existe extensión 
#ns_param ".xls"  "application/vnd.ms-excel" ;# Definición 
MIME para extensiones .xls

# Sección de Múltiples Servidores (Vea 
    Servidores Múltiples AOL 
     )   
# Este archivo se utiliza para especificar diversas "instancias" de Aolserver 
# la "instancia" que sera ejecutada se especifica mediante el parámetro 
# " -s "  al ejecutar  nsd  
ns_section "ns/servers" 
ns_param "produccion1" "Servidor de Producción de Osmosis Latina"
ns_param "desarrollo2" "Servidor de Desarrollo de Osmosis Latina" 

         ########################## 
         ##      Parámetros      ## 
         ##      por Servidor    ## 
         ##########################




# A continuación los parámetros específicos de cada servidor ("instancia")
 de Aolserver, cada sección llevara el nombre de  "
ns/server/<nombre del servidor>" , solo se enunciaran los parámetros 
para  produccion1  ,  desarrollo2  tendría secciones similares.
ns_section "ns/server/produccion1"  
ns_param directoryfile $directoryfile ;
# Los archivos que se buscaran cuando solo se indique un directorio.   
ns_param pageroot "/www/servidores/produccion1/paginas/" ;# Indica la ubicación 
raíz del servidor de páginas, esto es, cuando se solicite
 www.osmosislatina.com bajo que subdirectorio se buscara la página principal. 
ns_param globalstats true ;# Habilitar estadísticas    
ns_param urlstats true ;# Habilitar estadísticas de URL 
ns_param maxurlstats 1000 ;# Numero máximo de URL para generar estadísticas  
ns_param Webmaster webmaster@osmosislatina.com ;# Webmaster del sitio  
ns_param enabletclpages  false  ;# Interpretar ("parse") archivos *.tcl en raiz.




#Sección para re-direccionar solicitudes que se realicen al servidor, 
por código HTTP. 
ns_section "ns/servidores/produccion1/redirects"
ns_param 404 "/global/no_se_encontro.html";# Ubicación 
del archivo que debe ser ejecutado cuando no se encuentre el archivo (HTTP: 404)  
ns_param 505 "/global/ocupado.html";# Ubicación 
del archivo que debe ser ejecutado cuando no puede atender la requisición  (HTTP: 503) 
 ns_param 503 "/global/error.html";# Ubicación 
del archivo que debe ser ejecutado cuando ocurra un error interno  (HTTP: 505) 

 

         ################################### 
         ##      Configuración            ## 
         ##para ADP (Aol Dynamic Pages)   ## 
         ###################################

ns_section "ns/server/prodccion1/adp" 
ns_param   map  "/*.adp"  ;# Extensiones que serán ejecutadas "parsed" como ADP's.


ns_section "ns/server/${servername}/adp/parsers"
ns_param   adp             ".adp"   ;# "Parser" que sera utilizado para las páginas ADP.


         ################################### 
         ##      Configuración            ## 
         ## de Modulo HTTP                ## 
         ###################################


# El siguiente modulo es el encargado de enviar páginas al usuario final 
ns_section "ns/server/produccion1/module/nssock" 
ns_param port  80   ;# Puerto TCP que estará escuchando Aolserver
ns_param Hostname osmosislatina.com ;# Nombre 
del Host al para el que sera aceptada la requisición esto puede ser un alias. 
ns_param Address 10.10.10.1  ;# Dirección 
IP sobre la que estará escuchando Aolserver,aunque el parámetro oficial es 
 Hostname , esta parámetro es clave cuando se utilizan 
 Vea    Servidores Múltiples AOL 
     con balanceo de cargas. 

         ################################### 
         ##      Configuración            ## 
         ## de Modulo SHTTP               ## 
         ###################################

# El siguiente modulo es el encargado de dar servicio de    encriptación 
     a Aolserver. 
ns_section "ns/server/produccion1/module/nsssl" 
ns_param   port   443 ;# Puerto TCP utilizado para conexiones
 con encriptación.
ns_param   hostname osmosislatina.com ;#  Nombre 
del Host para el que sera aceptada la requiscion encriptada (tipicamente igual
 que el parametro del modulo HTTP) .
ns_param   address 10.10.10.1  ;# Direccion IP del 
servidor que mantiene la conexion con encriptacion (tipicamente igual que el
 parametro del modulo HTTP) .

ns_param   keyfile  "/www/servidores/produccion1/modulos/nsssl/keyfile.pem"  ;
# Ubicación de la llave privada de encriptación. 
ns_param   certfile "/www/servidores/produccion1/modulos/nsssl/certfile.pem"  ;
# Ubicacion del certificado digital otorgado por
 agencia autorizada ( Vea     encriptacion 
     ). 
# Establecer variables para uso posterior al cargar modulos:  
 set sslcertfile  "/www/servidores/produccion1/modulos/nsssl/certfile.pem" 
 set sslkeyfile  "/www/servidores/produccion1/modulos/nsssl/keyfile.pem" 


         ################################### 
         ##      Configuracion            ## 
         ## de NSLOG                      ## 
         ###################################

# El modulo NSLOG es el encargado de manipular los registros de actividad ("logs")
 de Aolserver

ns_section "ns/server/produccion1/module/nslog"
ns_param File  "/www/servidores/produccion1/osmosislatia.log  ;# Indica el nombre 
y ubicación para el registro del servidor 
ns_param LogRefer Off  ;# Indica si deben de ser
 registrados los Headers HTTP de la referencia (Vea 
    
      Protocolo HTTP  
    ).
ns_param UserAgent Off  ;# Indica si deben de ser
 registrados los Headers HTTP del navegador que utiliza el solicitante (Vea 
    
      Protocolo HTTP  
    
).
ns_param EnableHostnameLookup Off  ;# Indica si 
deben de ser encontrados los "Hosts" de las direcciones IP de los registros 
("Reverse DNS")

ns_param   rolllog         true    ;# Indica si se deben rotar ("roll") 
los registros actividad 
ns_param   rollonsignal    true      ;# Indica la rotacion de registros cuando 
sea terminado el proceso de Aolserver 
ns_param   rollhour        0         ;# Tiempo al cual se deben rotar los registros (0 = 12:00 AM) 
ns_param   rollday    *         ;# Dia al cual se deben rotar 
los registros (0 = 12:00 AM) 
ns_param   maxbackup       5         ;# Cantidad de registros que mantener
 mientras occure la rotacion("roll").
ns_param  RollFmt   %Y-%m-%d-%H:%M     ;#Formato que se da a los registros 
al realizarse la rotación ("roll").

         ################################### 
         ##      Configuracion            ## 
         ## de Modulo NSCGI               ## 
         ###################################

# Este modulo ejecuta cualquier programa por medio de CGI, comuenmente 
# para programas que ya estan realizados en Perl u otro lenguaje 

ns_section "ns/server/produccion1/module/nscgi"
ns_param map "GET /cgi-bin /usr/local/obsoletos" ;# Lo anterior indica que cualquier
 archivo que sea solocitiado (via GET) bajo el directorio /cgi-bin de Aolserver , se encontrara 
en el directorio  absoluto  /usr/local/obsoletos del "Host" 
ns_param map "POST /cgi-bin /usr/local/obsoletos"  ;# Lo anterior indica que cualquier 
archivo que sea solocitiado (via POST) bajo el directorio /cgi-bin de Aolserver , se encontrara
 en el directorio  absoluto  /usr/local/obsoletos del "Host" 

         ################################### 
         ##      Configuracion            ## 
         ## de Modulo NSCP                ## 
         ###################################

# El modulo NSCP es utilizado para establecer un conexion a la adminstración#
 de Aolserver, es raro su uso.  

 ns_section "ns/server/produccion1/module/nscp"
ns_param   port   9999   ;# Puerto TCP donde Aolserver escuchara para
 una conexion a nscp. 
ns_param   address 127.0.0.1  ;# Nodo IP sobre 
el cual actuara NSCP , se recomienda solo direccion local (127.0.0.1) por
 razones de seguridad. 
Sección que define usuarios que seran capaces de utilizar NSCP. 

ns_section "ns/server/produccion1/module/nscp/users"
ns_param  user "nsadmin:t2GqvvaiIUbF2"  ;
# Los parametros son usuario  seguido de contraseña encriptada.
# Establecer variables para uso posterior al cargar modulos:  
 set nscp_user  "nsadmin:t2GqvvaiIUbF2" 

         ################################### 
         ##      Configuracion            ## 
         ##de Modulo para Bases de Datos  ## 
         ###################################

# Cada base de datos utiliza un modulo  que ha sido diseñado en conjuncion
# con Aolserver, 
#Definir los modulos (Bases de Datos) que seran utilizadas por aolserver
 ns_section  "ns/db/drivers"
 ns_param ora8   ora8.so ;# Carga el modulo para Oracle8i
 ns_param sybase   sybase.so ;# Carga el modulo para Sybase

# Se pueden definir varios grupos ("Pools") de conexiones que serán 
# utilizadas para  conectarse a bases de datos, la definición de
 diferentes "pools" 
# se realiza cuando se utilizan diferentes tipos de bases de datos o se 
requiere  
# de un gran número de conexiones  

# Definicion de los Pools que seran utilizados por Aolserver  
ns_section "ns/db/pools" 
ns_param main   main  #; Grupo "Pool" para conexiones a la base de datos Oracle,
como usuario Osmosis.
ns_param log  log  #; Grupo "Pool" para conexiones a la base de datos Oracle,
como usuario administrador.

# Parametros especificos para cada grupo "Pool" de conexiones 

# Definición del primer Pool de conexion 
ns_section "ns/db/pool/main" 
ns_param MaxIdle   1000000000;
#Tiempo maximo inactivo
ns_param MaxOpen   1000000000;
#Tiempo maxima para conexión abierta
ns_param Driver   ora8;
#Driver que será utilizado para conectarse a base de datos
ns_param Connections   4;
#Número de conexiones por grupo ("Pool") 
ns_param DataSource    OSMOSIS;#Nombre que 
espera la base de datos de la conexión, en este caso OSMOSIS esta 
definido como un servicio en el  listener  de Oracle; para sybase
 esta linea puede ser  "localhost:1532:sybase", este parametro
 depende de los requerimientos de la base de datos.    
ns_param User   osmosis;# Nombre del usuario que espera la base de datos 
ns_param Password osmosis;#Contraseña del usuario
ns_param Verbose On;#Registro "Log Verbose" sobre
 la conexión a base de datos  
ns_param ExtendedTableInfo On ;#Registro "Log Verbose" sobre la información
 de tablas en la base de datos 

#Definición de un segundo grupo de Conexiones "Pool" 
ns_section "ns/db/pool/log" 
ns_param MaxIdle   1000000000;#Tiempo maximo inactivo
ns_param MaxOpen   1000000000;#Tiempo maxima para conexión abierta
ns_param Driver   ora8;#Driver que será utilizado para conectarse a base de datos
ns_param Connections   2;#Número de conexiones por grupo ("Pool") 
ns_param DataSource  DESARROLLO ;#Nombre que espera la
 base de datos de la conexión, en este caso DESARROLLO esta definido como
 un servicio en el  listener  de Oracle; para postgres esta linea puede ser 
 "localhost:5432:sybase", este parametro depende de los requerimientos de la base de datos.    
ns_param User  administrador;# Nombre del usuario que espera la base de datos 
ns_param Password  administrador;#Contraseña del usuario
ns_param Verbose   On;#Registro "Log Verbose" sobre
 la conexión a base de datos  
ns_param ExtendedTableInfo On ;#Registro "Log Verbose" sobre
 la información de tablas en la base de datos. 

# Se debe definir que grupos "Pools" sera capaz de accesar cada "instancia" de Aolserver 
# esto es especialmente util cuando se desee restringir el acceso a ciertos grupos 
# "pools" por "instancia" 
 
ns_section "ns/server/produccion1/db"
ns_param Pools   main,log ;# El servidor ("instancia") produccion1
 será capaz de accesar ambos grupos "Pools" de conexiones, Que grupo 
se utilizara para una búsqueda ? Esto se hace directamente en la 
página mediante la función  ns_db 
 ns_param DefaultPool  main;# Por "default" si no se especifica
 el grupo "pool" en la función  ns_db  se utilizará el grupo 
 main  para realizar busquedas a la base de datos.

         ########################## 
         ##      Modulos         ## 
         ##      Utilizados      ## 
         ##########################

# Finalmente es necesario definir cuales modulos seran utilizados  
# por cada servidor ("instancia") de Aolserver, esto reduce la cantidad  
# de memoria utilizada por cada "instancia" 
ns_section "ns/server/produccion1/modules"  
ns_param nssock  nssock.so 
ns_param nslog nslog.so 
ns_param nscgi nscgi.so
# Para cargar el modulo de encriptación es necesario que existan los 
# certificados digitales, ejecutar la verificación  
if { [file exists $sslcertfile] && [file exists $sslkeyfile] } {
    ns_param nsssl nsssl.so
} else {
    ns_log warning "config.tcl: Modulo nsssl no pudo ser cargado -- certificados digitales no existen ."
}  
# El modulo nscp también debe verificar la existencia de ciertos datos 
# Verificar si existe un usuario  
 if { $nscp_user != "" } {
    if ![string match "127.0.0.1" $nscp_addr] {
	# Por razones de seguridad cualquier dirección que no sea local (127.0.0.1) NO es recomendada  
ns_log warning "config.tcl: nscp listening on ${nscp_addr}:${nscp_port}" 
    } 
#Ya paso restricción de seguridad,cargar el modulo  
    ns_param nscp nscp.so 
 
} else { 
    ns_log warning "config.tcl: Modulo nscp no fue cargado  -- no esta definido ningun usuario/contraseña ."
} 

         ########################## 
         ##      Mensaje         ## 
         ##       Final          ## 
         ##########################

# Indicar que ya termino de leerse el archivo de configuración  
 ns_log notice "config.tcl: El archivo de configuración 
se termino de leer."