Carpetas y archivos de Apache Tomcat: estructura completa


Aprende para qué sirve cada carpeta y archivo de Apache Tomcat. Descubre la estructura completa del servidor con ejemplos prácticos.

Carpetas y archivos de Apache Tomcat: estructura completa
oscar Escrito por oscar 11 July 2026 16 0

Cuando instalas Apache Tomcat, se crea una estructura de directorios donde cada carpeta tiene una función específica. Conocer esta organización es fundamental para administrar aplicaciones, realizar despliegues, configurar el servidor y solucionar problemas.

A continuación se describe cada una de las carpetas y archivos más importantes de Tomcat.

Instalar Apache Tomcat

Ubicacion de Apache Tomcat

Cuando instalas Apache Tomcat, la estructura de directorios está organizada para separar la configuración, los binarios, las aplicaciones desplegadas y los archivos temporales.

Supongamos que lo instalaste en:

Esta sería la descripción de cada elemento.

Carpetas y archivos de Apache Tomcat

Archivo / Carpeta Tipo Descripción ¿Se modifica normalmente?
BUILDING.txt Documento Explica cómo compilar Tomcat desde el código fuente utilizando Maven y Ant. Solo es útil si vas a desarrollar Tomcat. No
CONTRIBUTING.md Documento Guía para desarrolladores que quieran contribuir al proyecto Apache Tomcat. No
LICENSE Documento Contiene la licencia Apache License 2.0 bajo la que se distribuye Tomcat. No
NOTICE Documento Información legal adicional sobre derechos de autor y componentes incluidos. No
README.md Documento Introducción a Tomcat, enlaces útiles y descripción general del proyecto. No
RELEASE-NOTES Documento Lista de novedades, mejoras, cambios y problemas conocidos de la versión instalada. No
RUNNING.txt Documento Manual para iniciar, detener y configurar Tomcat desde la línea de comandos. No
bin/ Directorio Contiene los scripts necesarios para iniciar, detener y administrar Tomcat.
conf/ Directorio Contiene toda la configuración principal del servidor.
lib/ Directorio Bibliotecas (.jar) utilizadas por Tomcat y disponibles para todas las aplicaciones. A veces
logs/ Directorio Archivos de registro (logs) del servidor y de las aplicaciones. No (se generan automáticamente)
temp/ Directorio Archivos temporales utilizados durante la ejecución. No
webapps/ Directorio Aplicaciones web desplegadas (.war o carpetas).
work/ Directorio Archivos compilados por Tomcat, especialmente JSP convertidas a Servlets. No

bin/

Es uno de los directorios más importantes. Aquí están todos los scripts que permiten controlar Tomcat.

Archivo Tipo Descripción Función principal Uso habitual
catalina.sh Script Shell Es el script principal de Tomcat. La mayoría de los demás scripts lo invocan internamente. Iniciar, detener, reiniciar, depurar (jpda), ejecutar en primer plano (run) o en segundo plano (start) el servidor Tomcat. Administración diaria de Tomcat.
startup.sh Script Shell Script de conveniencia que llama a catalina.sh start. Inicia Tomcat en segundo plano (background). Iniciar el servidor rápidamente.
shutdown.sh Script Shell Script de conveniencia que llama a catalina.sh stop. Envía la orden de apagado al servidor Tomcat utilizando el puerto de apagado configurado en server.xml. Detener el servidor de forma controlada.
daemon.sh Script Shell Permite ejecutar Tomcat como un servicio (daemon) en sistemas Unix/Linux utilizando jsvc. Iniciar, detener o reiniciar Tomcat como un proceso de sistema con un usuario específico. Entornos de producción donde no se usa systemd o se requiere jsvc.
digest.sh Script Shell Herramienta para generar resúmenes criptográficos (hashes) de contraseñas. Crear contraseñas cifradas que pueden utilizarse en archivos como tomcat-users.xml o en mecanismos de autenticación. Configuración de autenticación más segura.
version.sh Script Shell Muestra información de la instalación de Tomcat y del entorno Java. Imprime la versión de Tomcat, la versión de Java, JAVA_HOME, CATALINA_HOME y otros datos del entorno. Verificación de la instalación y diagnóstico.
setclasspath.sh Script Shell Script interno utilizado por Tomcat para preparar el entorno Java. Configura el CLASSPATH y verifica que JAVA_HOME o JRE_HOME estén definidos correctamente. Se ejecuta automáticamente al iniciar Tomcat; normalmente no se ejecuta de forma manual.
configtest.sh Script Shell Ejecuta una validación de la configuración del servidor. Comprueba que la configuración de Tomcat (principalmente server.xml) sea válida antes de iniciar el servidor. Detectar errores de configuración antes del arranque.
makebase.sh Script Shell Crea una estructura independiente de CATALINA_BASE. Genera los directorios necesarios (conf, logs, temp, webapps, work, etc.) para ejecutar múltiples instancias de Tomcat usando una misma instalación (CATALINA_HOME). Administrar varias instancias de Tomcat en un mismo servidor.
tool-wrapper.sh Script Shell Script auxiliar para ejecutar herramientas Java incluidas con Tomcat. Configura el entorno necesario para lanzar utilidades Java desde la línea de comandos. Uso interno y herramientas de mantenimiento.
bootstrap.jar Biblioteca JAR Biblioteca que contiene la clase de arranque (Bootstrap) de Tomcat. Inicializa el contenedor de Servlets, carga las clases principales y pone en marcha el servidor. Se utiliza automáticamente durante el inicio de Tomcat; no se ejecuta directamente.

