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 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 18.04 LTS.
Requisitos
- Un servidor VPS Cloud corriendo con Ubuntu 18.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-get 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.4 2019-07-16
OpenJDK Runtime Environment (build 11.0.4+11-post-Ubuntu-1ubuntu218.04.3)
OpenJDK 64-Bit Server VM (build 11.0.4+11-post-Ubuntu-1ubuntu218.04.3, mixed mode, sharing)
Descarga Tomcat
Antes de empezar, necesitarás crear un grupo y un usuario que correrán el servicio Tomcat.
Puedes hacerlo con el siguiente comando:
# groupadd tomcat
# useradd -s /bin/false -g tomcat -d /home/tomcat 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.14/bin/apache-tomcat-10.0.14.zip
Una vez descargado, descomprime el archivo con el siguiente comando:
# unzip apache-tomcat-10.0.14.zip
Después mueve el directorio extraído a /home/ directory:
# mv apache-tomcat-10.0.14 /home/tomcat
Después, cambia la propiedad de /home/tomcat directory a tomcat con el siguiente comando:
# chown -R tomcat:tomcat /home/tomcat
# chmod -R 755 /home/tomcat/
Configura la Interfaz de Gestión Web de Tomcat
Para acceder a la interfaz de gestión web de Tomcat, necesitarás añadir un usuario y una contraseña para acceder a la manager-gui y a la admin-gui. Puedes hacer esto editando el fichero /home/tomcat/conf/tomcat-users.xml:
# nano /home/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"/>
Guarda y cierra el archivo cuando haya terminado.
A continuación, deberá 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 /home/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" />
Para la administración de la aplicación, edite el siguiente archivo:
# nano /home/tomcat/webapps/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=/home/tomcat"
Environment="CATALINA_HOME=/home/tomcat"
Environment="CATALINA_PID=/home/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/home/tomcat/bin/startup.sh
ExecStop=/home/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
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-get 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
¡Enhorabuena! Ya puedes acceder al servidor Tomcat a través de la URL http://ejemplo.com sin especificar el puerto Tomcat 8080.