Tomcat 10, una aplicación de servidor de código abierto

noviembre 10, 2021 , 0 Comments

about Tomcat 10

En el siguiente artículo vamos a echar un vistazo a cómo podemos instalar Tomcat 10 en Ubuntu 20.04. Apache Tomcat funciona como un contenedor de servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Este es desarrollado y actualizado por miembros de la Apache Software Foundation y voluntarios independientes.

Aunque hoy en día este no es tan popular como otros servidores, Tomcat sigue teniendo su utilidad en muchos proyectos. Tomcat requiere que Java SE 8 o posterior esté instalado en el sistema para que funcione de forma correcta.

Cómo instalar Tomcat 10 en Ubuntu 20.04

Instalar OpenJDK en Ubuntu

Como decía líneas más arriba, Tomcat requiere que Java JDK esté instalado en nuestro sistema. Para esto tanto podemos instalar Oracle Java JDK como su alternativa de código abierto OpenJDK.

Para instalar el OpenJDK que podemos encontrar en los repositorios de Ubuntu, no tenemos más que abrir una terminal (Ctrl+Alt+T) y ejecutar:

instalación default jdk

sudo apt update; sudo apt install default-jdk

Una vez instalado, solo necesitaremos verificar la instalación comprobando la versión de Java:

java openjdk version

java -version

Crear un usuario y un grupo para Tomcat

Primero vamos a crear un nuevo grupo para Tomcat al cual vamos a llamar tomcat. Esto lo haremos con el comando:

sudo groupadd tomcat

A continuación, es el momento de crear un nuevo usuario para Tomcat al cual vamos a llamar tomcat. Después lo convertiremos en miembro del grupo tomcat que creamos antes. Además también haremos de /opt/tomcat la carpeta de inicio para el usuario que vamos a crear. Para hacer todo esto, en la misma terminal solo tendremos que ejecutar:

add usuario tomcat

sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Descargar Tomcat

Llegados a este punto, ya estamos listos para descargar y configurar Tomcat. En el momento de escribir estas líneas, la última versión publicada de la serie 10 es la 10.0.12, y se puede descargar desde la página web del proyecto.

Además de utilizar el navegador web, también podemos obtener este último paquete publicado a día de hoy abriendo una terminal (Ctrl+Alt+T) y ejecutando en ella los comandos:

descargar Tomcat 10

cd /tmp
wget ftp://apache.cs.utah.edu/apache.org/tomcat/tomcat-10/v10.0.12/bin/apache-tomcat-10.0.12.tar.gz

Cuando finalice la descarga, vamos a crear la carpeta de inicio de Tomcat en /opt/tomcat. Ahí es dónde vamos a descomprimir el archivo descargado. Para hacer esto no tendremos más que ejecutar los comandos:

descomprimir Tomcat

sudo mkdir /opt/tomcat
sudo tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat/

A continuación, vamos a darle al usuario de Tomcat el control de todo el directorio, y haremos que todos los scripts en la ubicación bin sean ejecutables:

permisos directorio Tomcat

sudo chown -R tomcat: /opt/tomcat
sudo sh -c 'chmod +x /opt/tomcat/apache-tomcat-10.0.12/bin/*.sh'

Configurar el servicio Tomcat

Ahora que ya tenemos el paquete extraído en la ubicación que queremos, vamos a ejecutar el siguiente comando para abrir el archivo de configuración de Tomcat para el usuario predeterminado:

sudo vim /opt/tomcat/apache-tomcat-10.0.12/conf/tomcat-users.xml

Dentro del archivo vamos a crear una cuenta con contraseña para el usuario admin y a guardarla dentro del archivo. Esto podemos hacerlo copiando y pegando las siguientes líneas en el archivo, justo antes de:

 </tomcat-users>

password admin tomcat 10

<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="escribe-la-contraseña-para-admin" roles="manager-gui,admin-gui"/>

Después de cambiar la opción “password” por nuestra contraseña, guardamos y cerramos el editor. A continuación, ejecutaremos el siguiente comando para crear una cuenta de servidor para Tomcat:

sudo vim /etc/systemd/system/tomcat.service

Cuando se abra el editor, vamos a pegar las siguientes líneas dentro. Después guardaremos el archivo.

configuración de service tomcat 10

[Unit]
Description=Tomcat servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/default-java"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_BASE=/opt/tomcat/apache-tomcat-10.0.12"
Environment="CATALINA_HOME=/opt/tomcat/apache-tomcat-10.0.12"
Environment="CATALINA_PID=/opt/tomcat/apache-tomcat-10.0.12/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/apache-tomcat-10.0.12/bin/startup.sh
ExecStop=/opt/tomcat/apache-tomcat-10.0.12/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Cuando estemos devuelta en la terminal, vamos a ejecutar los siguientes comandos para volver a cargar los perfiles de systemd y habilitar el servicio tomcat:

cargar systemctl tomcat 10

sudo systemctl daemon-reload
sudo systemctl start tomcat.service
sudo systemctl enable tomcat.service

Tras estos comandos, para comprobar si Tomcat se está ejecutando o no, solo necesitaremos ejecutar:

status tomcat

sudo systemctl status tomcat.service

Iniciar la interfaz gráfica de Tomcat

Llegados a este punto, tan solo será necesario abrir nuestro navegador y dirigirnos a la IP del servidor local o el nombre de host. Esto debería mostrarnos la página predeterminada de Tomcat:

http://localhost:8080

Tomcat 10 navegador web

Una vez en la interfaz del programa, habrá que hacer clic en la opción Manager para iniciar sesión en la página de backend. Aquí tendremos como utilizar como nombre de usuario admin y como contraseña la que indiquemos en el archivo tomcat-users.xml.

backend Tomcat 10

Si quieres acceder al servidor Tomcat de forma remota, será necesario incluir en la lista blanca la dirección IP remota a la que se le permitirá el acceso. Para cambiar las restricciones de dirección, será necesario abrir los archivos context.xml apropiados. Para la aplicación Manager, el archivo a editar será:

sudo nano /opt/tomcat/apache-tomcat-10.0.12/webapps/manager/META-INF/context.xml

Para la aplicación Host Manager, el archivo a editar sería este:

sudo vim /opt/tomcat/apache-tomcat-10.0.12/webapps/host-manager/META-INF/context.xml

En el interior de ambos archivos, comenta la restricción de la dirección IP para permitir conexiones desde cualquier lugar. Si quieres permitir el acceso solo a conexiones provenientes de tu propia dirección IP, puedes añadir tu dirección IP pública a la lista.

Los archivos context.xml para las aplicaciones web de Tomcat deben tener un aspecto similar al siguiente:

modificar archivos context.xml

Tras guardar los archivos context.xml, es necesario reiniciar el servicio Tomcat ejecutando el comando:

sudo systemctl restart tomcat

Se puede obtener más información sobre Tomcat y su funcionamiento en la página web del proyecto, en su documentación oficial o en su Wiki.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.