Importante
Este artículo está obsoleto y puede contener información desactualizada. Por favor, consulta la documentación más reciente para obtener la información actualizada.
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 22.04 LTS.
Requisitos
- Un servidor VPS Cloud corriendo con Ubuntu 22.04 LTS 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 11.0.15 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1, mixed mode, sharing)
Descarga Tomcat
Antes de empezar, utiliza el comando:
# apt update
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.0.23/bin/apache-tomcat-10.0.23.zip
Una vez descargado, descomprime el archivo con el siguiente comando:
# unzip apache-tomcat-10.0.23.zip && mv apache-tomcat-10.0.23/* /opt/tomcat
Después, cambia la propiedad de /home/tomcat directory 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.
Configura la Interfaz de Gestión Web de Tomcat
A continuación, tendrás permitir que Tomcat Manager y Host Manager sean accesibles des de su IP remota.
Para la aplicación de administración de host, edite el siguiente archivo:
# nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
Añade la dirección IP a la máquina virtual remota donde quieras tener acceso para la administración de host.
<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|your-remote-system-ip" />
Guarda y cierra el archivo cuando haya sido finalizado.
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; vendor preset: enabled)
Active: active (running) since Sun 2019-10-06 06:57:39 UTC; 19s ago
Process: 17893 ExecStart=/home/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 17903 (java)
Tasks: 43 (limit: 1114)
CGroup: /system.slice/tomcat.service
└─17903 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/home/tomcat/conf/logging.properties -Djava.util.logging.
Oct 06 06:57:39 ubuntu1804 systemd[1]: Starting Tomcat servlet container...
Oct 06 06:57:39 ubuntu1804 startup.sh[17893]: Tomcat started.
Oct 06 06:57:39 ubuntu1804 systemd[1]: Started 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:
Ahora, haz clic en App Manager 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:
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 ejemplo.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
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!