Normalmente aquí puedes agregar:  

setenv.sh

Este archivo no viene por defecto, pero es muy utilizado para definir:  

JAVA_HOME
CATALINA_OPTS
JAVA_OPTS
MEMORIA JVM

conf/

Es el corazón de la configuración. Contiene archivos XML y propiedades.

Archivo / Directorio Tipo Descripción Función principal ¿Se modifica normalmente?
server.xml XML Archivo principal de configuración del servidor Tomcat. Define la arquitectura del servidor y sus componentes. Configura los puertos (HTTP, HTTPS, AJP, Shutdown), conectores, motores (Engine), hosts virtuales (Host), aplicaciones (Context), válvulas (Valve) y otros servicios.
web.xml XML Descriptor de despliegue global para todas las aplicaciones web. Actúa como configuración predeterminada para cada aplicación. Define servlets predeterminados, filtros globales, tipos MIME, páginas de bienvenida (welcome-file), manejo de sesiones, páginas de error y configuraciones comunes para todas las aplicaciones. Ocasionalmente
context.xml XML Configuración global del contexto de las aplicaciones web. Permite definir recursos compartidos como DataSources, recursos JNDI, parámetros globales, configuración de sesiones y comportamiento común para todos los contextos.
logging.properties Propiedades Configuración del sistema de registro (JULI - Java Utility Logging Implementation). Define el nivel de registro (INFO, WARNING, SEVERE, FINE, etc.), los archivos donde se almacenan los logs y los componentes que generan información de diagnóstico. Frecuentemente
catalina.properties Propiedades Archivo de propiedades internas del servidor Tomcat. Configura variables internas como la carga de bibliotecas (common.loader, server.loader, shared.loader), paquetes protegidos y otras propiedades utilizadas durante el arranque. Ocasionalmente
catalina.policy Política de seguridad Archivo de políticas de seguridad de Java. Define los permisos que tendrán las aplicaciones cuando se ejecuta el Java Security Manager. Especifica acceso a archivos, red, propiedades del sistema, etc. Rara vez
jaspic-providers.xml XML Configuración de proveedores JASPIC (Java Authentication SPI for Containers). Registra módulos de autenticación personalizados para integrar mecanismos de autenticación avanzados con el contenedor de Servlets. Solo en implementaciones específicas
tomcat-users.xml XML Base de datos local de usuarios, contraseñas y roles de Tomcat. Define los usuarios que pueden acceder a aplicaciones administrativas como Manager y Host Manager, así como sus respectivos roles.
Catalina/ Directorio Contiene configuraciones específicas para cada Host Virtual. Permite definir archivos <Context> independientes para cada aplicación, evitando modificar server.xml. Facilita la administración de aplicaciones de forma aislada. Según la implementación

Los más importantes son:

server.xml

Configura el servidor completo.

Aquí defines:

Ejemplo:  

