Cómo configurar el clúster de Apache Tomcat con 3 nodos en Ubuntu

Descargar Apache Tomcat

En este artículo, veremos cómo configurar un clúster de servidores Apache Tomcat. Usaremos 3 instancias Ubuntu 18.04 EC2 o VM, aquí he usado instancias EC2. También veremos los pasos para instalar Java ya que Apache Tomcat requiere Java.

Los siguientes son los detalles de mi clúster.

Detalles del clúster:

  1. Nodo1: Directorio base = /root/tomcat1, IP = 172.31.35.11
  2. Nodo2: Directorio base = /root/tomcat2, IP = 172.31.39.120
  3. Nodo3: Directorio base = /root/tomcat3, IP = 172.31.32.185

requisitos previos

  1. Cuenta AWS (Crear si no tiene uno y desea crear un clúster en instancias EC2) (Opcional).
  2. 3 instancias EC2 (haga clic aquí para aprender a crear una instancia EC2) O 3 máquinas virtuales con Ubuntu 18.04 LTS.
  3. Acceso root a los servidores.

Lo que haremos

  1. Descargar Apache Tomcat
  2. Instalar Java8
  3. Configurar el clúster de Apache Tomcat
  4. Iniciar/Detener Apache Tomcat

Descargar Apache Tomcat

Cambie a usuario «root» para evitar errores de permisos. Pero no se recomienda utilizar un usuario «raíz» en entornos de producción.

sudo -i

Crear un directorio. Aquí almacenaremos el paquete Apache Tomcat.

mkdir tomcat1 #En el nodo2 mkdir tomcat2, en el nodo3 mkdir tomcat3
cd tomcat1/ #En el nodo2 cd tomcat2/, en el nodo3 cd tomcat3/

Descargue y extraiga Apache-Tomcat-9.0.0.M17 o puede descargar una versión de su elección desde aquí.

#En cada Nodo
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.0.M17/bin/apache-tomcat-9.0.0.M17.tar.gz #Descargar
tar -zxvf apache-tomcat-9.0.0.M17.tar.gz #Extraer

Descargar Apache Tomcat

Instalar Java 8

#En cada nodo
sudo apt-get update #Actualizar detalles del paquete del sistema
sudo apt install openjdk-8-jdk #Instalar Java
java –version #Comprobar la versión de Java

Instalar Java

Configurar Apache Tomcat

Antes de realizar los cambios necesarios, hagamos una copia de seguridad del archivo server.xml predeterminado.

#En cada nodo
cd apache-tomcat-9.0.0.M17/ #Cambiar el directorio.
cp conf/server.xml conf/server.xml.bak #Tome una copia de seguridad del archivo de configuración existente.

Configurar Apache Tomcat

Realice los cambios necesarios en el archivo server.xml.

#En cada nodo
ifconfig #Obtener IP del servidor.
vim conf/server.xml #Abra el archivo de configuración para realizar las configuraciones requeridas.

Configurar el archivo server.xml

Busque las siguientes líneas y cambie localhost a IP del nodo

<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost"  appBase="webapps

Configurar host para aplicaciones web

Para configurar el clúster, busque el siguiente código

      <!--
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
      -->

Y agregue el siguiente código en cada nodo y reemplace IP-Of-Node con la IP del propio nodo.

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6">
        <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>
        <Channel className="org.apache.catalina.tribes.group.GroupChannel">
                <Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4"
                        port="45564" frequency="500" dropTime="3000"/>
                <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="IP-Of-Node"
                                port="5000" selectorTimeout="100" maxThreads="6"/>
                <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
                                <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
                </Sender>
                <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
                <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor"/>
                <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
        </Channel>
        <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
        <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
        <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir="/tmp/war-temp/"
                deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/>
        <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>

Configurar la dirección IP del nodo

Iniciar/Detener Apache Tomcat

Inicie Apache Tomcat

Usar inicio.sh archivo para iniciar el servicio Apache Tomcat. Usando netstat puede ver que el servicio se ha iniciado en el puerto predeterminado 8080.

#En cada nodo
bin/startup.sh #Iniciar el servicio Apache Tomcat.
netstat -tulpn #Comprobar los puertos que se utilizan actualmente en el sistema.

Comprobar registros

catalina.out contiene los registros de Apache Tomcat. Puede usar el comando tail para ver las últimas líneas del archivo.

cola -100f logs/catalina.out

Apagar Apache Tomcat

El servicio Apache Tomcat se puede detener usando el archivo shutdown.sh

bin/shutdown.sh #Detener el servicio Apache Tomcat.

Iniciar y detener Tomcat

Conclusión

En este artículo, vimos los pasos para crear un clúster de Apache Tomcat con 3 nodos, vimos la configuración básica que se debe realizar para crear un clúster.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *