Dans cet article, nous allons voir comment mettre en place un cluster de serveurs Apache Tomcat. Nous utiliserons 3 instances ou VM Ubuntu 18.04 EC2, ici j'ai utilisé des instances EC2. Nous verrons également les étapes pour installer Java car Apache Tomcat nécessite Java.
Voici les détails de mon cluster.
Détails du cluster :
- Noeud1 :Répertoire de base =/root/tomcat1, IP =172.31.35.11
- Noeud2 : Répertoire de base =/root/tomcat2, IP = 172.31.39.120
- Nœud 3 : Répertoire de base =/root/tomcat3, IP = 172.31.32.185
Prérequis
- Compte AWS (créez-le si vous n'en avez pas et souhaitez créer un cluster sur les instances EC2) (facultatif).
- 3 instances EC2 (Cliquez ici pour apprendre à créer une instance EC2) OU 3 VM avec Ubuntu 18.04 LTS.
- Accès root aux serveurs.
Ce que nous allons faire
- Télécharger Apache Tomcat
- Installer Java8
- Configurer le cluster Apache Tomcat
- Démarrer/Arrêter Apache Tomcat
Télécharger Apache Tomcat
Passez à l'utilisateur "root" pour éviter les erreurs d'autorisation. Mais il n'est pas recommandé d'utiliser l'utilisateur "root" sur les environnements de production.
sudo -i
Créer un répertoire. Ici, nous allons stocker le package Apache Tomcat.
mkdir tomcat1 #Sur le nœud2 mkdir tomcat2, Sur le nœud3 mkdir tomcat3
cd tomcat1/ #Sur le nœud2 cd tomcat2/, Sur le nœud3 cd tomcat3/
Téléchargez et extrayez Apache-Tomcat-9.0.0.M17 ou vous pouvez télécharger une version de votre choix à partir d'ici.
#Sur chaque nœud
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.0.M17/bin/apache-tomcat-9.0.0.M17.tar.gz #Télécharger
tar -zxvf apache-tomcat-9.0.0.M17.tar.gz #Extraire
Installer Java 8
#Sur chaque nœud
sudo apt-get update #Mettre à jour les détails du package système
sudo apt install openjdk-8-jdk #Installer Java
java --version #Vérifier la version Java
Configurer Apache Tomcat
Avant d'apporter les modifications requises, effectuons une sauvegarde du fichier server.xml par défaut.
#Sur chaque nœud
cd apache-tomcat-9.0.0.M17/ #Changer de répertoire.
cp conf/server.xml conf/server.xml.bak #Faire une sauvegarde du fichier de configuration existant .
Effectuez les modifications requises dans le fichier server.xml.
#Sur chaque nœud
ifconfig #Obtenez l'IP du serveur.
vim conf/server.xml #Ouvrez le fichier de configuration pour effectuer les configurations requises.
Recherchez les lignes suivantes et remplacez localhost par l'adresse IP du nœud
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps
Pour configurer le cluster, recherchez le code suivant
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
Et ajoutez le code suivant sur chaque nœud et remplacez IP-Of-Node par l'adresse IP du nœud lui-même.
<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>
Démarrer/Arrêter Apache Tomcat
Démarrer Apache Tomcat
Utilisez startup.sh fichier pour démarrer le service Apache Tomcat. Utiliser netstat commande, vous pouvez voir que le service a démarré sur le port par défaut 8080.
#Sur chaque nœud
bin/startup.sh #Démarrer le service Apache Tomcat.
netstat -tulpn #Vérifier les ports actuellement utilisés sur le système.
Vérifier les journaux
catalina.out contient les journaux d'Apache Tomcat. Vous pouvez utiliser la commande tail pour voir les dernières lignes du fichier.
tail -100f logs/catalina.out
Arrêter Apache Tomcat
Le service Apache Tomcat peut être arrêté à l'aide du fichier shutdown.sh
bin/shutdown.sh #Arrête le service Apache Tomcat.
Conclusion
Dans cet article, nous avons vu les étapes pour créer un cluster d'Apache tomcat avec 3 nœuds, vu la configuration de base qui doit être faite pour créer un cluster.