Cómo instalar Apache Tomcat 9 en Debian 10

Introducción

Apache Tomcat es un servidor web y un contenedor de servlets que se utiliza para mostrar aplicaciones Java. Tomcat es una implementación de código abierto de las tecnologías Java Servlet y JavaServer Pages, lanzada por la Apache Software Foundation.

Este tutorial cubre la instalación básica y algunas configuraciones de la última versión de Tomcat 9 en un servidor Debian 10.

Prerrequisitos

Antes de comenzar con esta guía, debes tener un usuario no root con privilegios sudo configurados en tu servidor.

Puedes aprender cómo hacerlo siguiendo una guía de configuración inicial del servidor Debian 10.

Paso 1 – Instalar Java

Tomcat requiere que Java esté instalado en el servidor para poder ejecutar cualquier código de aplicación web Java. Podemos satisfacer ese requisito instalando OpenJDK con apt.

Primero, actualiza tu índice de paquete apt:

Luego instala el paquete de Java Development Kit con apt:

Ahora que Java está instalado, podemos crear un usuario tomcat, que se utilizará para ejecutar el servicio Tomcat.

Paso 2 – Crear usuario Tomcat

Por razones de seguridad, Tomcat debe ejecutarse como un usuario sin privilegios (es decir, no como root). Crearemos un nuevo usuario y grupo que ejecutará el servicio Tomcat.

Primero, crea un nuevo grupo tomcat:

A continuación, crea un nuevo usuario tomcat. Haremos que este usuario sea miembro del grupo tomcat, con un directorio de inicio de /opt/tomcat (donde instalaremos Tomcat) y con una shell de /bin/false (para que nadie pueda iniciar sesión en la cuenta):

Ahora que nuestro usuario tomcat está configurado, vamos a descargar e instalar Tomcat.

Paso 3 – Instalar Tomcat

La mejor manera de instalar Tomcat 9 es descargar la última versión binaria y luego configurarla manualmente.

Encuentras la última versión de Tomcat 9 en la página de descargas de Tomcat 9.

Al momento de escribir este artículo, la última versión es 9.0.27, pero debes usar una versión estable posterior si está disponible. En la sección Distribuciones binarias, luego en la lista Core, copia el enlace a “tar.gz”.

Luego, regresa a tu sesión SSH y ve al directorio /tmp de tu servidor. Este es un buen directorio para descargar elementos efímeros, como el tarball de Tomcat, que no necesitaremos después de extraer el contenido de Tomcat:

Usaremos la herramienta de línea de comandos curl para descargar el tarball. Instalar curl:

Ahora, usa curl para descargar el enlace que copiaste del sitio web de Tomcat:

Instalaremos Tomcat en el directorio /opt/tomcat. Debes crear el directorio, luego extraer el archivo con estos comandos:

Paso 4 – Permisos de actualización

El usuario tomcat que creamos debe tener acceso a la instalación de Tomcat. Configuraremos eso ahora.

Cambia al directorio donde desempaquetamos la instalación de Tomcat:

Dale al grupo tomcat la propiedad sobre todo el directorio de instalación:

A continuación, debes proporcionar acceso a tomcat al grupo read y al directorio conf y a todos sus contenidos, y execute accede al directorio mismo:

Debes hacer que el usuario tomcat sea propietario de los directorios webapps, work, temp, y logs:

Ahora que se configuraron los permisos adecuados, crearemos un archivo de servicio systemd para administrar el proceso de Tomcat.

Paso 5 – Crear un archivo de servicio systemd

Queremos poder ejecutar Tomcat como un servicio, por lo que configuraremos el archivo de servicio systemd.

Tomcat necesita saber dónde está instalado Java. Esta ruta se conoce comúnmente como JAVA_HOME. La forma más fácil de buscar esa ubicación es ejecutando este comando:

Tu JAVA_HOME es la salida de la última columna (resaltada arriba). Dado el ejemplo anterior, el JAVA_HOME correcto para este servidor sería:

Tu JAVA_HOME puede ser diferente.

Con esta información, podemos crear el archivo de servicio systemd. Abre un archivo llamado tomcat.service en el directorio /etc/systemd/system escribiendo:

Pega los siguientes contenidos en tu archivo service. Modifica el valor de JAVA_HOME si es necesario para que coincida con el valor que encontraste en tu sistema.

También es posible que desees modificar la configuración de asignación de memoria que se especifica en CATALINA_OPTS:

Cuando hayas terminado, guarda y cierra el archivo.

A continuación, vuelve a cargar el demonio systemd para que conozca nuestro archivo service:

