# El nombre de este archivo dependera de su gusto
# El nombre debe ser especificado directamente al ejecutar Aolserver con el
# con el parametro -t
# Inicio de archivo con parameteros TCL
ns_log notice "configuracion.tcl: Empezando a leer el archivo de configuracion..."
##########################
## Parametros ##
## Globales ##
##########################
# Especificar variables que seran utilizadas a lo largo del archivo
set AOL_HOME /usr/local/aolserver
set directoryfile index.asp index.htm index.html ;# Indica que pagina 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.
# Parametros generales para Aolserver
ns_section "ns/parameters"
ns_param home $AOL_HOME ;# Pagina raiz de Aolserver
ns_param debug false ;# Informacioón de Debug
# Parameteros para Threads de Aolserver
ns_section "ns/threads"
ns_param mutexmeter true ;# medicion de "Lock contention"
ns_param stacksize 500000 ;# Tamaño del Stack por thread,incerementar si se utilizan scripts Tcl, especialemente ADP's
# Seccion de tipos de MIME, Aolserver ya define varios tipos por "default"
# por lo que esta seccion es utilizada en casos extraordinarios.
ns_section "ns/mimetypes"
ns_param default "*/*" ;# Tipo de MIME para una extension desconocida
ns_param noextension "*/*" ;# Tipo de MIME cuando no existe extension
#ns_param ".xls" "application/vnd.ms-excel" ;# Definicion MIME para extensiones .xls
# Seccion de Multiples Servidores (Vea Servidores Multiples AOL )
# Este archivo se utiliza para especificar diversas "instancias" de Aolserver
# la "instancia" que sera ejecutada se especifica mediante el parametero
# " -s " al ejecutar nsd
ns_section "ns/servers"
ns_param "produccion1" "Servidor de Produccion de Osmosislatina"
ns_param "desarrollo2" "Servidor de Desarrollo de Osmosislatina"
##########################
## Parametros ##
## por Servidor ##
##########################
# A continuación los parametros especificos de cada servidor ("instancia") de Aolserver, cada sección llevara el nombre de "ns/server/<nombre del servidor>" , solo se enunciaran los parametros para produccion1 , se supone que desarrollo2 tendria 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 ubicacion raiz del servidor de paginas, esto es, cuando se solicite
www.osmosislatina.com bajo que subdirectorio se buscara la pagina principal.
ns_param globalstats true ;# Habilitar estadisticas
ns_param urlstats true ;# Habilitar estadisticas de URL
ns_param maxurlstats 1000 ;# Numero maximo de URL para generar estadisticas
ns_param Webmaster webmaster@osmosislatina.com ;# Webmaster del sitio
ns_param enabletclpages false ;# Interpretar ("parse") archivos *.tcl en raiz.
#Seccion para re-direccionar solicitudes que se realizen al servidor, por codigo 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 archvio (HTTP: 404)
ns_param 505 "/global/ocupado.html";# Ubicación del archivo que debe ser ejecutado cuando no puede atender la requisicion (HTTP: 503)
ns_param 503 "/global/error.html";# Ubicación del archivo que debe ser ejecutado cuando ocurra un error interno (HTTP: 505)
###################################
## Configuracion ##
##para ADP (Aol Dynamic Pages) ##
###################################
ns_section "ns/server/prodccion1/adp"
ns_param map "/*.adp" ;# Extensions que seran ejecutadas "parsed" como ADP's.
ns_section "ns/server/${servername}/adp/parsers"
ns_param adp ".adp" ;# "Parser" que sera utilizado para las paginas ADP.
###################################
## Configuracion ##
## de Modulo HTTP ##
###################################
# El siguiente modulo es el encargado de enviar paginas al usuario final
ns_section "ns/server/produccion1/module/nssock"
ns_param port 80 ;# Puerto TCP que estara escuchando Aolserver
ns_param Hostname osmosislatina.com ;# Nombre del Host al para el que sera aceptada la requiscion esto puede ser un alias.
ns_param Address 10.10.10.1 ;# Dirección IP sobre la que estara escuchando Aolserver,aunque el parametro oficial es Hostname , esta parametro es clave cuando se utilizan Servidores Multiples AOL con balanceo de cargas.
###################################
## Configuracion ##
## de Modulo SHTTP ##
###################################
# El siguiente modulo es el encargado de dar servicio de encriptacion 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#243n 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 las "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 mientra 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."