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:
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
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:
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.