een Apache Tomcat cluster met 3 Nodes opzetten op Ubuntu

In dit artikel zullen we zien hoe je een cluster van Apache Tomcat servers kunt opzetten. We zullen 3 Ubuntu 18.04 EC2 Instances of VM’s gebruiken, hier heb ik EC2 instances gebruikt. We zullen ook de stappen zien om Java te installeren, want Apache Tomcat vereist Java.

Hieronder volgen de details van mijn cluster.

Cluster details:

  1. Node1: Base Directory = /root/tomcat1, IP = 172.31.35.11
  2. Node2: Basismap = /root/tomcat2, IP = 172.31.39.120
  3. Node3: basismap = /root/tomcat3, IP = 172.31.32.185

Pre-requisites

  1. AWS Account(Maak aan als je er geen hebt en een cluster op EC2 Instances wilt maken) (Optioneel).
  2. 3 EC2 Instances (Klikhier om te leren hoe je een EC2 Instance maakt) OF 3 VM’s met Ubuntu 18.04 LTS erop.
  3. Root toegang tot de servers.

Wat we zullen doen

  1. Download Apache Tomcat
  2. Java8 installeren
  3. Configureer Apache Tomcat Cluster
  4. Apache Tomcat starten/stoppen

Download Apache Tomcat

Verander in de gebruiker “root” om vergunningsfouten te voorkomen. Maar het is niet aan te bevelen de gebruiker “root” te gebruiken in Productie Omgevingen.

sudo -i

Maak een map. Hier zullen we Apache Tomcat Pakket opslaan.

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

Download en Extract Apache-Tomcat-9.0.0.M17 of je kunt een versie naar keuze van hier downloaden.

#Op elke Node
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.0.M17/bin/apache-tomcat-9.0.0.M17.tar.gz #Download
tar -zxvf apache-tomcat-9.0.0.M17.tar.gz #Uitpakken

Download Apache Tomcat

Installeer Java 8

#Op elke node
sudo apt-get update #Update System Package Details
sudo apt install openjdk-8-jdk #Installeer Java
java –version #Check Java Version

Installeer Java

Apache Tomcat configureren

Laten we, voordat we de vereiste veranderingen aanbrengen, een back-up maken van het standaard server.xml bestand.

#Op elk knooppunt
cd apache-tomcat-9.0.0.M17/ #Verander de directory.
cp conf/server.xml conf/server.xml.bak #Neem een backup van het bestaande configuratiebestand.

Configureer Aapache Tomcat

Breng de vereiste veranderingen aan in het bestand server.xml.

#Op elk knooppunt
ifconfig #Geef IP van de server op.
vim conf/server.xml #Open het configuratiebestand om de vereiste configuraties te maken.

Configureer server.xml bestand

Zoek de volgende regels en verander localhost in IP van de Node

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

Configureer host voor web apps

Voor het opzetten van het cluster zoek je de volgende code

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

En voeg de volgende code toe op elke node en vervang IP-Of-Nodedoor het IP van de node zelf.

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

Configureer het IP adres van het knooppunt

Starten/stoppen van Apache Tomcat

Start Apache Tomcat

Gebruik het bestand startup.sh om de Apache Tomcat dienst te starten. Met het commandonetstat kun je zien dat de dienst gestart is op de standaard poort 8080.

#Op elk knooppunt
bin/startup.sh #Start de Apache Tomcat dienst.
netstat -tulpn #Controleer de poorten die momenteel op het systeem gebruikt worden.

Logboeken controleren

catalina.out bevat de logs van Apache Tomcat. Je kunt het commando tail gebruiken om de laatste regels uit het bestand te zien.

tail -100f logs/catalina.out

Apache Tomcat afsluiten

De Apache Tomcat dienst kan gestopt worden met het bestand shutdown.sh

bin/shutdown.sh #Stop de Apache Tomcat dienst.

Tomcat starten en stoppen

Conclusie

In dit artikel zagen we de stappen om een cluster van Apache tomcat met 3 nodes te maken, we zagen de basis configuratie die gedaan moet worden om een cluster te maken.