Tenho várias instâncias do tomcat 6 em execução no mesmo servidor (Linux) e funciona conforme o esperado. Estou tentando descobrir qual é a prática padrão em relação à configuração das variáveis CATALINA_HOME
e CATALINA_BASE
.
Na minha instalação do tomcat, configurei CATALINA_HOME
para apontar para uma pasta "comum" (digamos /tomcat6
) e a CATALINA_BASE
variável varia dependendo do nome da instância (digamos /tomcat_instance1
, /tomcat_instance2
)
Minha pergunta é esta:
- Eu realmente preciso de duas variáveis?
- Ou posso apenas ter um
CATALINA_HOME
e acabar comCATALINA_BASE
(ou vice-versa)?
java
tomcat
environment-variables
souser
fonte
fonte
$CATALINA_HOME
) da manutenção da configuração e do conteúdo da instância do Tomcat (que reside$CATALINA_BASE
).Respostas:
Se você estiver executando várias instâncias do Tomcat em um único host, deve definir
CATALINA_BASE
para ser igual ao diretório.../tomcat_instance1
ou.../tomcat_instance2
conforme apropriado para cada instância e aCATALINA_HOME
variável de ambiente para a instalação comum do Tomcat cujos arquivos serão compartilhados entre as duas instâncias.O
CATALINA_BASE
ambiente é opcional se você estiver executando uma única instância do Tomcat no host e será o padrãoCATALINA_HOME
nesse caso. Se você estiver executando várias instâncias como está, ele deve ser fornecido.Há uma descrição muito boa dessa configuração no
RUNNING.txt
arquivo na raiz da distribuição do Apache Tomcat sob o título Configuração avançada - Várias instâncias do Tomcatfonte
CATALINA_HOME
vsCATALINA_BASE
Se você estiver executando várias instâncias, precisará de ambas as variáveis; caso contrário, apenas
CATALINA_HOME
.Em outras palavras:
CATALINA_HOME
é obrigatório eCATALINA_BASE
opcional.CATALINA_HOME
representa a raiz da instalação do Tomcat.Veja: Apache Tomcat 7 - Introdução
Executando com separado
CATALINA_HOME
eCATALINA_BASE
está documentado em RUNNING.txt que diz:Por exemplo:
Várias instâncias do Tomcat
Como verificar
A maneira mais fácil de verificar qual é a sua
CATALINA_BASE
eCATALINA_HOME
está executandostartup.sh
, por exemplo:Você também pode verificar onde os arquivos Tomcat estão instalados, pela
dpkg
ferramenta abaixo (Debian / Ubuntu):fonte
Não posso dizer que conheço as melhores práticas, mas aqui está minha perspectiva.
Você está usando essas variáveis para alguma coisa?
Pessoalmente, não precisei mudar nem, no Linux nem no Windows, em ambientes que variam do desenvolvimento à produção. A menos que você esteja fazendo algo específico que dependa deles, é provável que você os deixe sozinhos.
catalina.sh
define as variáveis que o Tomcat precisa para funcionar imediatamente. Também diz queCATALINA_BASE
é opcional:Tenho certeza de que você descobrirá se sua configuração funciona ou não ao iniciar o servidor.
fonte
catalina_home
caminho no\bin\catalina.sh
arquivo para ambas as instâncias do tomcat ??Apontar
CATALINA_BASE
para um diretório diferente deCATALINA_HOME
permite separar o diretório de configuração do diretório binários.Por padrão,
CATALINA_BASE
(configurações) eCATALINA_HOME
(binários) apontam para a mesma pasta, mas separar as configurações dos binários pode ajudá-lo a executar várias instâncias do Tomcat lado a lado sem duplicar os binários.Também é útil quando você deseja atualizar os binários, sem modificar ou precisar fazer backup / restaurar seus arquivos de configuração para Tomcat.
Atualização 2018
Existe uma maneira mais fácil de configurar CATALINA_BASE agora com o
makebase
utilitário. Publiquei um tutorial que cobre esse assunto em http://blog.rasia.io/blog/how-to-easily-setup-lucee-in-tomcat.html junto com um tutorial em vídeo em https://youtu.be / nuugoG5c-7MA resposta original continua abaixo
Para tirar proveito desse recurso, basta criar o diretório config e apontar para ele com a
CATALINA_BASE
variável de ambiente. Você terá que colocar alguns arquivos nesse diretório:conf
diretório do diretório de instalação original do Tomcat, incluindo seu conteúdo, e certifique-se de que o Tomcat tenha permissões de leitura para ele. Edite os arquivos de configuração de acordo com suas necessidades.logs
diretório seconf/logging.properties
apontar para${catalina.base}/logs
e certifique-se de que o Tomcat tenha permissões de leitura / gravação para ele.temp
diretório se não estiver substituindo o padrão para o$CATALINA_TMPDIR
qual aponta${CATALINA_BASE}/temp
e certifique-se de que o Tomcat tenha permissões de gravação nele.work
diretório com o padrão${CATALINA_BASE}/work
e certifique-se de que o Tomcat tenha permissões de gravação nele.fonte
CATALINA_BASE é opcional.
No entanto, nos cenários a seguir, é útil configurar CATALINA_BASE que é separado de CATALINA_HOME.
Quando mais de 1 instância do tomcat está sendo executada no mesmo host
Separação de preocupações (responsabilidade única)
fonte
Essa é a pasta pai de bin que contém o arquivo tomcat.exe:
CATALINA_BASE
é o mesmo queCATALINA_HOME
.fonte