programing

tomcat-CATALINA_BASE 및 CATALINA_HOME 변수

nasanasas 2020. 9. 5. 10:01
반응형

tomcat-CATALINA_BASE 및 CATALINA_HOME 변수


동일한 서버 (Linux)에서 실행중인 tomcat 6의 여러 인스턴스가 있으며 예상대로 작동합니다. CATALINA_HOMECATALINA_BASE변수 설정과 관련하여 표준 관행이 무엇인지 알아 보려고 합니다.

내 tomcat 설치에서 CATALINA_HOME"공통"폴더 (예 :) 를 가리 키도록 설정 /tomcat6했으며 CATALINA_BASE변수는 인스턴스 이름 (예 : /tomcat_instance1, /tomcat_instance2) 에 따라 다릅니다.

내 질문은 다음과 같습니다.

  • 정말 두 개의 변수가 필요합니까?
  • 또는 캔 난 그냥 하나를 가지고 CATALINA_HOME와 멀리 할 CATALINA_BASE(또는 그 반대)?

단일 호스트에서 Tomcat의 여러 인스턴스를 실행하는 경우 각 인스턴스에 대해 또는 디렉토리와 CATALINA_BASE동일하게 설정 하고 두 인스턴스간에 파일을 공유 할 일반 Tomcat 설치에 대한 환경 변수를 설정해야합니다..../tomcat_instance1.../tomcat_instance2CATALINA_HOME

CATALINA_BASE호스트에 하나의 톰캣 인스턴스를 실행하고 기본값으로 설정됩니다 경우 환경은 선택 사항입니다 CATALINA_HOME경우에. 여러 인스턴스를있는 그대로 실행하는 경우 제공되어야합니다.

Advanced Configuration-Multiple Tomcat InstancesRUNNING.txt 라는 제목 아래 Apache Tomcat 배포의 루트 에있는 파일 에이 설정에 대한 꽤 좋은 설명이 있습니다.


CATALINA_HOME vs CATALINA_BASE

여러 인스턴스를 실행하는 경우 두 변수가 모두 필요하고 그렇지 않으면 CATALINA_HOME.

즉 : CATALINA_HOME필수 항목이며 CATALINA_BASE선택 사항입니다.

CATALINA_HOME Tomcat 설치의 루트를 나타냅니다.

선택적으로 Tomcat은 $CATALINA_BASE각 인스턴스에 대해 정의 하여 여러 인스턴스에 대해 구성 할 수 있습니다 . 여러 인스턴스가 구성되지 않은 경우과 $CATALINA_BASE동일합니다 $CATALINA_HOME.

참조 : Apache Tomcat 7-소개

별도로 실행되며 RUNNING.txt에 다음 CATALINA_HOMECATALINA_BASE같이 문서화되어 있습니다.

CATALINA_HOMECATALINA_BASE환경 변수는 각각 아파치 톰캣의 위치 및 활성 구성의 위치를 지정하는데 사용된다.

CATALINA_HOMECATALINA_BASE변수는 setenv해당 파일을 찾는 데 사용되기 때문에 스크립트 에서 구성 할 수 없습니다 .

예를 들면 :

(4.1) 다음 명령 중 하나를 실행하여 Tomcat을 시작할 수 있습니다.

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

  $CATALINA_HOME/bin/startup.sh           (Unix)

또는

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

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

여러 Tomcat 인스턴스

많은 상황에서 동일한 서버의 여러 사용자가 공유하는 Tomcat 바이너리 배포의 단일 사본을 갖는 것이 바람직합니다. 이를 가능하게하려면 CATALINA_BASE'개인'Tomcat 인스턴스에 대한 파일이 포함 된 디렉토리에 환경 변수를 설정할 수 있습니다 .

별도의 CATALINA_HOME및로 실행하는 CATALINA_BASE경우 파일 및 디렉토리는 다음과 같이 분할됩니다.

