Tabla de contenido
Este post lo voy a dejar colgado por que estoy inmerso en la prueba de unas «cosillas» que he programado. Para realizar estas pruebas he tenido que instalar Apache Tomcat 9 en mi equipo, y ya puesto, pues dejo el artículo de rigor de cómo he realizado la instalación en Ubuntu 18.04.
Como digo, en el siguiente artículo vamos a ver cómo podemos instalar Tomcat 9 en Ubuntu 18.04. Apache Tomcat es una implementación de código abierto de las tecnologías Java Servlet, JavaServer Pages, Java Expression Language y Java WebSocket. Es una de las aplicaciones y servidores web más utilizados. Tomcat es fácil de usar y tiene un ecosistema robusto con multitud de complementos.
Instalación de Apache Tomcat 9
Antes de meternos en profundidad con la instalación de Tomcat 9, tendremos que instalar OpenJDK.
Instalar OpenJDK
OpenJDK es la implementación de código abierto de la Plataforma Java. La instalación del paquete OpenJDK en Ubuntu 18.04 es bastante sencilla:
sudo apt install default-jdk
Crear usuario de Tomcat
Ahora vamos a crear un nuevo usuario y grupo de sistema con el directorio de inicio /opt/tomcat que ejecutará el servicio de Tomcat:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Descargar Tomcat
Utilizaremos wget y unzip para descargar y extraer el archivo de Tomcat. Si no tienes estos programas instalados ejecuta el siguiente comando:
sudo apt install unzip wget
Vamos a descargar la última versión de Tomcat 9.0.x de la página de descargas de Tomcat. En el momento de escribir estas líneas, la última versión es 9.0.10. Antes de continuar con el siguiente paso, debes consultar la página de descarga para verificar cual es la última versión.
Cuando tengamos claro cual es el archivo a descargar, nos vamos a mover al directorio /tmp y descargar el archivo zip con wget.
cd /tmp wget http://apache.rediris.es/tomcat/tomcat-9/v9.0.10/bin/apache-tomcat-9.0.10.zip
Una vez que se complete la descarga, extraeremos el archivo zip y lo vamos a mover al directorio /opt/tomcat:
unzip apache-tomcat-*.zip sudo mv apache-tomcat-*/ /opt/tomcat/
Para tener más control sobre las versiones y actualizaciones, crearemos un enlace simbólico que apuntará al directorio de instalación de Tomcat:
sudo ln -s /opt/tomcat/apache-tomcat-* /opt/tomcat/latest
Más adelante, si deseas actualizar tu instalación de Tomcat, puedes desempaquetar la versión más reciente y cambiar el enlace simbólico para que apunte a la última versión.
El usuario de tomcat que configuramos anteriormente necesita tener acceso al directorio de tomcat, por lo que cambiaremos la propiedad del directorio al usuario y grupo de tomcat:
sudo chown -R tomcat: /opt/tomcat
También haremos que los scripts dentro del directorio bin sean ejecutables:
sudo chmod +x /opt/tomcat/latest/bin/*.sh
Crear un archivo de unidad systemd
Para ejecutar Tomcat como un servicio, vamos a crear un nuevo archivo de unidad llamado tomcat.service dentro del directorio /etc/systemd/system/ con el siguiente contenido:
[Unit] Description=Tomcat 9 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/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
Verificar el servicio Apache Tomcat 9
Notificaremos a systemd que creamos un nuevo archivo de unidad e iniciaremos el servicio Tomcat ejecutando:
sudo systemctl daemon-reload sudo systemctl start tomcat
Se puede verificar el estado del servicio con el siguiente comando:
sudo systemctl status tomcat
Si no hay errores, puedes habilitar el servicio Tomcat para que se inicie automáticamente en el momento del arranque:
sudo systemctl enable tomcat
Ajustar el Firewall
Si tu equipo o servidor está protegido por un firewall y quieres acceder a la interfaz de tomcat desde el exterior de tu red local, deberás abrir el puerto 8080.
Para permitir el tráfico en el puerto 8080 escribe el siguiente comando:
sudo ufw allow 8080/tcp
Cuando se ejecuta una aplicación Tomcat en un entorno de producción, lo más probable es que tengas un equilibrador de carga o un proxy inverso. Por eso es una buena práctica restringir el acceso al puerto 8080 solo a tu red interna.
Configurar Tomcat Web Manager Interface
Ahora que tenemos Tomcat instalado en nuestro Ubuntu, el siguiente paso es crear un usuario que tenga acceso a la interfaz de administración web. Los usuarios de apache Tomcat 9 y sus roles se definen en el archivo tomcat-users.xml.
Si abres el archivo, verás que está lleno de comentarios y ejemplos que describen cómo configurar el archivo.
sudo vim /opt/tomcat/latest/conf/tomcat-users.xml
Para agregar un nuevo usuario que pueda acceder a la interfaz web de tomcat (manager-gui y admin-gui) necesitamos definir el usuario en el archivo tomcat-users.xml como se muestra a continuación. Asegúrate de cambiar el nombre de usuario y la contraseña por algo más seguro:
<tomcat-users> <!-- comentarios --> <role rolename="admin-gui"/> <role rolename="manager-gui"/> <user username="admin" password="admin123" roles="admin-gui,manager-gui"/> </tomcat-users>
De forma predeterminada, la interfaz de administración web de Tomcat está configurada para permitir el acceso solo desde el host local. Si necesitas acceder a la interfaz web desde una IP remota abre los siguientes archivos y comenta o elimina las líneas marcadas en las capturas:
sudo vim /opt/tomcat/latest/webapps/manager/META-INF/context.xml
sudo vim /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
Si necesitas acceder a la interfaz web solo desde una IP específica, en lugar de comentar los bloques, agrega tu IP pública a la lista. Digamos que tu IP pública es 22.22.22.22 y quieres permitir el acceso solo desde esa IP:
sudo vim /opt/tomcat/latest/webapps/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|22.22.22.22" /> </Context>
El otro archivo a editar sería:
sudo vim /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|22.22.22.22" /> </Context>
La lista de direcciones IP permitidas se separan mediante una barra vertical |. Puedes agregar direcciones IP únicas o usar expresiones regulares.
Probar la instalación
Abre tu navegador y escribe: http://tu-dominio-o-ip:8080. Suponiendo que la instalación sea exitosa, aparecerá una pantalla como la siguiente:
El panel del administrador de aplicaciones web de Tomcat está disponible en http://tu-dominio-o-ip: 8080/manager/html. Desde aquí puede implementar, anular la implementación, iniciar, detener y volver a cargar tus aplicaciones.
Documentación oficial
El gestor de máquina virtual de Tomcat está disponible en http://tu-dominio-o-ip: 8080/host-manager/html. Desde aquí puede crear, eliminar y administrar hosts virtuales de Tomcat.
Con esto damos por finalizada con éxito la instalación de Tomcat 9 en tu sistema Ubuntu 18.04.
Puedes visitar la Documentación oficial de Apache Tomcat 9 y obtener más información sobre las características de Apache Tomcat.