Installer deux instances tomcat sur un même serveur apache 2.x
Par fpl le lundi 17 juillet 2006, 07:40 - Général - Lien permanent

Voici une bien étrange manipulation (pour le novice que je suis) que j'ai faite il y a quelques temps avec les conseils d'experts Tomcat pour satisfaire le besoin de cloisonner les moteurs JAVA de deux applications hébergées sur le même serveur apache.
Ca n'est pas très compliqué mais je vous livre donc la procédure suivie sur un serveur RedHat AS3
- Installation du JDK de SUN
Répertoire d’installation
/opt/j2sdk(lien symbolique sur/opt/j2sdk1.4.2_06)Commandes passées
# cd /opt # j2sdk-1_4_2_06-linux-i586.bin # ln -s j2sdk1.4.2_06 j2sdk
Créer le fichier
/etc/profile.d/j2sdk.sh:JAVA_HOME=/opt/j2sdk export JAVA_HOME
- Apache
Répertoire d’installation :
/opt/httpdCommandes passées:
./configure --prefix="/opt/httpd" --enable-so make make install
Script de démarrage
/etc/init.d/apache:#!/bin/bash # # Apache Starts Apache. # # # chkconfig: 2345 90 10 # description: Apache 2 # Source function library. . /etc/init.d/functions APACHEROOT="/opt/httpd/bin" [ -f /opt/httpd/bin/apachectl ] || exit 0 RETVAL=0 umask 077 start() { echo -n $"Starting Apache: " ${APACHEROOT}/apachectl start RETVAL=$? if [ $RETVAL –eq 0 ] ; then echo_success else echo_failure fi echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/httpd return $RETVAL } stop() { echo -n $"Shutting down Apache: " ${APACHEROOT}/apachectl stop killproc httpd RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/httpd return $RETVAL } case "$1" in start) start ;; stop) stop ;; esacLancer la commande suivante :
chkconfig –-add apache
Lancement du service
# /etc/init.d/apache start
Arrêt du service
# /etc/init.d/apache stop
- Tomcat
Répertoires d’installation :
/opt/tomcat1et/opt/tomcat2(liens symboliques vers/opt/jakarta_tomcat-5.0.28-env1et/opt/jakarta_tomcat-5.0.28-env2)Commandes passées
# cd /opt/ # tar zxf jakarta-tomcat-5.0.28.tar.gz # mv jakarta-tomcat-5.0.28 jakarta-tomcat-5.0.28-env1 # tar zxf jakarta-tomcat-5.0.28.tar.gz # mv jakarta-tomcat-5.0.28 jakarta-tomcat-5.0.28-env2 # ln -s jakarta-tomcat-5.0.28-env1 tomcat1 # ln -s jakarta-tomcat-5.0.28-env2 tomcat2 # rm /opt/tomcat1/conf/tomcat-users.xml # ln –s /opt/tomcat1/conf/tomcat-users.xml /opt/tomcat2/conf/tomcat-users.xml
Attention cette dernière commande ne vaut que si les deux tomcat sont administrés par les mêmes personnes
Fichier
/opt/tomcat1/conf/server.xml# cd /opt/ # tar zxf jakarta-tomcat-5.0.28.tar.gz
Fichier
/opt/tomcat2/conf/server.xml# cd /opt # tar zxf jakarta-tomcat-5.0.28.tar.gz
Créer le fichier
/etc/init.d/tomcat# cd /opt # tar zxf jakarta-tomcat-5.0.28.tar.gz
Créer le fichier
/etc/init.d/tomcatG# cd /opt # tar zxf jakarta-tomcat-5.0.28.tar.gz
Lancer les commandes
# chkconfig –-add tomcat # chkconfig –-add tomcatG # # groupadd tomcat # useradd -g tomcat -c "utilisateur Tomcat" -d /opt/tomcat tomcat # usermod –L tomcat # chown -R tomcat:tomcat /opt/jakarta-tomcat-5.0.28*
- Installation de mod_jk
Rpm nécessaires:
libtool automake* autoconf*.Commandes passées
# tar zxf jakarta-tomcat-connectors-1.2.8-src.tar.gz # jakarta-tomcat-connectors-1.2.8-src/jk/native # ./buildconf.sh # ./configure --with-apxs=/opt/httpd/bin/apxs # make && make install
- Configuration de Apache/Tomcat
Lancer la commande
# echo “Include /opt/httpd/conf/conf.d/*.conf” >> /opt/httpd/conf/httpf.conf
Créer le fichier
/opt/httpd/conf/conf.d/tomcat.confLoadModule jk_module modules/mod_jk.so JkWorkersFile "conf/workers.properties" JkLogFile "logs/mod_jk.log" JkLogLevel info
Créer le fichier
/opt/httpd/conf/conf.d/appli1.confNameVirtualHost *:80 <VirtualHost *:80> ServerName appli1.domaine.com ServerAdmin webmaster@appli1.domaine.com JkMount /APPLI1 appli1 JkMount /APPLI1/* appli1 </VirtualHost>
Créer le fichier
/opt/httpd/conf/conf.d/appli2.conf<VirtualHost *:80> ServerName appli2.domaine.com ServerAdmin webmaster@appli2.domaine.com JkMount /APPLI2 appli2 JkMount /APPLI2/* appli2 </VirtualHost>
Création du fichier :
/opt/httpd/conf/workers.propertiesworkers.java_home=$JAVA_HOME ps=/ worker.list=appli1,appli2 worker.appli1.port=8009 worker.appli1.host=localhost worker.appli1.type=ajp13 worker.appli1.lbfactor=1 worker.appli2.port=8010 worker.appli2.host=localhost worker.appli2.type=ajp13 worker.appli2.lbfactor=1




Commentaires