server.xml es el archivo principal de configuración para Tomcat, al igual que otros archivos de configuración para productos empleados en servidor puede contener una gran variedad de parámetros, sin embargo, esta guía se concentrará en los parámetros principales.
El archivo server.xml es un archivo en XML, el cual de no contener una estructura conforme a XML, se indicará al arranque de Tomcat; dicho archivo se encuentra bajo el directorio /etc/tomcat6, si se instalo con apt-get o rpm; si se descomprimió la distribución binaria estará en $CATALINA_HOME/conf.
Como cualquier otro documento en XML todo contenido entre
es considerado un comentario, y por lo tanto cualquier parámetro que se encuentre entre estos caracteres no es utilizado por "Tomcat"; aquellos parámetros que no sean definidos dentro de server.xml son asignados un valor "Default" por Tomcat.
Server
es el elemento principal del archivo server.xml y todas las demás secciones deben encontrarse entre estos nodos; el atributo port
indica el puerto TCP donde se espera la señal de cierre (shutdown
) de Tomcat, el cual rara vez es modificado.
Listener
A través de los elementos
se configuran las extensiones JMX ("Java Management Extensions") que serán utilizadas por Tomcat, dichos elementos toman dos atributos : className
que indica la Clase diseñada para escuchar sobre eventos JMX y debug
para especificar el nivel de "debug" generado al tiempo de ejecución. Si entrar en detalle de JMX esto permite monitorizar Tomcat con cualquier aplicación.
GlobalNamingResources , Resource y ResourceParams
Anidado dentro de los elementos
es posible definir recursos JNDI para ser utilizados globalmente en Tomcat. Lo anterior evita que estos recursos tengan que ser declarados a nivel de WAR de manera individual.
A través de
es como define el tipo de recurso JNDI que será utilizado y mediante
se especifican los parámetros específicos que tomará el recurso en dicha instancia de Tomcat.
Connector
El elemento Connector
representa las conexiones (Puertos TCP) que serán abiertas por Tomcat al arranque, a su vez dentro de cada elemento Connector
se definen diversos atributos los cuales dan más detalles acerca de la conexión.
El elemento Connector
más importante es aquel que define la clase: HttpConnector
.
< Conector>
maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" /> |
La declaración anterior indica que Tomcat esta dispuesto a dar respuesta a requisiciones que arriben en el puerto 8080
del "Host" donde esta instalado Tomcat; si recuerda la ejecución y pruebas en tomcat a esto se debió el agregar el fragmento :8080
.
Para ambientes de producción en los cuales toda requisición será atendida por Tomcat el parámetro port
de este elemento debe ser modificado al valor de 80
, este puerto es el ampliamente conocido puerto TCP 80 con el que intenta comunicarse cualquier Navegador("Netscape","Explorer","Opera" u otro) en Internet.
Otras declaraciones para Connectors
son aquellas para utilizar encriptación (HTTPS) y los conectores AJP; la configuración de HTTPS es un tanto extensa y no se describirán los detalles, sin embargo, los conectores AJP son aquellos utilizados para la comunicación entre Apache y Tomcat y son los siguientes:
< Connector port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" /> |
Esta declaración indica que el puerto 8009 estará recibiendo conexiones bajo ajp13
, lo anterior es solo de interés si utiliza Apache en conjunción con Tomcat.
Engine
Los elementos
los cuales deben encontrarse anidados dentro de
representan el mecanismo que atenderá toda solicitud arribada Tomcat, esto es, toda solicitud recibida por las definiciones Connectors
será procesada por
, los atributos de este elemento son los siguientes:
< Engine name="Catalina" defaultHost="localhost" debug="0"> |
Defaulthost
representa el nombre del servidor Tomcat mientras debug
indica el nivel de "debug" generado al tiempo de ejecución.
Logger
Los elementos Logger
le indican a Tomcat hacia donde deben ser enviados los registros "Logs":
< Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true" /> |
Lo anterior indica que los registros de Tomcat deben ser enviados al archivo localhost_log.txt
; la ubicación de este registro ("log") puede ser modificada al nivel de los elementos Host
los cuales permiten definir Virtual Hosts.
Host
Los elementos Host
permiten definir varios Hosts "Virtuales" para Tomcat, esto es, a través del elemento
se define un sitio(localhost) para atender solicitudes, a través de Host
es posible definir diversos sitios "Virtuales", su configuración es la siguiente:
-
< Host name="desarrollo.servidorprueba.com" debug="0" appBase="webapps" unpackWARs="true"> |
Lo anterior indica que el sitio desarrollo.servidorprueba.com
contiene sus aplicaciones (Archivos WAR) bajo el directorio $CATALINA_HOME/webapps;
el atributo unpackWARs
le indica a Tomcat que debe descomprimir los archivos WAR's al arranque. En java las aplicaciones web se empaquetan con la extensión war.
Como ya fue mencionado, dentro de estos elementos
es posible utilizar
para generar registros ("logs") por cada sitio virtual.
Context
Context
es un elemento utilizado para indicar la ubicación de las aplicaciones ejecutadas en Tomcat, en su configuración "Default" estas aplicaciones se encuentran dentro del directorio webapps
bajo el directorio raíz de Tomcat ( /usr/local/tomcat
), o en entornos que se descomprimió la versión binaria $CATALINA_HOME/webapps.
Una aplicación en Tomcat o cualquier Servlet Engine(Web-Container) es un conjunto de "JSP's (Java Server Pages)" y/o "Servlets" agrupados con ciertos parámetros de arranque y seguridad, este conjunto de archivos / aplicación en todo Servlet Engine es conocido como un WAR (Web-Archive).
En conclusión todos los wars (aplicaciones web empaquetadas) o las aplicaciones web sin empaquetar van en donde indica la propiedad path del tag context.