Configurar Apache Tomcat


Aprende a Configurar Apache Tomcat conociendo cada archivo del directorio conf y su función

Configurar Apache Tomcat
oscar Escrito por oscar 16 July 2026 3 0

Aprende a administrar Apache Tomcat

Instalar Apache Tomcat

Directorios de Apache Tomcat

En el posts Carpetas y archivos de Apache Tomcat: estructura completa explico a detalle los archivos mas importantes.

Preguntas que vamos a responder en este post

¿Cómo configurar Apache Tomcat?

Configurar Apache Tomcat consiste en ajustar los archivos ubicados en el directorio conf/ para adaptar el servidor a las necesidades de la aplicación. La configuración básica incluye cambiar los puertos de escucha, crear usuarios administradores, configurar aplicaciones web, definir hosts virtuales y habilitar conexiones seguras mediante HTTPS

Los principales archivos de configuración son:

Después de modificar cualquiera de estos archivos, es necesario reiniciar Tomcat para que los cambios tengan efecto.

¿Qué hace el archivo server.xml?

El archivo server.xml es el núcleo de la configuración de Apache Tomcat. En él se define cómo funciona el servidor y cómo atiende las solicitudes HTTP y HTTPS.

Entre sus funciones principales se encuentran:

Es el archivo que más se modifica al personalizar una instalación de Tomcat.

¿Cómo cambiar el puerto 8080?

Para cambiar el puerto predeterminado de Tomcat:

Abre el archivo: TOMCAT_HOME/conf/server.xml

Localiza el conector HTTP:

<Connector port="8080"
    protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />

Cambia el valor del atributo port.

Por ejemplo:

<Connector port="9090"
    protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />

Guarda el archivo y reinicia Tomcat.

Ahora el servidor estará disponible en: http://localhost:9090

¿Cómo configurar usuarios en Tomcat?

Los usuarios se configuran en el archivo: conf/tomcat-users.xml

Puedes crear un usuario administrador de la siguiente manera:

<role rolename="manager-gui"/>
<role rolename="admin-gui"/>

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

Después de guardar los cambios, reinicia Tomcat.

Con este usuario podrás acceder tanto al Tomcat Manager como al Host Manager.

¿Cómo entrar al Tomcat Manager?

Una vez creado un usuario con el rol manager-gui, abre un navegador y accede a: http://localhost:8080/manager/html

Introduce el nombre de usuario y la contraseña configurados en tomcat-users.xml.

Desde el Tomcat Manager podrás:

¿Cómo desplegar un archivo WAR?

Apache Tomcat permite desplegar aplicaciones Java empaquetadas en formato WAR de diferentes maneras.

Desde el Tomcat Manager

  1. Accede al Manager.
  2. Busca la sección Deploy.
  3. Selecciona el archivo WAR.
  4. Haz clic en Deploy.

Copiando el archivo WAR

También puedes copiar el archivo directamente en: webapps/

Por ejemplo: webapps/mi-aplicacion.war

Si el despliegue automático está habilitado, Tomcat descomprimirá el archivo y publicará la aplicación automáticamente.

El corazón de Tomcat

Toda la configuración gira alrededor de unos pocos archivos ubicados en conf/

Archivo Función
server.xml Configuración del servidor
web.xml Configuración global de aplicaciones
context.xml Configuración de Contextos
tomcat-users.xml Usuarios del administrador
logging.properties Logs
catalina.properties Propiedades internas

server.xml

Es el archivo más importante. Revisa documentación oficial https://tomcat.apache.org/tomcat-9.0-doc/config/index.html

Server xml de Apache Tomcat
Server xml de Apache Tomcat

Componentes principales

Este archivo está estructurado en una jerarquía de etiquetas XML que representan los distintos módulos de Tomcat:

 <Server>: Es el elemento raíz que representa a toda la instancia de Tomcat.

Server

<Server port="8005" shutdown="SHUTDOWN">

El puerto 8005 solamente recibe el comando de apagado, puedes cambiarlo: 8005, 9005, 10005.

Service

Agrupa conectores y motores. Normalmente existe uno.

<Service name="Catalina">

Connector

Es donde Tomcat escucha peticiones.

<Connector
    port="8080"
    protocol="HTTP/1.1"/>

Aquí llegan las peticiones del navegador. http://localhost:8080

Puedes modificar

Engine

Representa el motor de Servlet.

<Engine
    name="Catalina"
    defaultHost="localhost">

Dentro del Engine existen Hosts.

Host

Representa un dominio.

<Host
    name="localhost"
    appBase="webapps"
    unpackWARs="true"
    autoDeploy="true">

Context

Cada aplicación posee un Context.

<Context
    path="/blog"
    docBase="/apps/blog"/>

Aquí puedes configurar:

web.xml

Es el Deployment Descriptor (descriptor de despliegue) de una aplicación Java EE (Jakarta EE).

Su función es decirle al contenedor (Tomcat):

Antes de las anotaciones (@WebServlet, @WebFilter, etc.), prácticamente toda la configuración se hacía en este archivo.

¿Dónde se encuentra?

El global de Tomcat

TOMCAT_HOME/
│
├── conf/
│   └── web.xml

Este afecta a todas las aplicaciones.

