Cómo instalar Tomcat 9 en Ubuntu 20.04 LTS

1 mar 2021 6 min di lettura
Cómo instalar Tomcat 9 en Ubuntu 20.04 LTS
Indice dei contenuti

Introducción

Apache Tomcat es un servidor web de código abierto y un contenedor de servlets Java. Es una de las opciones más populares para crear sitios web y aplicaciones basados en Java. Tomcat es liviano, fácil de usar y tiene un ecosistema sólido de complementos.

Este tutorial describe cómo instalar y configurar Tomcat 9 en Ubuntu 20.04 LTS Focal Fossa.

Si desea instalar Tomcat en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conexión al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Instalar Java

Tomcat 9 requiere que Java SE 8 o posterior esté instalado en el sistema. Instalamos OpenJDK 11, la implementación de código abierto de la plataforma Java.

Ejecute los siguientes comandos como root o usuario con privilegios sudo para actualizar el índice del paquete e instalar el paquete OpenJDK 11 JDK:

sudo apt update
sudo apt install openjdk-11-jdk

Una vez completada la instalación, verifíquela comprobando la versión de Java:

java -version

La salida debería verse así:

openjdk version "11.0.7" 2020-04-14
 OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
 OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)

Crea un usuario del sistema

Ejecutar Tomcat con el usuario root es un riesgo de seguridad. Cree un nuevo sistema y grupo de usuarios con el directorio de inicio /opt/tomcat que ejecutará el servicio Tomcat. Para hacer esto, ingrese el siguiente comando:

sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

Descarga de Tomcat

La distribución binaria de Tomcat está disponible para descargar desde la página de descargas de Tomcat.

9.0.35, es la última versión de Tomcat 9.0.35. Antes de continuar con el siguiente paso, consulte la página de descarga de Tomcat 9 para ver si hay una versión más nueva disponible.

Utilice wget para descargar el archivo zip de Tomcat en el directorio /tmp

VERSION=9.0.35
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz -P /tmp

Una vez que se complete la descarga, extraiga el archivo tar en el /opt/tomcat:

sudo tar -xf /tmp/apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/

Tomcat se actualiza periódicamente con parches de seguridad y nuevas funciones. Para tener más control sobre las versiones y actualizaciones, crearemos un enlace simbólico llamado latest, que apunta al directorio de instalación de Tomcat:

sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest

Más tarde, mientras actualiza Tomcat, descomprima la última versión y cambie el enlace simbólico para señalarlo.

El usuario del sistema creado previamente debe tener acceso al directorio de instalación de Tomcat. Cambie la propiedad del directorio a usuario y grupo de tomcat:

sudo chown -R tomcat: /opt/tomcat

Los scripts de shell dentro del bin deben ser ejecutables:

sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

Estos scripts se utilizan para iniciar, detener y administrar la instancia de Tomcat.

Cree un archivo de unidad SystemD

En lugar de utilizar scripts de shell para iniciar y detener el servidor Tomcat, lo configuraremos como un servicio.

Abra su editor de texto y cree un tomcat.service en el /etc/systemd/system/:

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

Pegue la siguiente configuración:

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

 [Service]
 Type=forking

 User=tomcat
 Group=tomcat

 Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
 Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"

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

 ExecStart=/opt/tomcat/latest/bin/startup.sh
 ExecStop=/opt/tomcat/latest/bin/shutdown.sh

 [Install]
 WantedBy=multi-user.target
/etc/systemd/system/tomcat.service
JAVA_HOME

Guarde y cierre el archivo y notifique a systemd que existe un nuevo archivo de unidad:

sudo systemctl daemon-reload

Habilite e inicie el servicio Tomcat:

sudo systemctl enable --now tomcat

Verifique el estado del servicio:

sudo systemctl status tomcat

La salida debe mostrar que el servidor Tomcat está habilitado y en ejecución:

● tomcat.service - Tomcat 9 servlet container
 Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
 Active: active (running) since Tue 2020-05-26 12:08:33 CEST; 2s ago
 Process: 13886 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 13906 (java)
 Tasks: 16 (limit: 2286)
 Memory: 67.1M
 CGroup: /system.slice/tomcat.service
 └─13906 /usr/lib/jvm/java-11-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/latest/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager>

