Cómo instalar Tomcat 9 en Ubuntu 20.04 LTS

En este artículo veremos cómo instalar Tomcat 9 en Ubuntu 20.04 LTS Focal Fossa paso a paso, de modo que puedas desplegar aplicaciones realizadas según las especificaciones de la plataforma Java EE 8, desde tu servidor o VPS Ubuntu.

Antes de instalar Tomcat 9 en Ubuntu 20.04 LTS

Para poder seguir los pasos de esta guía de instalación de Tomcat 9 en Ubuntu 20.04 LTS sólo tendrás que partir de la siguiente base:

  • Un sistema Ubuntu 20.04 LTS Focal Fossa actualizado.
  • Acceso a línea de comandos con un usuario con nivel de sudo.
  • Conexión a Internet.

Cómo instalar Tomcat 9 en Ubuntu 20.04 LTS

Vamos a instalar Tomcat 9 en Ubuntu 20.04 LTS desde los repositorios de la distribución, ya que la versión disponible es bastante reciente. Para ello actualizamos las listas de paquetes:

~$ sudo apt update

Instalaremos los paquetes principales, correspondientes al núcleo de Tomcat y a las aplicaciones administrativas:

~$ sudo apt install -y tomcat9 tomcat9-admin

Adicionalmente puedes instalar el paquete tomcat9-docs para disponer de la aplicación de documentación integrada de Tomcat 9:

~$ sudo apt install -y tomcat9-docs

Y también podrías instalar el paquete tomcat9-examples si quieres tener algunos ejemplos de aplicaciones básicas funcionando en Tomcat 9:

~$ sudo apt install -y tomcat9-examples

Tras la instalación de Tomcat y sus dependencias se crea en Ubuntu 20.04 LTS el servicio tomcat9.service, o tomcat9 si prefieres el nombre corto, que queda en ejecución y habilitado para arrancar automáticamente junto al sistema.

En cualquier momento puedes comprobar el estado del servicio Tomcat 9 mediante el comando systemctl status tomcat9:

como instalar tomcat 9 en ubuntu 20.04 lts focal fossa

Cómo configurar el firewall UFW de Ubuntu 20.04 para Tomcat 9

Si vas a acceder a Tomcat 9 desde la red y tienes activado este firewall en Ubuntu 20.04 LTS, habrá que añadir una regla:

~$ sudo ufw allow 8080/tcp

Cómo configurar Tomcat 9 en Ubuntu 20.04 LTS

Vamos a configurar Tomcat 9 en Ubuntu 20.04 LTS antes de hacer ninguna prueba, ya que para trabajar con las aplicaciones administrativas no basta la configuración por defecto.

Puerto de conexión

Por defecto, Tomcat 9 espera conexiones en el puerto 8080. El problema que podría surgir de esta configuración es que exista previamente otra aplicación utilizando dicho puerto, como un proxy, o que simplemente quieras usar un puerto distinto.

Podemos cambiar el puerto de escucha editando el archivo server.xml:

~$ sudo nano /etc/tomcat9/server.xml

Buscaremos la siguiente directiva Connector:

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

Bastará con sustituir el valor de port por el puerto que queramos usar, guardar el archivo y reiniciar el servicio tomcat9.

~$ sudo systemctl restart tomcat9

En este tutorial usaremos el puerto 8080, por lo que si decides cambiarlo debes tenerlo en cuenta a la hora de aplicar los ejemplos (y en la configuración del firewall).

Usuarios de Tomcat 9

Algunas aplicaciones de Tomcat 9, como las aplicaciones administrativas, requieren el acceso autenticado de usuarios con cierto nivel de privilegios o roles.

Por ejemplo, el Gestor de Aplicaciones Web requiere usuarios con rol manager-gui, mientras que el Gestor de Máquina Virtual requiere el rol admin-gui.

Podemos crear los usuarios que consideremos con contraseña y con uno o ambos roles, en este caso será un solo usuario con ambos roles, para lo que editaremos el archivo tomcat-users.xml:

~$ sudo nano /etc/tomcat9/tomcat-users.xml

