Ricerca nel sito web

Come configurare il cluster Apache Tomcat con 3 nodi su Ubuntu


In questo articolo vedremo come configurare un cluster di server Apache Tomcat. Useremo 3 istanze o VM Ubuntu 18.04 EC2, qui ho usato istanze EC2. Vedremo anche i passaggi per installare Java poiché Apache Tomcat richiede Java.

I seguenti sono i dettagli del mio cluster.

Dettagli cluster:

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

Prerequisiti

  1. Account AWS (crealo se non ne hai uno e desideri creare un cluster sulle istanze EC2) (facoltativo).
  2. 3 istanze EC2 (fai clic qui per imparare a creare un'istanza EC2) OPPURE 3 VM con Ubuntu 18.04 LTS.
  3. Accesso root ai server.

Cosa faremo

  1. Scarica Apache Tomcat
  2. Installa Java8
  3. Configura Apache Tomcat Cluster
  4. Avvia/Arresta Apache Tomcat

Scarica ApacheTomcat

Passare all'utente \root\ per evitare errori di autorizzazione. Ma non è consigliabile utilizzare l'utente \root\ negli ambienti di produzione.

sudo -i

Crea una directory. Qui memorizzeremo il pacchetto Apache Tomcat.

mkdir tomcat1 #On Node2 mkdir tomcat2, On Node3 mkdir tomcat3  
cd tomcat1/   #On Node2 cd tomcat2/, On Node3 cd tomcat3/

Scarica ed estrai Apache-Tomcat-9.0.0.M17 oppure puoi scaricare una versione a tua scelta da qui.

#Su ogni nodo
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.0.M17/bin/apache-tomcat-9.0.0.M17.tar.gz #Download< br>tar -zxvf apache-tomcat-9.0.0.M17.tar.gz #Estrai

Installa Java 8

#Su ogni nodo
sudo apt-get update            #Aggiorna i dettagli del pacchetto di sistema
sudo apt install openjdk-8-jdk #Installa Java
java --version                 #Verifica versione Java

Configura Apache Tomcat

Prima di apportare le modifiche richieste, eseguiamo un backup del file server.xml predefinito.

#Su ogni nodo
cd apache-tomcat-9.0.0.M17/             #Cambia la directory.
cp conf/server.xml conf/server.xml.bak  #Fai un backup del file di configurazione esistente.

Apportare le modifiche richieste nel file server.xml.

#Su ogni nodo
ifconfig                #Ottieni l'IP del server.
vim conf/server.xml     #Apri il file di configurazione per effettuare le configurazioni richieste.

Trova le seguenti righe e cambia localhost in IP del nodo

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

Per configurare il cluster, cercare il codice seguente

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

E aggiungi il seguente codice su ciascun nodo e sostituisci IP-Of-Node con l'IP del nodo stesso.

<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>

Avvia/Arresta Apache Tomcat

Avvia Apache Tomcat

Utilizza il file startup.sh per avviare il servizio Apache Tomcat. Utilizzando il comando netstat puoi vedere che il servizio è stato avviato sulla porta predefinita 8080.

#Su ogni nodo
bin/startup.sh #Avvia il servizio Apache Tomcat.
netstat -tulpn #Controlla le porte attualmente utilizzate sul sistema.

Controlla i log

catalina.out contiene i log di Apache Tomcat. Puoi utilizzare il comando tail per vedere le ultime righe del file.

tail -100f logs/catalina.out

Arresta Apache Tomcat

Il servizio Apache Tomcat può essere interrotto utilizzando il file shutdown.sh

bin/shutdown.sh #Arresta il servizio Apache Tomcat.

Conclusione

In questo articolo, abbiamo visto i passaggi per creare un cluster di Apache tomcat con 3 nodi, visto la configurazione di base che deve essere eseguita per creare un cluster.