El de una aplicación

MiAplicacion/

WEB-INF/
    web.xml

Solo afecta a esa aplicación.

¿Qué contiene normalmente?

Un web.xml puede contener elementos como estos:

<web-app>
    <display-name>Mi Aplicación</display-name>
    <context-param/>
    <listener/>
    <filter/>
    <filter-mapping/>
    <servlet/>
    <servlet-mapping/>
    <session-config/>
    <welcome-file-list/>
    <error-page/>
    <security-constraint/>
</web-app>

Cada sección tiene una función específica.

display-name

Es únicamente el nombre descriptivo de la aplicación.

<display-name>Mi Blog</display-name>

No afecta el funcionamiento.

Context Parameters

Permiten definir variables globales.

<context-param>
    <param-name>empresa</param-name>
    <param-value>Apuntes DevOps</param-value>
</context-param>

Desde Java puedes obtenerla mediante:

ServletContext context = getServletContext();

String empresa =
context.getInitParameter("empresa");

Es útil para almacenar información de configuración compartida.

Listener

Los listeners escuchan eventos del ciclo de vida de la aplicación.

Por ejemplo:

Configuración:

<listener>
    <listener-class>
        com.miempresa.StartupListener
    </listener-class>
</listener>

Muy usado para cargar configuraciones al arrancar.

Filter

Los filtros interceptan las peticiones antes de llegar al servlet.

Cliente
↓
Filtro
↓
Servlet
↓
Respuesta

Ejemplo:

<filter>
    <filter-name>AuthFilter</filter-name>
    <filter-class>
        com.miempresa.AuthFilter
    </filter-class>
</filter>

Luego se indica sobre qué rutas actúa:

<filter-mapping>
    <filter-name>AuthFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Algunos usos habituales son:

Servlet

Aquí se registran los servlets.

<servlet>
    <servlet-name>HomeServlet</servlet-name>
    <servlet-class>
        com.blog.HomeServlet
    </servlet-class>
</servlet>

Después se asocia a una URL.

<servlet-mapping>
    <servlet-name>HomeServlet</servlet-name>
    <url-pattern>/home</url-pattern>
</servlet-mapping>

Entonces:

http://localhost:8080/home

ejecutará ese servlet.

Welcome File

Define la página inicial.

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>

Cuando alguien accede a:

http://localhost:8080/

Tomcat busca en este orden:

index.jsp
↓
index.html
↓
default.jsp

El primero que encuentre será el que muestre.

Session Configuration

Permite configurar las sesiones HTTP.

<session-config>
    <session-timeout>30</session-timeout>
</session-config>

Después de 30 minutos sin actividad, la sesión expira.

También se pueden definir propiedades de las cookies de sesión.

Error Pages

Puedes personalizar las páginas de error.

<error-page>
    <error-code>404</error-code>
    <location>/404.jsp</location>
</error-page>

Y también por excepción:

<error-page>
    <exception-type>
        java.lang.Exception
    </exception-type>
    <location>/error.jsp</location>
</error-page>

Así evitas mostrar el error estándar de Tomcat.

Seguridad

Puedes proteger partes de la aplicación.

<security-constraint>
    <web-resource-collection>
        <url-pattern>/admin/*</url-pattern>
    </web-resource-collection>
</security-constraint>

Y exigir un rol determinado:

<auth-constraint>

    <role-name>ADMIN</role-name>

</auth-constraint>

Solo los usuarios con ese rol podrán acceder.

Usuarios de Tomcat

Todo está en conf/tomcat-users.xml

Inicialmente viene vacío.

<tomcat-users>

    <role rolename="manager-gui"/>

    <role rolename="admin-gui"/>

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

</tomcat-users>

Reinicias Tomcat.

Ahora podrás entrar. http://localhost:8080/manager/html

Roles

Tomcat utiliza permisos.

Los principales son:

Rol Descripción
manager-gui Administrador Web
manager-script API REST
manager-jmx JMX
manager-status Estado
admin-gui Host Manager
admin-script Host Manager API

Manager Application

Es la consola web.

Normalmente está aquí: webapps/manager/

Ingresas: http://localhost:8080/manager/html

Verás:

Qué puedes hacer

Deploy

Subir un WAR: miapp.war

Undeploy

Eliminar la aplicación.

No elimina el WAR si está fuera de webapps.

Reload

Recarga una aplicación.

No reinicia Tomcat.

Muy útil.

Start

Inicia una aplicación.

Stop

Detiene una aplicación.

Expire Sessions

Cerrar sesiones activas.

Muy útil para mantenimiento.

Server Status

Muestra información muy útil.

Encontrarás:

Aquí puedes detectar problemas de rendimiento.

Host Manager

URL: http://localhost:8080/host-manager/html

Host manager de Apache Tomcat
Host manager de Apache Tomcat

Permite administrar Hosts.

Puedes crear: empresa.com, blog.com, api.com

Sin editar XML manualmente.

Logs

Los registros se encuentran en: logs/

Archivo Contenido
catalina.out (Linux) Salida estándar de Tomcat
catalina..log Eventos del servidor
localhost..log Eventos del host localhost
manager..log Acciones del Manager
host-manager..log Acciones del Host Manager

Comentario

Debe aceptar antes de enviar