<Connector port="8080"/>

web.xml

Configuración global para todas las aplicaciones.

Aquí se definen:

context.xml

Configuración global de contexto.

Aquí puedes definir:

tomcat-users.xml

Usuarios del administrador.

Ejemplo:  

<user
    username="admin"
    password="123456"
    roles="manager-gui"/>

logging.properties

Configura el sistema JULI de logs.

Permite definir:

y hacia dónde escribir los logs.

catalina.properties

Variables internas de Tomcat.

Ejemplo:

common.loader
server.loader
shared.loader

Permite indicar dónde buscar librerías adicionales.

lib/

Contiene todas las librerías compartidas.

Ejemplo:  

lib/
├── servlet-api.jar
├── tomcat-util.jar
├── tomcat-websocket.jar
├── catalina.jar
├── el-api.jar
├── jasper.jar
└── ...

Todo lo que coloques aquí estará disponible para todas las aplicaciones desplegadas.

Por ejemplo:

mysql-connector.jar
postgresql.jar
ojdbc.jar

Así no necesitas copiar el mismo driver en cada aplicación.

logs/

Aquí Tomcat escribe todos los registros.

Ejemplo:

Archivo de registro Descripción Función principal Información que almacena ¿Cuándo consultarlo?
catalina.out Archivo que contiene toda la salida estándar (stdout) y de errores (stderr) de la JVM donde se ejecuta Tomcat. Centralizar la salida de la aplicación y del servidor durante la ejecución. System.out.println(), excepciones (Exception), errores (Error), trazas de pila (Stack Trace), mensajes de inicio y apagado del servidor. Cuando una aplicación falla, Tomcat no inicia o necesitas revisar errores generales.
catalina..log Registro diario generado por el sistema de logging de Tomcat. Se crea normalmente con un nombre como catalina.2026-07-13.log. Registrar los eventos internos del servidor organizados por fecha. Inicio y detención del servidor, despliegue de aplicaciones, advertencias (WARNING), errores (SEVERE), información (INFO) y mensajes del contenedor. Para revisar el historial de eventos ocurridos en un día específico.
localhost.log Registro de eventos relacionados con el Host virtual localhost. Registrar la actividad del host principal configurado en Tomcat. Errores de aplicaciones, despliegues, carga de contextos y mensajes generados por las aplicaciones alojadas en localhost. Cuando una aplicación presenta problemas al desplegarse o ejecutarse.
localhost_access_log..txt Registro de acceso HTTP al servidor. Cada línea representa una petición recibida. Auditar todas las solicitudes HTTP que llegan al servidor. Dirección IP del cliente, fecha y hora, método HTTP (GET, POST, PUT, DELETE), URL solicitada, código de respuesta (200, 404, 500), tamaño de la respuesta y navegador (User-Agent), según la configuración. Para analizar tráfico, detectar errores 404, medir actividad o realizar auditorías.
manager.log Registro específico de la aplicación Manager de Tomcat. Registrar las operaciones administrativas realizadas desde la aplicación Manager. Despliegue de aplicaciones, eliminación de aplicaciones, recargas (reload), inicios y detenciones de aplicaciones, autenticación de usuarios administrativos. Cuando se administra Tomcat mediante la aplicación Manager.
host-manager.log Registro específico de la aplicación Host Manager. Registrar la administración de Hosts Virtuales. Creación, eliminación o modificación de Hosts, errores de configuración y operaciones administrativas relacionadas con Hosts. Cuando se administran múltiples Hosts virtuales en Tomcat.

Los más importantes son:

catalina.out

Salida estándar de la JVM.

Aquí aparecen:

localhost_access_log

Registro de todas las peticiones HTTP.

Ejemplo:  

GET /
GET /app/login
POST /api/users

manager.log

Logs del Manager Web.

temp/

Directorio temporal.

Aquí Tomcat almacena:

Puede vaciarse cuando Tomcat está detenido.

webapps/

Es donde viven las aplicaciones.

Ejemplo:  

webapps/
├── ROOT/
├── docs/
├── examples/
├── manager/
├── host-manager/
└── miAplicacion.war

Cuando copias un WAR:  

miProyecto.war

Tomcat hace:

miProyecto.war

webapps/
    miProyecto/

