Apache Tomcat es un servidor web de código abierto y un contenedor de servlets desarrollado por Apache Software Foundation (ASF).
Tomcat implementa las especificaciones Java Servlet y JavaServer Pages (JSP) de Oracle y proporciona un entorno de servidor web HTTP "Java puro" para ejecutar los códigos Java.
Apache Tomcat incluye herramientas de configuración y administración, pero también se puede configurar editando archivos de configuración XML.
Aquí está la guía paso a paso para instalar Apache Tomcat 9.0/8.5 en CentOS 6/RHEL 6.
Requisitos
Instalar Java
Tomcat requiere tener una versión estable de Java 8 o posterior instalada en su máquina. Puede instalar Oracle JDK u OpenJDK en su máquina.
Aquí usaré OpenJDK.
yum install -y java-1.8.0 wget
También puede verificar Java emitiendo el siguiente comando.
java -version
Salida:
openjdk version "1.8.0_222" OpenJDK Runtime Environment (build 1.8.0_222-b10) OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
Crear una cuenta de servicio
Como práctica recomendada, nunca se debe ejecutar Tomcat como un usuario privilegiado (raíz). Por lo tanto, cree un usuario con privilegios bajos para ejecutar el servicio Tomcat.
useradd -d /opt/tomcat tomcat
Instalar Apache Tomcat
Descarga Apache Tomcat
Descarga Apache Tomcat desde el sitio web oficial.
### Apache Tomcat 9.0 ### wget https://www-us.apache.org/dist/tomcat/tomcat-9/v9.0.22/bin/apache-tomcat-9.0.22.tar.gz ### Apache Tomcat 8.5 ### wget https://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.43/bin/apache-tomcat-8.5.43.tar.gz
Configurar Apache Tomcat
Extraiga el tomcat en su deseado (/opt/tomcat
) directorio.
tar -zxvf apache-tomcat-*.tar.gz mv apache-tomcat-*/* /opt/tomcat/ chown -R tomcat:tomcat /opt/tomcat/
Crear secuencia de comandos de inicio
Apache Tomcat puede iniciarse y detenerse manualmente mediante el script que viene con el paquete. Pero, aquí, usaremos el script de inicio para manejarlo.
vi /etc/init.d/tomcat9
Utilice la siguiente información.
#!/bin/bash # chkconfig: 2345 95 20 # description: This application was developed by me and is tested on this server # processname: my_app # # Tomcat 8 start/stop/status init.d script # Initially forked from: https://gist.github.com/valotas/1000094 # @author: Miglen Evlogiev <[email protected]> # # Release updates: # Updated method for gathering pid of the current proccess # Added usage of CATALINA_BASE # Added coloring and additional status # Added check for existence of the tomcat user # Added termination proccess #Location of JAVA_HOME (bin files) export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64/ #Add Java binary files to PATH export PATH=$JAVA_HOME/bin:$PATH #CATALINA_HOME is the location of the bin files of Tomcat export CATALINA_HOME=/opt/tomcat/ #CATALINA_BASE is the location of the configuration files of this instance of Tomcat export CATALINA_BASE=/opt/tomcat/ #TOMCAT_USER is the default user of tomcat export TOMCAT_USER=tomcat #TOMCAT_USAGE is the message if this script is called without any options TOMCAT_USAGE="Usage: $0 {\e[00;32mstart\e[00m|\e[00;31mstop\e[00m|\e[00;31mkill\e[00m|\e[00;32mstatus\e[00m|\e[00;31mrestart\e[00m}" #SHUTDOWN_WAIT is wait time in seconds for java proccess to stop SHUTDOWN_WAIT=20 tomcat_pid() { echo `ps -fe | grep $CATALINA_BASE | grep -v grep | tr -s " "|cut -d" " -f2` } start() { pid=$(tomcat_pid) if [ -n "$pid" ] then echo -e "\e[00;31mTomcat is already running (pid: $pid)\e[00m" else # Start tomcat echo -e "\e[00;32mStarting tomcat\e[00m" #ulimit -n 100000 #umask 007 #/bin/su -p -s /bin/sh $TOMCAT_USER if [ `user_exists $TOMCAT_USER` = "1" ] then /bin/su $TOMCAT_USER -c $CATALINA_HOME/bin/startup.sh else sh $CATALINA_HOME/bin/startup.sh fi status fi return 0 } status(){ pid=$(tomcat_pid) if [ -n "$pid" ]; then echo -e "\e[00;32mTomcat is running with pid: $pid\e[00m" else echo -e "\e[00;31mTomcat is not running\e[00m" fi } terminate() { echo -e "\e[00;31mTerminating Tomcat\e[00m" kill -9 $(tomcat_pid) } stop() { pid=$(tomcat_pid) if [ -n "$pid" ] then echo -e "\e[00;31mStoping Tomcat\e[00m" #/bin/su -p -s /bin/sh $TOMCAT_USER sh $CATALINA_HOME/bin/shutdown.sh let kwait=$SHUTDOWN_WAIT count=0; until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ] do echo -n -e "\n\e[00;31mwaiting for processes to exit\e[00m"; sleep 1 let count=$count+1; done if [ $count -gt $kwait ]; then echo -n -e "\n\e[00;31mkilling processes didn't stop after $SHUTDOWN_WAIT seconds\e[00m" terminate fi else echo -e "\e[00;31mTomcat is not running\e[00m" fi return 0 } user_exists(){ if id -u $1 >/dev/null 2>&1; then echo "1" else echo "0" fi } case $1 in start) start ;; stop) stop ;; restart) stop start ;; status) status ;; kill) terminate ;; *) echo -e $TOMCAT_USAGE ;; esac exit 0
Crédito :Timothy Hutz.
Configure el script para que sea ejecutable.
chmod +x /etc/init.d/tomcat9
Iniciar Apache Tomcat
Inicie el servicio.
service tomcat9 start
Puede verificar que el servicio se esté ejecutando; de forma predeterminada, Tomcat se ejecuta en el puerto n.º 8080
netstat -antup | grep 8080
Salida:
tcp 0 0 :::8080 :::* LISTEN 1526/java
Habilite el servicio Tomcat para que se inicie automáticamente al iniciar el sistema.
chkconfig --add tomcat9 chkconfig tomcat9 on
Cortafuegos
Permitir solicitudes de aplicaciones web de Tomcat a través del firewall.
iptables -I INPUT -p tcp -m tcp --dport 8080 -j ACCEPT /etc/init.d/iptables save
Configurar la interfaz de usuario web de Apache Tomcat
Tomcat se puede administrar a través del administrador web y el administrador de host virtual. Tanto el administrador web como el administrador de host están protegidos con contraseña y requieren nombre de usuario y contraseña para acceder.
El usuario con manager-gui y administrador-GUI El rol tiene acceso al administrador de aplicaciones web y al administrador de host, respectivamente. Estos usuarios y funciones se definen en tomcat-users.xml.
vi /opt/tomcat/conf/tomcat-users.xml
Coloque las siguientes dos líneas justo encima de la última línea.
<role rolename="admin-gui,manager-gui"/> <user username="admin" password="tomcat" roles="manager-gui,admin-gui"/>
Por motivos de seguridad, solo se puede acceder a Web Manager y Host Manager desde el host local, es decir, desde el propio servidor.
Para acceder a los administradores web y de host desde el sistema remoto, deberá agregar su red de origen en la lista de permitidos. Para ello, edite los dos archivos siguientes.
### Web Manager ### vi /opt/tomcat/webapps/manager/META-INF/context.xml ### Host Manager ### vi /opt/tomcat/webapps/host-manager/META-INF/context.xml
Actualice la línea a continuación en los archivos anteriores con la IP de origen desde la que accede a la web y al Administrador de host.
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|.*" />
O
También puede permitir solo parte de su red. Por ejemplo:para permitir solo la red 192.168.1.0/24, puede usar los valores a continuación.
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.1.*" />
Reinicie el servicio Tomcat.
service tomcat9 restart
Acceder a Apache Tomcat
Abra el navegador web y apunte a
http://ip.add.re.ss:8080Obtendría la página predeterminada de Tomcat.
Administrador web:– Se requiere inicio de sesión. Nombre de usuario:admin, Contraseña:tomcat.
Aquí, puede implementar una nueva aplicación, implementar una nueva aplicación en un contexto específico, enumerar las aplicaciones activas o inactivas, iniciar y detener las aplicaciones web.
Además, puede comprobar el estado del servidor .
Administrador de host:– Se requiere inicio de sesión. Nombre de usuario:admin, Contraseña:tomcat.
Aquí, puede manejar hosts virtuales de Tomcat.
Conclusión
Eso es todo. Espero que haya aprendido a instalar Tomcat 9 en CentOS 6/RHEL 6. Ahora está listo para implementar su primera aplicación web. Como recomendación de seguridad, considere implementar SSL/TLS para Tomcat