Accueil > Java > Plusieurs instances de Tomcat sur Ubuntu

Plusieurs instances de Tomcat sur Ubuntu

Pourquoi plusieurs instances ?

  • Pour pouvoir déployer plusieurs applications partageant les même adresses, sur plusieurs virtuals hosts, sans pour autant gérer ces virtuals hosts dans Tomcat
  • Pour pouvoir arrêter / démarrer les JVM de manière indépendante
  • Pouvoir utiliser des environnements Java différents (version de la JVM, librairies partagées, propriétés système, …)
  • Isoler complètement les applications, une fuite mémoire sur l’une ne peut pas impacter l’autre.

Variables d’environnement.

Tomcat utilise deux variables d’environnement :

  • CATALINA_HOME pointe vers le répertoire d’installation de Tomcat
  • CATALINA_BASE est utilisée pour tous les chemins relatifs : configuration, applications.

Si CATALINA_BASE n’est pas précisée, c’est CATALINA_HOME qui est utilisée.

Mise en oeuvre avec Ubuntu

  • Installer tomcat et OpenJDK et le paquet « tomcat6-user » qui permet de créer d’autres instances tomcat :
tom@ubuntu:~$ sudo apt-get install -y tomcat6 openjdk-6-jdk tomcat6-user
  • Pour ne pas créer de confusion, désactiver l’instance principale de tomcat :
tom@ubuntu:~$ sudo update-rc.d -f tomcat6 remove
tom@ubuntu:~$ sudo service tomcat6 stop
  • Créer une nouvelle instance, nommée tomcat6-www, dans notre exemple :
tom@ubuntu:~$ cd /opt
tom@ubuntu:/opt$ sudo tomcat6-instance-create -p 8081 -c 8006 tomcat6-www
tom@ubuntu:/opt$ sudo mkdir tomcat6-www/conf/policy.d
tom@ubuntu:/opt$ sudo touch tomcat6-www/conf/policy.d/empty.policy
tom@ubuntu:/opt$ sudo chown -R tomcat6:tomcat6 tomcat6-www
tom@ubuntu:/opt$ cd /etc/init.d/
tom@ubuntu:/etc/init.d$ sudo cp tomcat6 tomcat6-www

8081 est le port http et 8006 est port d’arrêt.

  • Editer le script de lancement /etc/init.d/tomcat6-www, y changer les variables suivantes :
NAME=tomcat6-www
JVM_TMP=/tmp/tomcat6-www-tmp
DEFAULT=/etc/default/tomcat6
CATALINA_HOME=/usr/share/tomcat6
CATALINA_BASE=/opt/tomcat6-www
  • Activer le démarrage automatique, démarrer l’instance :
tom@ubuntu:/etc/init.d$ sudo update-rc.d tomcat6-www defaults 90
tom@ubuntu:/etc/init.d$ sudo service tomcat6-www start
Étiquettes : ,
  1. 18 janvier 2012 à 09:37

    C’est un point que je trouvais pénible avec Tomcat, mais je ne connaissais pas ce paquet tomcat6-user et la commande « tomcat6-instance-create »…
    En plus il semble aussi dispo sur Debian (Squeeze pour nous)

    Merci donc Thomas de m’éduquer🙂
    (même si maintenant on utilise glassfish qui possède cette fonctionnalité out-of-the-box)

  2. 18 janvier 2012 à 10:23

    Et comment sont géré les mises à jour de séurité dans pareil cas ? imaginons que le script /etc/init.d/tomcat6 présente une faille, qu’une nouvelle version du paquet tomcat6 va venir corriger, comment être certain que /etc/init.d/tomcat6-www sera bien mis à jour ? sans avoir à lire les changelog de toutes les mises à jour ?

    • 18 janvier 2012 à 10:30

      En effet, les fichiers dupliqués ne seront pas mis à jour : script de démarrage, server.xml, ..
      Ca limite quand même le nombre de fichiers dupliqués par rapport à une installation hors des paquets de la distribution.

  3. Ernest
    29 octobre 2014 à 12:25

    merci pour ce tuto !

    à quoi sert finalement le répertoire policy.d, puisqu’on y met un fichier vide… ?
    touch tomcat6-www/conf/policy.d/empty.policy

  4. 29 octobre 2014 à 13:13

    J’avoue ne plus me souvenir, je pense que l’un des scripts s’attend à trouver du contenu dans ce répertoire.

    • Ernest
      31 octobre 2014 à 09:36

      oui, c’est bien cela : il teste l’existence de *.policy au démarrage de tomcat. en créer un vide lui suffit…

  1. No trackbacks yet.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :