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."
|