CATALINA_HOME vs. CATALINA_BASE


11

Non riesco a trovare una risposta definitiva al motivo per cui Ubuntu imposta la CATALINA_BASEvariabile di ambiente, rendendola diversa da CATALINA_HOME. Ho trovato questo documento che suggerisce che non impostare CATALINA_BASElo renderebbe equivalente CATALINA_HOME. Tale documento suggerisce inoltre che CATALINA_BASEsarebbe stata effettuata un'impostazione per rendere disponibili più istanze.

Tuttavia, non riesco a trovare nulla che spieghi questo. Presumibilmente, correre con un singolo CATALINA_HOMEè stato buono per molto tempo, ma Ubuntu è passato.

Ho trovato questa domanda con una risposta illuminante su Ask Ubuntu, ma non c'è molto in particolare sul CATALINA_HOMErispetto CATALINA_BASE. Tale domanda allude al parametro "appBase", che è documentato nella documentazione Tomcat6 per il contenitore Host nel file di configurazione.

Ecco le domande: perché queste due variabili sono separate? Quando dovrebbero essere separati? Cosa consente all'amministratore di fare? Che cosa collochi in ogni directory? Quando queste due variabili dovrebbero essere uguali? Cosa raccomanda ASF per la pratica standard?


Risposte:


12

Perché queste due variabili sono separate?

catalina.home indica la posizione delle informazioni comuni.
catalina.base punta alla directory in cui sono contenute tutte le informazioni specifiche dell'istanza .

Quindi hai 1 casa e puoi avere più di 1 base.

Quando dovrebbero essere separati? Quando queste due variabili dovrebbero essere uguali?

Se hai 1 tomcat puoi impostarlo sullo stesso valore, ma le buone pratiche ti suggerirebbero di pianificare in anticipo e tenerli separati: non sai mai se hai bisogno di più di un tomcat. Ubuntu ha iniziato a seguire questo modo di pensare perché è più logico: rende più semplice eseguire 2+ tomcat ma non disabilita l'esecuzione di 1 tomcat in cui impostarli entrambi sullo stesso valore richiederebbe a tutti di modificare il valore di base. Ha più senso mantenerli diversi.

Cosa consente all'amministratore di fare?

Consenti l'esecuzione di più di 1 tomcat contemporaneamente in cui ogni istanza di Tomcat può avere le proprie app.

Che cosa collochi in ogni directory?

La casa contiene il binairy.
Base contiene conf, log, webapps, lavoro e temp. 1 per ogni istanza di Tomcat.


4

CATALINA_HOME vs CATALINA_BASE

Se stai eseguendo più istanze, allora hai bisogno di entrambe le variabili, altrimenti solo CATALINA_HOME.

In altre parole: CATALINA_HOMEè obbligatorio ed CATALINA_BASEè facoltativo.

CATALINA_HOME rappresenta la radice dell'installazione Tomcat.

Facoltativamente, Tomcat può essere configurato per più istanze definendo $CATALINA_BASEper ciascuna istanza. Se non sono configurate più istanze, $CATALINA_BASEè uguale a $CATALINA_HOME.

Vedi: Apache Tomcat 7 - Introduzione

In esecuzione con separato CATALINA_HOMEed CATALINA_BASEè documentato in RUNNING.txt che dice:

Le variabili di ambiente CATALINA_HOMEe CATALINA_BASEsono utilizzate per specificare rispettivamente la posizione di Apache Tomcat e la posizione della sua configurazione attiva.

Non è possibile configurare CATALINA_HOMEe CATALINA_BASEvariabili nello setenvscript, poiché vengono utilizzate per trovare quel file.

Per esempio:

(4.1) Tomcat può essere avviato eseguendo uno dei seguenti comandi:

  %CATALINA_HOME%\bin\startup.bat         (Windows)

  $CATALINA_HOME/bin/startup.sh           (Unix)

o

  %CATALINA_HOME%\bin\catalina.bat start  (Windows)

  $CATALINA_HOME/bin/catalina.sh start    (Unix)

Istanze multiple di Tomcat

In molte circostanze, è preferibile avere una singola copia di una distribuzione binaria Tomcat condivisa tra più utenti sullo stesso server. Per rendere ciò possibile, è possibile impostare la CATALINA_BASE variabile di ambiente sulla directory che contiene i file per l'istanza Tomcat "personale".

Quando si esegue con un CATALINA_HOMEe separato CATALINA_BASE, i file e le directory sono suddivisi come segue:

In CATALINA_BASE:

  • bin - Solo: setenv.sh (* nix) o setenv.bat (Windows), tomcat-juli.jar
  • conf - File di configurazione del server (incluso server.xml)
  • lib - Librerie e classi, come spiegato di seguito
  • logs - Registro e file di output
  • webapps - Applicazioni Web caricate automaticamente
  • work - Directory di lavoro temporanee per applicazioni Web
  • temp - Directory utilizzata da JVM per i file temporanei>

In CATALINA_HOME:

  • bin - Script di avvio e spegnimento
  • lib - Librerie e classi, come spiegato di seguito
  • endorsed- Librerie che sostituiscono gli "Standard approvati" standard. Di default è assente.

Come controllare

Il modo più semplice per verificare qual è il tuo CATALINA_BASEed CATALINA_HOMEè eseguendo startup.sh, ad esempio:

$ /usr/share/tomcat7/bin/startup.sh
Using CATALINA_BASE:   /usr/share/tomcat7
Using CATALINA_HOME:   /usr/share/tomcat7

Puoi anche controllare dove sono installati i file Tomcat, con lo dpkgstrumento come sotto (Debian / Ubuntu):

dpkg -L tomcat7-common

3

Oltre ad essere il modo migliore per eseguire due istanze di Tomcat, semplifica l'aggiornamento.

Sto usando questa configurazione.

<!-- language: bash -->

/opt/apache-tomcat-7.0-32
/opt/apache-tomcat-7.0.39
/opt/apache-tomcat-7       (simbolic link to apache-tomcat-7.0.32)

CATALINA_HOME = / opt / apache-tomcat-7

/srv/user_deploys/tomcat_product_a
/srv/user_deploys/tomcat_product_b

CATALINA_BASE punta a una o l'altra directory di distribuzione.

I binari e le librerie di base sono /opt/solo Copia server.xml, web.xml(e alcuni altri file, leggi i documenti, per favore) e crea cartelle bin, log, webapps, temp, work (RTLM, L come amore, per favore)

Puoi aggiornare i binari tomcat modificando CATALINA_HOMEil file $ CATALINA_BASE / bin / setenv.sh per ogni istanza oppure puoi semplicemente modificare il collegamento simbolico, aggiornando i binari "a livello globale"

È più facile aggiornarlo anche se hai solo un'istanza.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.