Apache Tomcat es una implementación de Java Servlet de código abierto desarrollada por Apache Software Foundation. Además de los servlets de Java, Tomcat implementa otras tecnologías de servidor de Java, como JavaServer Pages (JSP), Java Expression Language y Java WebSocket. Tomcat proporciona un servidor web HTTP para aplicaciones Java con soporte para alojamiento virtual HTTP/2, OpenSSL para JSSE y TLS.
En este tutorial, le mostraré cómo instalar y configurar Apache Tomcat 8.5 en un servidor CentOS 7 y cómo instalar y configurar Java en un servidor CentOS, que es uno de los requisitos previos para Tomcat.
Requisitos previos
- Servidor con CentOS 7 - 64bit
- 2 GB o más de RAM (recomendado)
- Privilegios de raíz en el servidor
Paso 1:instalar Java (JRE y JDK)
En este paso, instalaremos Java JRE y JDK desde el repositorio de CentOS. Instalaremos Java 1.8.11 en el servidor con el comando yum.
Ejecute este comando para instalar Java JRE y JDK desde el repositorio de CentOS con yum:
yum -y install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64
Tomará algún tiempo, espere hasta que finalice la instalación.
Luego, debe verificar la versión de Java con el siguiente comando:
java -version
Debería ver resultados similares a los siguientes:
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-b15)
OpenJDK 64-Bit Server VM (build 25.111-b15, mixed mode)
Paso 2:configurar el entorno de inicio de Java
En el primer paso, hemos instalado Java. Ahora necesitamos configurar la variable de entorno JAVA_HOME en el servidor CentOS para que las aplicaciones Java puedan encontrar la versión correcta de Java y Tomcat requiere que el entorno JAVA_HOME esté configurado correctamente, por lo que debemos configurarlo.
Antes de configurar el entorno JAVA_HOME, necesitamos saber dónde está el directorio de Java. Verifique el directorio de Java con el siguiente comando:
sudo update-alternatives --config java
Directorio Java ="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre "
Luego edite el archivo de entorno con vim:
vim /etc/environment
Agregue la variable de entorno JAVA_HOME agregando la siguiente configuración:
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre"
Guarde el archivo /etc/environment y salga de vim.
A continuación, edite el archivo .bash_profile y agregue también la variable JAVA_HOME:
vim ~/.bash_profile
Al final del archivo, pegue la siguiente configuración:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre
export PATH=$JAVA_HOME/bin:$PATH
Guarde el archivo, luego vuelva a cargar el archivo bash_profile.
source ~/.bash_profile
Asegúrese de que no haya ningún error. Finalmente, verifique la variable de entorno JAVA_HOME:
echo $JAVA_HOME
Verá el directorio de rutas de Java.
Paso 3:instale Apache Tomcat 8.5
En este paso, instalaremos Apache Tomcat bajo el usuario tomcat (que debemos crear primero).
Cree un usuario y un grupo llamado tomcat:
groupadd tomcat
useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Nota :
-s /bin/false =deshabilitar el acceso de shell
-g tomcat =asignar un nuevo usuario al grupo tomcat
-d /opt/tomcat =definir el directorio de inicio para el usuario
A continuación, vaya al directorio /opt y descargue Tomcat con el comando wget:
cd /opt/
wget http://mirror.wanxp.id/apache/tomcat/tomcat-8/v8.5.6/bin/apache-tomcat-8.5.6.tar.gz
Extraiga Tomcat y mueva todos los archivos y directorios que se encuentran en el directorio 'apache-tomcat-8.5.6' al directorio 'tomcat'.
tar -xzvf apache-tomcat-8.5.6.tar.gz
mv apache-tomcat-8.5.6/* tomcat/
Ahora cambie el propietario del directorio tomcat al usuario y grupo tomcat.
chown -hR tomcat:tomcat tomcat
Paso 4:Probar Apache Tomcat
En el paso 3, instalamos y configuramos Tomcat. En este paso, solo queremos realizar una breve prueba para asegurarnos de que no haya errores.
Vaya al directorio tomcat/bin y ejecute el comando 'startup.sh' para probar Apache Tomcat:
cd /opt/tomcat/bin/
./startup.sh
Asegúrese de que el resultado sea 'Tomcat iniciado'.
Tomcat está usando el puerto 8080 ahora, verifique el puerto abierto en el servidor con el comando netstat.
netstat -plntu
O visite la dirección IP del servidor con el puerto 8080, en mi caso 192.168.1.120:8080, con un navegador web. Verá la página predeterminada de Apache Tomcat.
Luego, detenga Apache Tomcat y porque lo ejecutaremos Tomcat con un archivo de servicio systemd en la configuración final. Asegúrese de que el directorio tomcat sea propiedad del usuario y grupo tomcat.
cd /opt/tomcat/bin/
./shutdown.sh
chown -hR tomcat:tomcat /opt/tomcat/
Paso 5:configurar el servicio Apache Tomcat
En este tutorial, ejecutaremos Apache Tomcat como usuario de Tomcat con un archivo de servicio systemd para iniciar y detener el servicio fácilmente. Entonces, el siguiente paso es crear un archivo 'tomcat.service'.
Vaya al directorio del sistema systemd y cree un nuevo archivo 'tomcat.service'.
cd /etc/systemd/system/
vim tomcat.service
Pegue la configuración a continuación:
[Unit]
Description=Apache Tomcat 8 Servlet Container
After=syslog.target network.target
[Service]
User=tomcat
Group=tomcat
Type=forking
Environment=CATALINA_PID=/opt/tomcat/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
Guarde el archivo y salga de vim.
Vuelva a cargar el demonio systemd, luego inicie y agregue el servicio Apache Tomcat en el momento del arranque.
systemctl daemon-reload
systemctl start tomcat
systemctl enable tomcat
Ahora compruebe que Tomcat se está ejecutando comprobando el puerto abierto 8080.
netstat -plntu
Y verifique el estado de Tomcat, asegúrese de que el servicio esté activo.
systemctl status tomcat
Paso 6:configurar usuarios de Apache Tomcat
En este paso, configuraremos los usuarios para Apache Tomcat. Tomcat está instalado y se ejecuta de forma predeterminada en el puerto 8080, podemos acceder a él con un navegador web, pero aún no podemos acceder al panel del administrador del sitio. Para habilitar y configurar usuarios de Tomcat, edite el archivo 'tomcat-users.xml'.
Vaya al directorio de configuración de tomcat y edite el archivo tomcat-users.xml con vim.
cd /opt/tomcat/conf/
vim tomcat-users.xml
Cree una nueva línea debajo de la línea 43 y pegue la configuración a continuación:
<role rolename="manager-gui"/>
<user username="admin" password="password" roles="manager-gui,admin-gui"/>
Guarde el archivo y salga de vim.
A continuación, vaya al directorio del administrador y edite el archivo context.xml.
cd /opt/tomcat/webapps/manager/META-INF/
vim context.xml
Comente las líneas 19 y 20.
<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 el archivo y salga de vim.
Vaya al directorio host-manager y edite el archivo context.xml nuevamente.
cd /opt/tomcat/webapps/host-manager/META-INF/
vim context.xml
Comente de nuevo las líneas 19 y 20.
<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 el archivo y salga, luego reinicie Tomcat.
systemctl restart tomcat
Paso 7:configurar el cortafuegos
En CentOS 7, tenemos una herramienta de firewall predeterminada llamada firewalld. Reemplaza la interfaz de iptables y se conecta al código del kernel de Netfilter.
En este paso, iniciaremos el servicio firewalld y abriremos el puerto 8080 para poder acceder al servidor Apache Tomcat desde fuera de la red.
Inicie el servicio firewalld y agréguelo para que comience en el momento del arranque con el comando systemctl.
systemctl start firewalld
systemctl enable firewalld
A continuación, agregue el puerto 8080 de apache tomcat al firewall con el comando firewall-cmd y vuelva a cargar el servicio firewalld.
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --reload
Verifique que todos los servicios estén disponibles en el firewall y verifique que el puerto 8080 de Apache Tomcat esté abierto.
firewall-cmd --list-ports
firewall-cmd --list-services
Se puede acceder al puerto 8080 de Apache Tomcat desde fuera de la red, y el puerto ssh también está abierto de forma predeterminada.
Paso 8 - Prueba
Abra su navegador web y escriba la IP de su servidor con el puerto 8080. Verá la página predeterminada de Apache Tomcat.
http://192.168.1.120:8080
Vaya al panel del administrador con la siguiente URL:
http://192.168.1.120:8080/gerente/html
Escriba el nombre de usuario del administrador 'admin ' con contraseña 'micontraseña ', la configuración que hicimos en el paso 5.
Ahora vaya al panel de administración del host con la siguiente URL:
http://192.168.1.120:8080/administrador de host/html
Ingrese el usuario y la contraseña de administrador que configuró en el paso 5, verá el Administrador de host virtual de Tomcat.
Apache Tomcat 8.5 se ha instalado en un servidor CentOS 7.
Enlaces
- http://tomcat.apache.org/