Antes del cierre del bloque tomcat-users añadiremos una definición de usuario con contraseña y los roles necesarios:

...
        <user username="instalador" password="XXXXXXXX" roles="admin-gui,manager-gui"/>
</tomcat-users>

Guardamos los cambios y cerramos el archivo.

Acceso remoto a las aplicaciones

Algunas aplicaciones, de nuevo entre ellas las aplicaciones administrativas, restringen en su configuración personal el acceso desde red, por lo que debemos editar su archivo de configuración context.xml. Son configuraciones de las aplicaciones en particular, no de Tomcat 9, y algunas aplicaciones tendrán esta característica y otras no.

En el caso del Gestor de Aplicaciones Web, o aplicación «Manager«, editamos su archivo context.xml:

~$ sudo nano /usr/share/tomcat9-admin/manager/META-INF/context.xml

Dentro del bloque Context encontraremos una directiva Valve:

...
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
..

Debemos desactivar esta directiva encerrándola en un bloque de comentarios XML:

...
<!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
...

Ya podemos guardar los cambios y cerrar el archivo.

Para el Gestor de Máquina Virtual, o aplicación «Host Manager«, habría que hacer un cambio exactamente igual en su archivo context.xml, ubicado en su propia ruta de configuración:

~$ sudo nano /usr/share/tomcat9-admin/host-manager/META-INF/context.xml

Aplicar los cambios de configuración

Después de hacer estos cambios, habrá que reiniciar el servicio Tomcat 9 para aplicarlos:

~$ sudo systemctl restart tomcat9

Cómo acceder a Tomcat 9 en Ubuntu 20.04 LTS

Como tendrás ganas de verlo en acción, vamos a acceder a Tomcat 9 en Ubuntu 20.04 LTS, desde un navegador, para lo que indicaremos la dirección IP o nombre de la máquina y el puerto de conexión, que en la configuración estándar es el 8080.

En el ejemplo de este tutorial trabajamos sobre una máquina Ubuntu 20.04 accesible en el nombre DNS o subdominio ubuntu2004.local.lan, por lo que usaríamos http://ubuntu2004.local.lan:8080 como URL:

instalar tomcat 9 en ubuntu 20.04 lts focal fossa

Se nos muestra la página de inicio de Tomcat 9, que no es precisamente una maravilla de diseño.

Hay varios enlaces a la aplicación de documentación, a la aplicación de ejemplos y a las aplicaciones administrativas.

Aplicación de documentación

Si decidiste instalarla, en la ruta /docs/, o en nuestro ejemplo http://ubuntu2004.local.lan:8080/docs/, se puede visitar la documentación integrada de Tomcat 9:

instalacion de tomcat 9 en ubuntu 20.04 lts focal fossa

Habrás observado que para acceder a esta aplicación no se nos ha solicitado ningún tipo de autenticación, ni hemos tenido que permitir explícitamente acceso desde red.

Aplicación Manager

Sin embargo, si intentamos acceder al Gestor de Aplicaiones Web, aplicación /manager/html, o http://ubuntu2004.local.lan:8080/manager/html en este ejemplo, sí que se nos solicita autenticación:

como instalar y configurar tomcat 9 en ubuntu 20.04 lts focal fossa

Introduciremos el nombre y la contraseña del usuario que creamos con el rol manager-gui para poder acceder, y se mostrará el «Gestor de Aplicaciones Web de Tomcat», donde podrás desplegar, replegar, iniciar o detener aplicaciones web servidas desde Tomcat 9:

instalar y configurar tomcat 9 en ubuntu 20.04 lts focal fossa

Aplicación Host Manager

Desde la página inicial de Tomcat 9 encontraremos también el acceso al Gestor de Máquina Virtual de Tomcat en la ruta /host-manager, o http://ubuntu2004.local.lan:8080/host-manager/html en este ejemplo. Tras autenticarnos accederemos a la aplicación:

como configurar tomcat 9 en ubuntu 20.04 lts focal fossa

Cómo desplegar aplicaciones sobre Tomcat 9 en Ubuntu 20.04

