Cómo instalar Tomcat 9 en CentOS 8 Linux

27 feb 2021 6 min di lettura
Cómo instalar Tomcat 9 en CentOS 8 Linux
Indice dei contenuti

Introducción

Apache Tomcat es una implementación de código abierto de las tecnologías Java Servlet, JavaServer Pages, Java Expression Language y Java WebSocket. Hoy en día es una de las aplicaciones y servidores web más utilizados del mundo. Tomcat es fácil de usar y tiene un sólido ecosistema de complementos.

Este tutorial explica cómo instalar Tomcat 9.0 en CentOS 8.

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 Java SE 8 o posterior. Instale OpenJDK 11, la implementación de código abierto de la plataforma Java.

Antes de continuar, instale las siguientes herramientas útiles para continuar correctamente con el tutorial:

sudo dnf install wget nano tar

Ejecute el siguiente comando como root o usuario con privilegios sudo para instalar Java:

sudo dnf install java-11-openjdk-devel

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.5" 2019-10-15 LTS
 OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
 OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)

Crea un usuario del sistema

Ejecutar Tomcat con el usuario root es un riesgo de seguridad. Crearemos un nuevo usuario y grupo del sistema 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 Tomcat

La distribución binaria de Tomcat está disponible para descargar desde la página de descargas de Tomcat.

En el momento de escribir este artículo, es la última versión de Tomcat 9.0.30. 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.

Descargue el archivo zip de Tomcat con wget en el directorio /tmp

VERSION=9.0.30
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. 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

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

Haga que los scripts de shell sean ejecutables bin directorio bin:

sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

Estos scripts se utilizan para iniciar y detener Tomcat.

Cree un archivo de unidad Systemd

En lugar de iniciar y detener el servidor Tomcat manualmente, 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

Pega 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/jre"
 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

Guarde y cierre el archivo presionando CTRL + X, seguido de Y para guardar los cambios y luego ENTER si está usando nano.

Reinicie el servicio systemd escribiendo:

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: disabled)
 Active: active (running) since Sat 2020-01-18 17:05:05 CET; 3s ago
 Process: 3192 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCC>
 Main PID: 3199 (java)
 Tasks: 15 (limit: 12251)
 Memory: 60.2M
 CGroup: /system.slice/tomcat.service
 └─3199 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/opt/tomcat>

Configurar el firewall

Si el servidor está detrás de un firewall y desea acceder a la interfaz de Tomcat desde fuera de la red local, debe abrir el puerto 8080.

Utilice los siguientes comandos para abrir la puerta requerida:

sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload

Normalmente, al ejecutar Tomcat en un entorno de producción, debe utilizar un equilibrador de carga o un proxy inverso. Se recomienda que el 8080 se otorgue solo a 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

Si abre el archivo, notará que está lleno de comentarios y ejemplos que describen cómo configurar el archivo.

sudo nano /opt/tomcat/latest/conf/tomcat-users.xml

Los usuarios de Tomcat se definen como el usuario en el archivo tomcat-users.xml Para crear un nuevo usuario capaz de acceder a la interfaz web de Tomcat (manager-gui y admin-gui), edite el archivo como se muestra a continuación. Asegúrese de cambiar su nombre de usuario y contraseña por algo más seguro.

Descomente y edite las siguientes líneas:

 <role rolename="admin-gui"/>
 <role rolename="manager-gui"/>
 <user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>

Entonces:

<tomcat-users>
 <!--
 Comments
 -->
 <role rolename="admin-gui"/>
 <role rolename="manager-gui"/>
 <user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
 </tomcat-users>

Guarde y cierre el archivo.

De forma predeterminada, la interfaz de administración web de Tomcat está configurada para permitir el acceso solo desde el host local.

Si necesita acceder a la interfaz web desde cualquier lugar, abra el siguiente archivo:

sudo nano /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" />
 -->
 </Context>

Comente o elimine la siguiente línea:

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
 allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

Entonces:

<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" />
 -->
 </Context>

Guarde y cierre el archivo.

Abra el siguiente archivo:

sudo nano /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml

Comente o elimine la siguiente línea:

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
 allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

Entonces:

<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" />
 -->
 </Context>

Guarde y cierre el archivo.

No se recomienda permitir el acceso desde cualquier lugar, ya que representa un riesgo para la seguridad.

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 42.42.42.42 y desea permitir el acceso solo desde esa IP.

Abra los archivos anteriores nuevamente:

sudo nano /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|42.42.42.42" />
 </Context>

Guarde y cierre el archivo, abra el siguiente:

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|42.42.42.42" />
 </Context>

Guarde y cierre el archivo.

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

Prueba la instalación

Abra su navegador y escriba su dirección IP o nombre de dominio especificando 8080 como el puerto, luego: http://TUO_IP_O_DOMINIO:8080

Cuando se complete la instalación, debería aparecer una pantalla principal de Tomcat.

El panel de Tomcat Web Application Manager le permite implementar, http://TUO_IP_O_DOMINIO:8080/manager/html.

El panel del administrador de host virtual de Tomcat le permite crear, eliminar y administrar hosts virtuales de Tomcat. Está disponible en: http://TUO_IP_O_DOMINIO:8080/host-manager/html.

Conclusión

Le mostramos cómo instalar Tomcat 9.0 en CentOS 8 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.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.