Apache Tomcat es un Servlet de Java gratuito y de código abierto que proporciona un entorno de servidor web HTTP para ejecutar aplicaciones Java. Es simple, fácil de usar y uno de los servidores web más utilizados en el mundo. Tomcat actúa como un servidor de desarrollo que se puede utilizar para probar y crear aplicaciones que utilizan JSF 2, servlets/JSP u otras tecnologías web dinámicas basadas en Java.
En este tutorial, explicaremos cómo instalar la última versión de Apache Tomcat utilizando un servidor Cloud Ubuntu 24.04.
Requisitos
- Un servidor VPS Cloud corriendo con Ubuntu 24.04 o superior.
- Una IP estática configurada en tu servidor.
- Una contraseña root configurada en tu servidor VPS en España.
Instala Java
Apache Tomcat requiere que instales la versión 8 de Java o una superior. Si no la tienes instalada, puedes hacerlo con el siguiente comando:
# apt install default-jdk -y
Una vez instalada, comprueba la versión de Java con el siguiente comando:
# java --version
Deberías ver un resultado similar:
openjdk 21.0.3 2024-04-16
OpenJDK Runtime Environment (build 21.0.3+9-Ubuntu-1ubuntu1)
OpenJDK 64-Bit Server VM (build 21.0.3+9-Ubuntu-1ubuntu1, mixed mode, sharing)
Descarga Tomcat
Antes de empezar, instala el descompresor unzip:
# apt update && apt install unzip
Tendrás que crear un usuario y darle los permisos correspondientes:
# useradd -m -d /opt/tomcat -U -s /bin/false tomcat
A continuación, descárgate la versión de Apache Tomcat deseada, puedes comprobarlo en página oficial de Tomcat. Ejemplo con la última disponible:
# wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.23/bin/apache-tomcat-10.1.23.zip
Una vez descargado, descomprime el archivo con el siguiente comando:
# unzip apache-tomcat-10.1.23.zip && mv apache-tomcat-10.1.23/* /opt/tomcat
Después, cambia el propietario del directorio /opt/tomcat a Tomcat con el siguiente comando:
# chown -R tomcat:tomcat /opt/tomcat/
# chmod -R 755 /opt/tomcat/
Accede al fichero de configuración de tomcat:
# nano /opt/tomcat/conf/tomcat-users.xml
Añade las siguientes líneas sobre la línea </tomcat-users>:
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="your-password" roles="manager-gui,admin-gui"/>
Con esto ya tendrás un usuario administrador para acceder a Tomcat.
Crea el Servicio de Archivos Systemd para Tomcat
A continuación, necesitarás crear el servicio de archivos systemd para el gestionar el servicio de Tomcat. Puedes crearlo con el siguiente comando:
# nano /etc/systemd/system/tomcat.service
Añade las siguientes líneas:
[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"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
Guarda y cierra el archivo. Después, recarga el daemon de systemd y arranca el servicio Tomcat con los siguientes comandos:
# systemctl daemon-reload
# systemctl start tomcat
También puedes verificar el servicio Tomcat con el siguiente comando:
# systemctl status tomcat
Deberías ver el siguiente resultado:
● tomcat.service - Tomcat servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; preset: enabled)
Active: active (running) since Thu 2024-05-09 10:27:00 CEST; 6s ago
Process: 3926 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 3933 (java)
Tasks: 30 (limit: 4614)
Memory: 122.0M (peak: 122.4M)
CPU: 3.583s
CGroup: /system.slice/tomcat.service
└─3933 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.propert>
May 09 10:27:00 amb-ubu24 systemd[1]: Starting tomcat.service - Tomcat servlet container...
May 09 10:27:00 amb-ubu24 startup.sh[3926]: Tomcat started.
May 09 10:27:00 amb-ubu24 systemd[1]: Started tomcat.service - Tomcat servlet container.
Accede a la Interfaz Web de Tomcat
Nota: deberemos abrir los puertos 8080 en el firewall del panel de cliente.
Ahora Tomcat está instalado y corriendo en el puerto 8080. Abre tu navegador web y ve a la URL http://your-server-ip:8080. Serás redirigido al panel de Tomcat como se muestra más abajo:
Si intentas navegar por cualquiera de las diferentes secciones te denegará el acceso con un error 403, eso es porque por defecto Apache Tomcat sólo puede administrarse desde el equipo local y no remotamente. Vamos a solucionar esto configurando nginx como proxy inverso.
Configura NGINX como Reverse Proxy
También puedes configurar NGINX como Reverse Proxy para el servidor Tomcat. Así, Nginx aceptará las peticiones sobre el puerto 80 frente al servidor Tomcat.
Primero, instala el servidor web de NGINX con el siguiente comando:
# apt install nginx -y
Una vez instalado, crea un nuevo archivo de configuración virtual host para Tomcat.
# nano /etc/nginx/sites-available/tomcat.conf
Añade las siguientes líneas:
upstream tomcat {
server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
}
server {
listen 80;
server_name tu-dominio.com;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tomcat/;
}
}
Guarda y cierra el archivo. Después, habilita el archivo virtual host del servidor web de NGINX para aplicar la configuración:
# ln -s /etc/nginx/sites-available/tomcat.conf /etc/nginx/sites-enabled/
# systemctl restart nginx
Abre tu navegador web y ve a la URL http://tu-dominio.com. Ahora, haz clic en Manager App o Host Manager. Te pedirá que proporciones un nombre de usuario y una contraseña como se muestra en la siguiente pantalla:
Proporciona tu nombre de usuario admin y haz clic en el botón de Sign In. Serás redirigido al panel de Manager App o de Host Manager:
Adquirir certificado SSL de Let's Encrypt
Ahora si necesitas un certificado SSL, tan solo tendrás que Instalar Let's Encrypt, puedes hacerlo con el comando:
# apt install certbot python3-certbot-nginx
Y configurar el certificado con el comando:
# certbot --nginx -d example.com -d www.ejemplo.com
Puedes ver más información en nuestro artículo: Adquirir certificados Let's Encrypt con Certbot
¡Enhorabuena! Ya puedes acceder al servidor Tomcat a través de la URL http://ejemplo.com sin especificar el puerto Tomcat 8080.
Recuerda, si tienes consultas sobre esta u otra cuestión relacionada con tus servidores en Clouding, no dudes en escribir a soporte@clouding.io ¡Estamos a tu lado para lo que necesites, consúltanos!