Puede iniciar, detener y reiniciar Tomcat como cualquier otro servicio systemd:

sudo systemctl start tomcat
sudo systemctl stop tomcat
sudo systemctl restart tomcat

Configurar el firewall

Si su servidor está detrás de un firewall y desea acceder a Tomcat desde fuera de su red local, debe abrir el puerto 8080.

Utilice el siguiente comando para abrir el puerto requerido:

sudo ufw allow 8080/tcp

Normalmente, al ejecutar Tomcat en un entorno de producción, debe utilizar un equilibrador de carga o un proxy inverso. Le recomendamos que permita el acceso al puerto 8080 solo desde la red interna.

Configurar la interfaz de gestión web de Tomcat

En este punto, debería poder acceder a Tomcat con un navegador web en el puerto 8080. No se puede acceder a la interfaz de administración web porque aún no hemos creado un usuario.

Los usuarios y roles de Tomcat se definen en el archivo tomcat-users.xml Este archivo es una plantilla con comentarios y ejemplos que muestran cómo crear un usuario o un rol.

En este ejemplo, crearemos un usuario con roles "admin-gui" y "manager-gui". La función "admin-gui" permite al usuario acceder a la URL /host-manager/html y crear, eliminar y administrar hosts virtuales. El rol "manager-gui" permite al usuario desplegar y anular el despliegue de la aplicación web sin tener que reiniciar todo el contenedor a través de la interfaz /host-manager/html

Abra el tomcat-users.xml y cree un nuevo usuario, como se muestra a continuación:

sudo nano /opt/tomcat/latest/conf/tomcat-users.xml

Agregue las siguientes líneas de código antes de cerrar la etiqueta </tomcat-users>

...
 <role rolename="admin-gui"/>
 <role rolename="manager-gui"/>
 <user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>...

Entonces el resultado será el siguiente:

<tomcat-users>
 <!--
 Comments
 -->
 <role rolename="admin-gui"/>
 <role rolename="manager-gui"/>
 <user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
 </tomcat-users>
Asegúrese de cambiar su nombre de usuario y contraseña por algo más seguro.

De forma predeterminada, la interfaz de administración web de Tomcat está configurada para permitir el acceso a las aplicaciones Manager y Host Manager solo desde el host local. Para acceder a la interfaz web desde una IP remota, estas restricciones deben eliminarse. Esto puede tener varias implicaciones de seguridad y no se recomienda para sistemas de producción.

Para habilitar el acceso a la interfaz web desde cualquier lugar, abra los dos archivos siguientes y comente o elimine las líneas resaltadas en amarillo.

Para la aplicación Manager:

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

Para la aplicación Host Manager:

sudo nano /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
 <!--
 <Valve className="org.apache.catalina.valves.RemoteAddrValve"
 allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
 -->
 </Context>
context.xml

Si desea acceder a la interfaz web solo desde una IP específica, en lugar de comentar los bloques, agregue su IP pública a la lista.

Digamos que su IP pública es 41.41.41.41 y desea permitir el acceso solo desde esa IP:

<Context antiResourceLocking="false" privileged="true" >
 <Valve className="org.apache.catalina.valves.RemoteAddrValve"
 allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|41.41.41.41" />
 </Context>
context.xml

La lista de direcciones IP permitidas es una lista separada por una barra vertical |. Puede agregar direcciones IP individuales o usar expresiones regulares.

Cuando termine, reinicie el servicio Tomcat para que los cambios surtan efecto:

sudo systemctl restart tomcat

Intenta instalar Tomcat

Abra su navegador y escriba: http://<your_domain_or_IP_address>:8080.

Suponiendo que la instalación se haya realizado correctamente, debería aparecer el panel de Tomcat.

La aplicación Tomcat Web Manager está disponible en http://<your_domain_or_IP_address>:8080/manager/html.

El host virtual de Tomcat Manager está disponible en http://<your_domain_or_IP_address>:8080/host-manager/html.

Conclusión

Le mostramos cómo instalar Tomcat 9.0 en Ubuntu 20.04 LTS Focal Fossa y cómo acceder a la interfaz de administración de Tomcat.

Para obtener más información sobre Apache Tomcat, visite la página de documentación oficial.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.