J’ai plusieurs instances de tomcat 6 sur le même serveur (Linux) et cela fonctionne comme prévu. J’essaie de savoir quelle est la pratique standard en ce qui concerne la définition des variables CATALINA_HOME
et CATALINA_BASE
.
Dans mon installation tomcat, j’ai configuré CATALINA_HOME
pour qu’il pointe vers un dossier “commun” (say /tomcat6
) et que la variable CATALINA_BASE
varie en fonction du nom de l’instance (par exemple /tomcat_instance1
, /tomcat_instance2
).
Ma question est la suivante:
CATALINA_HOME
et supprimer CATALINA_BASE
(ou vice-versa)? Si vous exécutez plusieurs instances de Tomcat sur un seul hôte, vous devez définir CATALINA_BASE
comme égal au .../tomcat_instance1
ou .../tomcat_instance2
correspondant à chaque instance et à la variable d’environnement CATALINA_HOME
à l’installation commune de Tomcat. sera partagé entre les deux instances.
L’environnement CATALINA_BASE
est facultatif si vous exécutez une seule instance Tomcat sur l’hôte et si vous utilisez par défaut CATALINA_HOME
dans ce cas. Si vous exécutez plusieurs instances comme vous le faites, vous devez les fournir.
Il y a une assez bonne description de cette configuration dans le fichier RUNNING.txt
à la racine de la dissortingbution Apache Tomcat sous l’en-tête Configuration avancée – Instances multiples de Tomcat.
CATALINA_HOME
vs CATALINA_BASE
Si vous exécutez plusieurs instances, vous avez besoin des deux variables, sinon uniquement CATALINA_HOME
.
En d’autres termes, CATALINA_HOME
est requirejs et CATALINA_BASE
est facultatif.
CATALINA_HOME
représente la racine de votre installation Tomcat.
En option, Tomcat peut être configuré pour plusieurs instances en définissant
$CATALINA_BASE
pour chaque instance. Si plusieurs instances ne sont pas configurées,$CATALINA_BASE
est identique à$CATALINA_HOME
.
Voir: Apache Tomcat 7 – Introduction
Exécuter avec CATALINA_HOME
et CATALINA_BASE
est documenté dans RUNNING.txt qui indique:
Les variables d’environnement
CATALINA_HOME
etCATALINA_BASE
permettent respectivement de spécifier l’emplacement d’Apache Tomcat et l’emplacement de sa configuration active.Vous ne pouvez pas configurer les variables
CATALINA_HOME
etCATALINA_BASE
dans le scriptsetenv
, car elles sont utilisées pour rechercher ce fichier.
Par exemple:
(4.1) Tomcat peut être démarré en exécutant l’une des commandes suivantes:
%CATALINA_HOME%\bin\startup.bat (Windows) $CATALINA_HOME/bin/startup.sh (Unix)
ou
%CATALINA_HOME%\bin\catalina.bat start (Windows) $CATALINA_HOME/bin/catalina.sh start (Unix)
Dans de nombreuses circonstances, il est souhaitable de disposer d’une seule copie d’une dissortingbution binary Tomcat partagée entre plusieurs utilisateurs sur le même serveur. Pour rendre cela possible, vous pouvez définir la variable d’environnement
CATALINA_BASE
sur le répertoire qui contient les fichiers de votre instance Tomcat “personnelle”.Lors de l’exécution avec
CATALINA_HOME
etCATALINA_BASE
, les fichiers et répertoires sont divisés comme suit:Dans
CATALINA_BASE
:
bin
– Only: setenv.sh (* nix) ou setenv.bat (Windows), tomcat-juli.jarconf
– Fichiers de configuration du serveur (y compris server.xml)lib
– Bibliothèques et classes, comme expliqué ci-dessouslogs
– Fichiers delogs
et de sortiewebapps
– Applications Web chargées automatiquementwork
– Répertoires de travail temporaires pour les applications Webtemp
– Répertoire utilisé par la JVM pour les fichiers temporaires>Dans
CATALINA_HOME
:
bin
– Scripts de démarrage et d’arrêtlib
– Bibliothèques et classes, comme expliqué ci-dessousendorsed
– Bibliothèques qui remplacent les “Normes approuvées” standard. Par défaut, il est absent.
Le moyen le plus simple de vérifier ce que sont votre CATALINA_BASE
et CATALINA_HOME
consiste à exécuter startup.sh
, par exemple:
$ /usr/share/tomcat7/bin/startup.sh Using CATALINA_BASE: /usr/share/tomcat7 Using CATALINA_HOME: /usr/share/tomcat7
Vous pouvez également vérifier où les fichiers Tomcat sont installés, en dpkg
outil dpkg
ci-dessous (Debian / Ubuntu):
dpkg -L tomcat7-common
Je ne peux pas dire que je connais les meilleures pratiques, mais voici ma perspective.
Utilisez- vous ces variables pour quelque chose?
Personnellement, je n’ai pas eu besoin de changer ni sous Linux, ni sous Windows, dans des environnements allant du développement à la production. À moins que vous ne fassiez quelque chose de particulier qui repose sur eux, vous risquez de les laisser seuls.
catalina.sh
définit les variables que Tomcat doit utiliser immédiatement. Il dit aussi que CATALINA_BASE
est facultatif:
# CATALINA_HOME May point at your Catalina "build" directory. # # CATALINA_BASE (Optional) Base directory for resolving dynamic portions # of a Catalina installation. If not present, resolves to # the same directory that CATALINA_HOME points to.
Je suis sûr que vous saurez si votre installation fonctionne ou non lorsque vous démarrez votre serveur.
Le fait de pointer CATALINA_BASE
vers un répertoire différent de CATALINA_HOME
vous permet de séparer le répertoire de configuration du répertoire des fichiers binarys.
Par défaut, CATALINA_BASE
(configurations) et CATALINA_HOME
(fichiers binarys) pointent vers le même dossier, mais séparer les configurations des fichiers binarys peut vous aider à exécuter plusieurs instances de Tomcat côte à côte sans dupliquer les fichiers binarys.
Il est également utile lorsque vous souhaitez mettre à jour les fichiers binarys, sans modifier, ou devez sauvegarder / restaurer vos fichiers de configuration pour Tomcat.
Il existe un moyen plus simple de définir CATALINA_BASE maintenant avec l’utilitaire makebase
. J’ai posté un tutoriel sur ce sujet à l’ adresse http://blog.rasia.io/blog/how-to-easily-setup-lucee-in-tomcat.html ainsi qu’un tutoriel vidéo sur https://youtu.be / nuugoG5c-7M
Pour tirer parti de cette fonctionnalité, créez simplement le répertoire config et pointez-le avec la variable d’environnement CATALINA_BASE
. Vous devrez placer des fichiers dans ce répertoire:
conf
répertoire d’installation Tomcat d’origine, y compris son contenu, et vérifiez que Tomcat dispose des droits de lecture nécessaires. Modifiez les fichiers de configuration en fonction de vos besoins. logs
si conf/logging.properties
pointe vers ${catalina.base}/logs
et assurez-vous que Tomcat dispose des droits de lecture / écriture. temp
si vous ne remplacez pas la valeur par défaut de $CATALINA_TMPDIR
qui pointe vers ${CATALINA_BASE}/temp
et assurez-vous que Tomcat dispose des droits d’access en écriture. work
dont la valeur par défaut est ${CATALINA_BASE}/work
et assurez-vous que Tomcat dispose des droits d’access en écriture. CATALINA_BASE est facultatif.
Toutefois, dans les scénarios suivants, il est utile de configurer CATALINA_BASE, distinct de CATALINA_HOME.
Lorsque plus d’une instance de tomcat s’exécute sur le même hôte
Séparation des préoccupations (responsabilité unique)
C’est le dossier parent de bin qui contient le fichier tomcat.exe:
CATALINA_HOME='C:\Program Files\Apache Software Foundation\Tomcat 6.0'
CATALINA_BASE
est identique à CATALINA_HOME
.