¿Qué es Tomcat?
En este artículo, demostraremos cómo instalar Apache Tomcat en CentOS 8. Antes de comenzar, definamos exactamente qué es Apache Tomcat. Apache define a Tomcat como:“Un contenedor de servlets de código abierto, JavaServer Pages, Java Expression Language y tecnología WebSocket que también actúa como un servidor web. Ofrece un entorno de servidor HTTP basado en “Java puro” en el que Java puede ser ejecutado .” Tomcat funciona con el lenguaje de programación Java y está asociado con aplicaciones web escritas en Java.
Requisitos
Nuestra primera tarea es asegurarnos de que nuestro sistema esté actualizado. Ya que vamos a instalar Tomcat en CentOS 8, ejecutaremos los siguientes comandos.
cat /etc/redhat-release
yum -y install epel-release
yum -y update -y
A continuación, debemos verificar si Java ya está instalado.
java -version
Pero si no tenemos instalado Java, recibiremos el resultado en la captura de pantalla a continuación.
Instalar Java
Avanzando, instalemos Java. Apache Tomcat no funcionará correctamente si Java no está presente en el sistema. Además, debemos asegurarnos de instalar Java OpenJDK 11. Debido a que es de código abierto y una versión a largo plazo, lo haremos no se encuentre con ningún problema de licencia. Para realizar esta tarea, usaremos el siguiente comando.
dnf install java-11-openjdk-devel -y
A continuación, verificaremos la versión de Java instalada ejecutando este comando.
java -version
Instalando Tomcat
Entonces, primero necesitamos crear un usuario para Tomcat.
useradd -r tomcat
A continuación, vamos a crear una carpeta y luego usaremos el "cd ” comando para cambiar de directorio a esa carpeta donde descargaremos Tomcat.
mkdir /usr/local/tomcat10
cd /usr/local/tomcat10
Ahora, descarguemos el archivo Tomcat usando curl (wget también es una opción si está instalado en su versión de CentOS 8).
curl -o tomcat10.tar.gz https://downloads.apache.org/tomcat/tomcat-10/v10.0.6/bin/apache-tomcat-10.0.6.tar.gz
A continuación, podemos desempaquetar el "tomcat10 tar.gz ” archivo en nuestra carpeta de trabajo.
tar -xvf tomcat10.tar.gz
Entonces, ahora necesitamos modificar la propiedad del directorio /usr/local/tomcat10/.
chown -R tomcat:tomcat /usr/local/tomcat10
Luego copie los archivos en apache-tomcat10.0.6 en el directorio tomcat10 usando los siguientes comandos:
cd apache-tomcat-10.0.6/
cp -r * /usr/local/tomcat10
Además de De forma predeterminada, sus archivos se ubicarán en esta carpeta:/usr/local/tomcat 10 y los archivos de configuración se almacenarán en:/usr/local/tomcat10/conf
ll
Establecer variable de entorno
Ahora, podemos configurar la variable de entorno CATALINA_HOME usando los siguientes comandos:
echo "export CATALINA_HOME="/usr/local/tomcat10"" >> ~/.bashrc
source ~/.bashrc
Esta variable se configura para garantizar que se permita el acceso al software a todos los usuarios de su sistema.
Crear y configurar el servicio Systemd
Entonces, primero, revisemos nuestra información de Java, ya que la necesitaremos para completar parte de nuestro archivo de unidad.
alternatives --list | grep java
A continuación, para asegurarnos de que tenemos Tomcat configurado como un servicio, crearemos un archivo de unidad systemd simple.
touch /etc/systemd/system/tomcat.service
vim /etc/systemd/system/tomcat.service
Ahora, podemos agregar la siguiente información a nuestro nuevo archivo de unidad.
[Unit]
Description=Apache Tomcat Server
After=syslog.target network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=CATALINA_PID=/usr/local/tomcat10/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/local/tomcat10
Environment=CATALINA_BASE=/usr/local/tomcat10
ExecStart=/usr/local/tomcat10/bin/catalina.sh start
ExecStop=/usr/local/tomcat10/bin/catalina.sh stop
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Este archivo de unidad puede contener varias directivas además de las enumeradas anteriormente. Después de esto, debemos guardar el archivo (usando :wq) y volver a cargar el servicio para aplicar los cambios.
systemctl daemon-reload
Así que ahora podemos probar el archivo de configuración de systemd Java.
Iniciar, habilitar y comprobar el estado de Tomcat
A continuación, iniciemos el servicio Tomcat y luego habilítelo.
[root@unixcop tomcat10]# systemctl start tomcat.service
[root@unixcop tomcat10]# systemctl enable tomcat.service
Ahora, podemos verificar su estado usando el siguiente comando.
systemctl status tomcat.service
Finalmente, presione la tecla 'q' para salir de la verificación de estado y regresar al aviso de bash.
Verificación de versión
Para recuperar la información del servidor Tomcat, podemos usar el siguiente comando:
/usr/local/tomcat10/bin/version.sh
Pruebas
A continuación, abramos un navegador para probar la conexión.
Carga http://localhost:8080 o http://IPdelservidor:8080 en su navegador, y debería ver una imagen como la siguiente.
¡Errores!
Si por casualidad, obtiene un "err_ssl_protocol_error ” cuando visite http://ip.ad.dr.ess:8080/, verifique el error usando curl y una vez verificado, siga los siguientes pasos.
#curl-Iv https://DIRECCIÓNIP:8080
Por ejemplo, la dirección IP de mi máquina agrega:
curl -Iv https://192.168.232.128:8080
1. Verifique que los puertos Java/Tomcat estén abiertos en el firewall
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --zone=public --permanent --add-port=8443/tcp
2. Luego ejecute un comando netstat para verificar si el servidor está escuchando las direcciones IPv4 (y/o la dirección IPv6 si es necesario).
Entonces, después de verificar netstat, vimos que Tomcat solo estaba vinculado a los puertos del protocolo IPv6.
[root@unixcop tomcat10]# netstat -nlp | grep java
Para abordar esto, cree un archivo llamado setenv.sh dentro de su directorio bin/ CATALINA_BASE o CATALINA_HOME
(usamos el /usr/local/tomcat10/bin carpeta).
Luego crea un nuevo archivo llamado setenv.sh.
cd bin/
touch setenv.sh
vim setenv.sh
Haga clic en insertar y agregue la siguiente línea al archivo.
JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true "
Esta entrada anula la configuración predeterminada utilizada por Tomcat. Una vez completada la tarea, guarde y salga del archivo usando “:wq ” y recargar los servicios para guardar nuestros cambios.
systemctl daemon-reload
Entonces, ahora, revisemos los puertos nuevamente con el mismo comando:
[root@unixcop tomcat10]# netstat -nlp | grep java
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 59815/java
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 59815/java
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 59815/java
Verifique que los puertos de firewall correctos estén abiertos.
[root@unixcop ~]# firewall-cmd --zone=public --list-ports | grep 8080
8080/tcp 8443/tcp
[root@unixcop ~]#
Luego, si todo eso falla, puede detener y deshabilitar el servicio de firewall temporalmente para probar su página Tomcat:
systemctl disable firewalld
systemctl stop firewalld
Ajustes de configuración
Aquí hay un par de ajustes de configuración útiles para Tomcat.
Agregar usuarios
Por lo tanto, es posible que necesitemos agregar nuevos usuarios o un usuario administrador. Podemos lograr esto yendo a la carpeta conf de Tomcat y modificando esta configuración.
[root@unixcop conf]# cd /usr/local/tomcat10/conf
<!-- user admin can access manager and admin section both -->
<role rolename="admin-gui" />
<user username="admin" password="_SECRET_PASSWORD_" roles="manager-gui,admin-gui" />
Nota:Podemos abrir el archivo a través de vi o vim o utilizando el administrador de archivos y abriendo el archivo con un editor de texto .
Finalmente, use :wq para guardar el archivo.
Cambiar Puertos
Entonces, a veces, es posible que desee ejecutar Tomcat en un puerto alternativo. Para lograr esto, podemos modificar la configuración del puerto del conector en el archivo server.xml.
Estos son los pasos a seguir.
[root@unixcop conf]# cd /usr/local/tomcat10/conf/
[root@unixcop conf]# vim /usr/local/tomcat10/conf/server.xml
Además de En el archivo server.xml o desde dentro de un editor de texto, podemos modificar la línea “Puerto del conector”, cambiándolo del puerto 8080 al 80 o cualquier otro número de puerto que elijamos.
Line
68 <Connector port="8080" protocol="HTTP/1.1"
69 connectionTimeout="20000"
70 redirectPort="8443" />
Conclusión
En general, Tomcat facilita fácilmente el intercambio de datos entre un cliente y el servlet, proporciona una plataforma de programación para aplicaciones web y asume las funciones de identificación y autorización de clientes, creando sesiones para cada uno de ellos de forma segura.