21
2011
Tomcat : plusieurs instances sur la même machine
Pour ceux qui espèrent que le titre de cet article renferme en fait les secrets du serveur Tomcat , vous pouvez passer votre chemin car je vais simplement expliquer quelles sont les configurations à changer pour pouvoir déployer sur une même machine plusieurs instances du serveur.
Tout d’abord…
Comment est organisé Tomcat ?
Tomcat peut se décomposer en deux parties, deux dossiers dont on met le chemin dans les deux variables d’environnement correspondantes.
- CATALINA_HOME pointe vers le dossier qui contient les informations communes à toutes les instances
- le dossier bin : les exécutables Tomcat
- le dossier lib : les librairies utilisées par Tomcat
- CATALINA_BASE pointe vers le dossier qui contient les informations spécifiques à chaque instance
- le dossier conf : les fichiers de configuration de l’instance
- le dossier temp : le dossier temporaire de la JVM (java.io.tmpdir)
- le dossier webapps : les applications web déployés
- le dossier work : les dossiers de travail temporaires utilisés par le serveur
- le dossier logs : les logs du serveur et des différentes applications
Pour déployer plusieurs instances de Tomcat sur une même machine, il faut donc spécifier pour chaque instance un dossier CATALINA_BASE et un CATALINA_HOME (celui-ci pouvant être commun pour toutes les instances)
Dans une installation standard, le dossier CATALINE_HOME et CATALINE_BASE sont identiques.
Comment configurer mes instances ?
Maintenant que nous avons vu comment s’organise Tomcat, mettons en place nos instances. Pour l’exemple, disons que nous en voulons 3.
Je vais donc créer les 4 dossiers suivants (1 CATALINA_HOME et 3 CATALINA_BASE) qui contiennent les fichiers par défaut d’une installation tomcat avec l’organisation des répertoires expliquée précédemment. (Pour créer les dossiers CATALINA_BASE, copiez simplement le dossier original auquel vous pouvez enlever les dossiers bin et lib. Pour CATALINA_HOME, copier également le dossier original mais ne gardez cette fois-ci que les dossiers bin et lib.)
maintenant, je vais modifier les fichiers de configuration de chaque instance pour leur associer des ports différents. Pour cela, il faut éditer le fichier server.xml qui se trouve dans le dossier conf.
Tout d’abord changer le port d’écoute de la commande SHUTDOWN
<Server port="8005" shutdown="SHUTDOWN">
Personnellement, je choisis de mettre les ports 8001, 8002 et 8003.
Ensuite, pour chaque connecteur déclaré dans le fichier server.xml, il faut définir un numéro de port pour chaque instance. Par défaut, la configuration de Tomcat contient deux connecteurs, un HTTP et un AJP.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3"
redirectPort="8443" />
Je vais donc mettre 8080, 8081 et 8082 pour les connecteurs HTTP et 8009, 8010 et 8011 pour les connecteurs AJP. Le « redirectPort » correspond au port sur lequel seront renvoyées toutes les requêtes qui requièrent un transport SSL. Si vous vous en servez et que vous avez également défini le connecteur SSLEnabled correspondant, il faut également penser à modifier ce port.
Maintenant, ça devrait marcher ? Une petite dernière chose, configurer les CATALINA_BASE pour chaque instance.
Avec d’appeler les script de démarrage de Tomcat situé le dossier bin de CATALINA_HOME, il suffit d’exporter dans la variable d’environnement CATALINA_BASE le dossier de l’instance que l’on souhaite démarrer (de même pour l’arret).
Ce qui donne sous Unix
export CATALINA_BASE=Path/Vers/Mon/Instance/1 $CATALINA_HOME/bin/startup.sh
Ce qui a pour effet de démarrer une instance de Tomcat en utilisant la configuration situé dans Path/Vers/Mon/Instance/1
On répète ensuite cette opération pour chaque instance que l’on souhaite démarrer et l’on peut (doit ?) bien évidemment mettre tout ça dans des scripts pour automatiser
Pour arrêter une instance souhaité, le principe est le même, excepté qu’au lieu d’appeler le script startup.sh, nous appelerons cette fois-ci shutdown.sh
Et voilà, nos trois serveurs Tomcat tournent en même temps sur la même machine… Et en plus, on a économisé de la place en mutualisant les exécutables dans un seul dossier
Leave a comment
Catégories
Tag cloud
Abase de ricom
Android
Bienvenue
Bull
CV
Developpement
Diplome
ECOM
Embarqué
Emploi
Google
GWT
Images
Ingénieur
INRIA
Jasmine
Montbonnot
Nuit de l'info
OpenMP
Paris
Polytech
Projet
Rentrée
Stage
Tomcat
What's Next
Zenika Android (1)
GWT (1)
Job (1)
Polytech Grenoble (6)
Web (1)
Zenika (2)
Développement (3)
Non classé (1)
Stage (2)
WP Cumulus Flash tag cloud by Roy Tanck requires Flash Player 9 or better.
An article by