Si dispones de un arhivo .war correspondiente a una aplicación que quieras desplegar en Tomcat 9 sobre Ubuntu 20.04, entra en el Gestor de Aplicaciones Web de Tomcat y desplázate hasta la sección «Desplegar«, concretamente al  recuadro «Archivo WAR a desplegar«. Utilizando el botón «Seleccionar archivo» podrás buscar el archivo .war en el sistema de archivos.

Tomcat 9 para Ubuntu 20.04 LTS Focal Fossa

Cuando el archivo esté seleccionado, pulsa el botón «Desplegar«. La aplicación será desplegada y se recargará el Gestor de Aplicaciones, mostrando el resultado de la operación y, si todo ha ido bien, la nueva aplicación aparecerá en la lista de aplicaciones, junto a sus controles de gestión:

tomcat 9 en ubuntu 20.04 lts focal fossa

Para probar la nueva aplicación bastará con seguir el enlace que aparece en la misma lista de aplicaciones, que será el enlace que facilitaremos a nuestros usuarios:

como desplegar aplicaciones en Tomcat 9 para Ubuntu 20.04 LTS

Cómo cambiar el tamaño máximo admitido de archivos .war

Es posible que para alguna aplicación en concreto no baste con el valor por defecto del tamaño máximo de archivos WAR. Podremos aumentar este tamaño editando el archivo de configuración web.xml del Gestor de Aplicaciones Web de Tomcat 9:

~$ sudo nano /usr/share/tomcat9-admin/manager/WEB-INF/web.xml

Buscaremos el bloque multipart-config:

...
    <multipart-config>
      <!-- 50MB max -->
      <max-file-size>52428800</max-file-size>
      <max-request-size>52428800</max-request-size>
      <file-size-threshold>0</file-size-threshold>
    </multipart-config>
...

Podemos comprobar que el tamaño máximo por defecto es de 50 MB y que las cantidades están expresadas en bytes.

Para configurar el nuevo máximo permitido, calcula su valor en bytes y sustitúyelo. Por ejemplo, un nuevo tamaño máximo de 100 MB quedaría así:

...
    <multipart-config>
      <!-- 100MB max -->
      <max-file-size>104857600</max-file-size>
      <max-request-size>104857600</max-request-size>
      <file-size-threshold>0</file-size-threshold>
    </multipart-config>
...

También hemos cambiado el comentario que indica el tamaño de forma más legible.

Guardados los cambios, habrá que reiniciar el servicio Tomcat 9 para aplicarlos.

Conclusión

Ahora que sabes cómo instalar Tomcat 9 en Ubuntu 20.04 LTS Focal Fossa podrás desplegar aplicaciones de servidor o servlets realizados en Java desde tu servidor o VPS.

Si te han surgido dudas o preguntas, tienes sugerencias de mejora de este artículo, crees que necesita ya una actualización o quieres notificar algún error, deja un comentario.

¡Apoya comoinstalar.me!

¿Ya puedes desplegar servlets gracias a esta guía de instalación de Tomcat 9 en Ubuntu 20.04 LTS Focal Fossa? Si es así y te apetece agradecérmelo puedes hacerlo dejando una propina de 1 $ en PayPal para una CocaCola:

O, si te sientes especialmente agradecido, puedes invitarme a un cappuccino:

¡Gracias!

Valora esta entrada

5/5 - (5 votos)

9 comentarios en «Cómo instalar Tomcat 9 en Ubuntu 20.04 LTS»

  1. ¡Hola!
    Muy buen post.
    Las otras guías que he encontrado son copy/paste de guías que no funcionan hoy en día.
    ¿Dónde se setean las variables de memoria de Tomcat 9 en Ubuntu 20.04 (xms y xmx)?

    ¡Gracias!

    Responder
    • ¡Hola, Nacho! Un buen sitio tal vez podría ser en el script del servicio para Systemd, /lib/systemd/system/tomcat9.service, en la sección [Service], añadiendo alguna directiva Environment con el nombre de variable CATALINA_OPTS. También se podría modificar el script de consola que levanta el servicio, /usr/libexec/tomcat9/tomcat-start.sh.

      Responder

Deja un comentario