Descomprime automáticamente el WAR.

ROOT

Representa la aplicación principal.  

http://localhost:8080/

Si reemplazas ROOT:

ROOT.war

Tu aplicación será la página principal del servidor.

manager

Aplicación para administrar despliegues.

Permite:

host-manager

Administra Hosts Virtuales.

docs

Documentación de Tomcat.

examples

Aplicaciones de ejemplo.

En producción normalmente se eliminan por seguridad.

work/

Muchos administradores nunca entran aquí.

Es donde Tomcat guarda archivos generados.

Ejemplo:  

work/
    Catalina/
        localhost/
            ROOT/
                org/
                    apache/

Cuando una JSP:  

Hola Mundo

se ejecuta, Tomcat hace:  

Por eso, si una JSP cambia y hay problemas de caché, suele bastar con:

JSP

Java Servlet

.class

work/

rm -rf work/*

y reiniciar Tomcat para forzar la recompilación.

Flujo simplificado de funcionamiento  

Usuario
    ↓
Puerto 8080
    ↓
Connector (server.xml)
    ↓
Catalina Engine
    ↓
Host
    ↓
webapps/
    ↓
Aplicación
    ↓
Si existe una JSP
    ↓
work/
    ↓
Servlet compilado
     ↓
Respuesta HTTP

Directorios que normalmente administrarás

Directorio Uso habitual
bin/ Iniciar, detener y configurar el entorno de ejecución (scripts como startup.sh, shutdown.sh y setenv.sh).
conf/ Configurar puertos, conectores, usuarios, recursos JNDI y comportamiento global del servidor.
webapps/ Desplegar, actualizar o eliminar aplicaciones web (.war o directorios).
logs/ Revisar errores, excepciones, accesos HTTP y diagnosticar problemas.
lib/ Agregar bibliotecas compartidas, como drivers JDBC o dependencias comunes.

En cambio, temp/ y work/ son directorios gestionados por Tomcat y normalmente no se modifican manualmente, salvo para limpiar archivos temporales o forzar la recompilación de JSP durante tareas de mantenimiento.

Preguntas frecuentes

¿Dónde se instalan las aplicaciones en Apache Tomcat?

Las aplicaciones web se despliegan normalmente en la carpeta webapps. Apache Tomcat puede desplegar aplicaciones en formato WAR o directorios descomprimidos automáticamente cuando el despliegue automático está habilitado.

¿Cuál es la carpeta más importante de Apache Tomcat?

"La carpeta conf es una de las más importantes porque contiene los archivos de configuración principales del servidor, como server.xml, web.xml, context.xml y tomcat-users.xml.

¿Para qué sirve la carpeta bin de Apache Tomcat?

La carpeta bin contiene los scripts necesarios para iniciar, detener y administrar Apache Tomcat. Incluye archivos como startup.sh, shutdown.sh, catalina.sh y sus equivalentes para Windows.

¿Dónde se encuentran los archivos de configuración de Apache Tomcat?

Los archivos de configuración se encuentran en la carpeta conf. Entre los más importantes están server.xml, web.xml, context.xml, logging.properties y catalina.properties.

¿Dónde se guardan los registros (logs) de Apache Tomcat?

Los registros del servidor se almacenan en la carpeta logs. Allí se encuentran archivos como catalina.out, localhost.log y otros registros que ayudan a diagnosticar errores y monitorear el funcionamiento del servidor.

¿Qué contiene la carpeta lib de Apache Tomcat?

La carpeta lib almacena las bibliotecas compartidas que utiliza Apache Tomcat y que pueden ser usadas por todas las aplicaciones desplegadas en el servidor.

¿Cuál es la diferencia entre CATALINA_HOME y CATALINA_BASE?

CATALINA_HOME indica la ubicación donde está instalado Apache Tomcat, mientras que CATALINA_BASE define el directorio utilizado por una instancia específica para almacenar configuraciones, aplicaciones, registros y archivos temporales.

¿Qué archivo configura el servidor Apache Tomcat?

El archivo principal de configuración es server.xml, ubicado en la carpeta conf. En él se definen conectores HTTP, puertos, motores, hosts virtuales y otros componentes fundamentales del servidor.


Comentario

Debe aceptar antes de enviar