J'ai plusieurs instances de Tomcat 6 s'exécutant sur le même serveur (Linux) et cela fonctionne comme prévu. J'essaie de savoir quelle est la pratique habituelle en ce qui concerne la définition des variables CATALINA_HOME
Et CATALINA_BASE
.
Dans mon installation Tomcat, j’ai configuré CATALINA_HOME
Pour pointer vers un dossier "commun" (disons /Tomcat6
) Et la variable CATALINA_BASE
Varie en fonction du nom de l’instance (disons /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 même hôte, vous devez définir CATALINA_BASE
être égal au .../Tomcat_instance1
ou .../Tomcat_instance2
répertoire en fonction de chaque instance et du CATALINA_HOME
variable d’environnement vers l’installation Tomcat commune dont les fichiers seront partagés entre les deux instances.
Le CATALINA_BASE
L’environnement _ est facultatif si vous exécutez une seule instance Tomcat sur l’hôte et utilisera par défaut le nom CATALINA_HOME
dans ce cas. Si vous exécutez plusieurs instances telles quelles, vous devez les fournir.
Il y a une assez bonne description de cette configuration dans le RUNNING.txt
fichier à la racine de la distribution Apache Tomcat sous l’en-tête Configuration avancée - Plusieurs instances de Tomcat
CATALINA_HOME
contre CATALINA_BASE
Si vous exécutez plusieurs instances, vous avez besoin des deux variables, sinon, seul CATALINA_HOME
.
En d'autres termes: CATALINA_HOME
est requis et CATALINA_BASE
est facultatif.
CATALINA_HOME
représente la racine de votre installation Tomcat.
Tomcat peut éventuellement être configuré pour plusieurs instances en définissant
$CATALINA_BASE
pour chaque instance. Si plusieurs instances ne sont pas configurées,$CATALINA_BASE
est le même que$CATALINA_HOME
.
Voir: Apache Tomcat 7 - Introduction
Courir avec CATALINA_HOME
et CATALINA_BASE
est documenté dans RUNNING.txt qui dit:
Le
CATALINA_HOME
etCATALINA_BASE
Les variables d’environnement permettent de spécifier l’emplacement d’Apache Tomcat et l’emplacement de sa configuration active, respectivement.Vous ne pouvez pas configurer
CATALINA_HOME
etCATALINA_BASE
variables dans le scriptsetenv
, car elles permettent de 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 copie unique d'une distribution binaire Tomcat partagée entre plusieurs utilisateurs sur le même serveur. Pour rendre cela possible, vous pouvez définir le
CATALINA_BASE
variable d’environnement dans le répertoire contenant les fichiers de votre instance Tomcat "personnelle".Lors de l'exécution avec un
CATALINA_HOME
etCATALINA_BASE
, les fichiers et les répertoires sont divisés comme suit:Dans
CATALINA_BASE
:
bin
- uniquement: 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
- Journaux et fichiers de sortiewebapps
- Applications Web chargées automatiquementwork
- Répertoires de travail temporaires pour les applications Webtemp
- Répertoire utilisé par la machine virtuelle Java 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 remplaçant les "normes approuvées" standard. Par défaut c'est absent.
Le moyen le plus simple de vérifier quelle est votre CATALINA_BASE
et CATALINA_HOME
est en cours d'exécution 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, à l'aide de l'outil dpkg
comme ci-dessous (Debian/Ubuntu):
dpkg -L Tomcat7-common
Je ne peux pas dire que je connais la meilleure pratique, mais voici mon point de vue.
Est-ce que vous utilise ces variables pour quoi que ce soit?
Personnellement, je n'ai pas eu besoin de changer ni sous Linux ni Windows, ni dans des environnements variant du développement à la production. À moins que vous ne fassiez quelque chose de particulier qui repose sur eux, il est fort probable que vous puissiez les laisser seuls.
catalina.sh
définit les variables dont Tomcat a besoin pour fonctionner prêtes à l’emploi. 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 configuration fonctionne ou non lorsque vous démarrez votre serveur.
Montrer du doigt CATALINA_BASE
dans un répertoire différent de CATALINA_HOME
vous permet de séparer le répertoire de configuration du répertoire des fichiers binaires.
Par défaut, CATALINA_BASE
(configurations) et CATALINA_HOME
(fichiers binaires) pointent vers le même dossier, mais séparer les configurations des fichiers binaires peut vous aider à exécuter plusieurs instances de Tomcat côte à côte sans dupliquer les fichiers binaires.
Cela est également utile lorsque vous souhaitez mettre à jour les fichiers binaires, sans modification, ou si vous devez sauvegarder/restaurer vos fichiers de configuration pour Tomcat.
Il existe un moyen plus simple de définir CATALINA_BASE à l’aide de l’utilitaire makebase
. J'ai posté un tutoriel qui couvre ce sujet à http://blog.rasia.io/blog/how-to-easily-setup-lucee-in-Tomcat.html avec un tutoriel vidéo à https://youtu.be/nuugoG5c-7M
Pour tirer parti de cette fonctionnalité, créez simplement le répertoire config et pointez-le avec le fichier CATALINA_BASE
variable d'environnement. Vous devrez mettre quelques fichiers dans ce répertoire:
conf
à partir du répertoire d’installation Tomcat d’origine, y compris son contenu, et assurez-vous que Tomcat dispose des autorisations de lecture nécessaires. Éditez 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 autorisations de lecture/écriture nécessaires.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 en écriture.work
dont le nom par défaut est ${CATALINA_BASE}/work
et assurez-vous que Tomcat dispose des droits en écriture.CATALINA_BASE est facultatif.
Toutefois, dans les scénarios suivants, il est utile de configurer CATALINA_BASE de manière distincte 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)