에서 CATALINA_BASE:

  • bin -전용 : setenv.sh (* nix) 또는 setenv.bat (Windows), tomcat-juli.jar
  • conf -서버 구성 파일 (server.xml 포함)
  • lib -아래 설명 된 라이브러리 및 클래스
  • logs -로그 및 출력 파일
  • webapps -자동으로로드되는 웹 애플리케이션
  • work -웹 애플리케이션을위한 임시 작업 디렉토리
  • temp -JVM에서 임시 파일로 사용하는 디렉토리>

에서 CATALINA_HOME:

  • bin -시작 및 종료 스크립트
  • lib -아래 설명 된 라이브러리 및 클래스
  • endorsed-표준 "승인 된 표준"을 재정의하는 라이브러리. 기본적으로 없습니다.

확인 방법

귀하의 계정이 무엇인지 확인하는 가장 쉬운 방법 다음 CATALINA_BASE과 같이 CATALINA_HOME실행하는 것 startup.sh입니다.

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

dpkg아래 도구 (Debian / Ubuntu)를 사용 하여 Tomcat 파일이 설치된 위치를 확인할 수도 있습니다 .

dpkg -L tomcat7-common

모범 사례를 안다고 말할 수는 없지만 여기에 내 관점이 있습니다.

있습니까 당신은 아무것도에 대한 이러한 변수를 사용하고 계십니까?

Personally, I haven't needed to change neither, on Linux nor Windows, in environments varying from development to production. Unless you are doing something particular that relies on them, chances are you could leave them alone.

catalina.sh sets the variables that Tomcat needs to work out of the box. It also says that CATALINA_BASE is optional:

#   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.

I'm pretty sure you'll find out whether or not your setup works when you start your server.


Pointing CATALINA_BASE to a different directory from CATALINA_HOME allows you to separate the configuration directory from the binaries directory.

By default, CATALINA_BASE (configurations) and CATALINA_HOME (binaries) point to the same folder, but separating the configurations from the binaries can help you to run multiple instances of Tomcat side by side without duplicating the binaries.

It is also useful when you want to update the binaries, without modifying, or needing to backup/restore your configuration files for Tomcat.

Update 2018

There is an easier way to set CATALINA_BASE now with the makebase utility. I have posted a tutorial that covers this subject at http://blog.rasia.io/blog/how-to-easily-setup-lucee-in-tomcat.html along with a video tutorial at https://youtu.be/nuugoG5c-7M

Original answer continued below

To take advantage of this feature, simply create the config directory and point to it with the CATALINA_BASE environment variable. You will have to put some files in that directory:

  • Copy the conf directory from the original Tomcat installation directory, including its contents, and ensure that Tomcat has read permissions to it. Edit the configuration files according to your needs.
  • Create a logs directory if conf/logging.properties points to ${catalina.base}/logs, and ensure that Tomcat has read/write permissions to it.
  • Create a temp directory if you are not overriding the default of $CATALINA_TMPDIR which points to ${CATALINA_BASE}/temp, and ensure that Tomcat has write permissions to it.
  • Create a work directory which defaults to ${CATALINA_BASE}/work, and ensure that Tomcat has write permissions to it.

CATALINA_BASE is optional.

However, in the following scenarios it helps to setup CATALINA_BASE that is separate from CATALINA_HOME.

  1. When more than 1 instances of tomcat are running on same host

    • This helps have only 1 runtime of tomcat installation, with multiple CATALINA_BASE server configurations running on separate ports.
    • If any patching, or version upgrade needs be, only 1 installation changes required, or need to be tested/verified/signed-off.
  2. Separation of concern (Single responsibility)

    • Tomcat runtime is standard and does not change during every release process. i.e. Tomcat binaries
    • Release process may add more stuff as webapplication (webapps folder), environment configuration (conf directory), logs/temp/work directory

That is the parent folder of bin which contains tomcat.exe file:

CATALINA_HOME='C:\Program Files\Apache Software Foundation\Tomcat 6.0'

CATALINA_BASE is the same as CATALINA_HOME.

참고URL : https://stackoverflow.com/questions/3090398/tomcat-catalina-base-and-catalina-home-variables

반응형