Inicia el servicio Tomcat escribiendo:

Vuelve a comprobar que comenzó sin errores escribiendo:

Deberías ver una salida similar a la siguiente:

Esto confirma que Tomcat está funcionando en tu servidor.

Paso 6 – Ajustar el firewall y probar el servidor Tomcat

Ahora que se inició el servicio Tomcat, podemos probar para asegurarnos de que la página predeterminada esté disponible.

Antes de hacer eso, debemos ajustar el firewall para permitir que nuestras solicitudes lleguen al servicio. Si seguiste los requisitos previos, tendrás un firewall ufw habilitado actualmente.

Tomcat usa el puerto 8080 para aceptar solicitudes. Debes permitir el tráfico a ese puerto escribiendo:

Con el firewall modificado, puedes acceder a la página de bienvenida predeterminada yendo a tu dominio o dirección IP seguido de :8080 en un navegador web:

Verás la página de bienvenida predeterminada de Tomcat, además de otra información.

Sin embargo, si haces clic en los enlaces de la aplicación Manager, por ejemplo, se te negará el acceso. Podemos configurar ese acceso a continuación.

Si pudiste acceder con éxito a Tomcat, ahora es un buen momento para habilitar el archivo de servicio para que Tomcat se inicie automáticamente en el arranque:

Paso 7 – Configurar la interfaz de administración web de Tomcat

Para utilizar la aplicación web de administrador que viene con Tomcat, debemos agregar un inicio de sesión a nuestro servidor Tomcat. Haremos esto editando el archivo tomcat-users.xml:

Deberás agregar un usuario que pueda acceder a manager-gui y admin-gui (aplicaciones web que vienen con Tomcat).

Puedes hacerlo definiendo un usuario, similar al ejemplo a continuación, entre las etiquetas tomcat-users. Asegúrate de cambiar el nombre de usuario y la contraseña a algo seguro:

Guarda y cierra el archivo cuando hayas terminado.

De forma predeterminada, las versiones más recientes de Tomcat restringen el acceso a las aplicaciones Manager y Host Manager a las conexiones que provienen del propio servidor.

Dado que estamos instalando en una máquina remota, es probable que desees eliminar o modificar esta restricción. Para cambiar las restricciones de la dirección IP en estos, abre los archivos context.xml apropiados.

Para la aplicación Manager, escribe:

En el interior, comenta la restricción de la dirección IP para permitir conexiones desde cualquier lugar.

Alternativamente, si deseas permitir el acceso solo a las conexiones que provienen de tu propia dirección IP, puedes agregar tu dirección IP pública a la lista:

Tienes que guardar y cerrar los archivos cuando hayas terminado.

Para que nuestros cambios surtan efecto, debes reiniciar el servicio Tomcat:

Paso 8 – Acceder a la interfaz web

Ahora que hemos creado un usuario, podemos acceder a la interfaz de administración web nuevamente en un navegador web.

Una vez más, puedes acceder a la interfaz correcta ingresando el nombre de dominio o la dirección IP de tu servidor seguidos en el puerto 8080 en tu navegador:

La página que ves debería ser la misma que viste cuando realizaste la prueba anteriormente:

Echemos un vistazo a la aplicación Manager, accesible a través del enlace http://server_domain_or_IP:8080/manager/html. 

Deberás ingresar las credenciales de la cuenta que agregaste al archivo tomcat-users.xml. Después, deberías ver una página con el siguiente aspecto:

El Administrador de aplicaciones web se usa para administrar tus aplicaciones Java. Puedes iniciar, detener, recargar, implementar y cancelar la implementación aquí.

También puedes ejecutar algunos diagnósticos en tus aplicaciones (es decir, encontrar pérdidas de memoria). Por último, la información sobre tu servidor está disponible en la parte inferior de esta página.

Ahora echemos un vistazo al Host Manager, accesible a través del enlace o por medio de http://server_domain_or_IP:8080/host-manager/html/:

Desde la página Virtual Host Manager, puedes agregar hosts virtuales para mostrar tus aplicaciones.

Conclusión

¡Tú instalación de Tomcat está completa! Ahora puedes implementar tus propias aplicaciones web Java.

Actualmente, tu instalación de Tomcat es funcional, pero no está cifrada. Esto significa que todos los datos, incluidos los elementos confidenciales como las contraseñas, se envían en texto sin formato que pueden ser interceptados y leídos por otras partes en Internet.

Para evitar que esto suceda, te recomendamos encarecidamente que cifres tus conexiones con SSL.