programing

Tomcat - Catalina_BASE 및 Catalina_HOME 변수

newsource 2022. 9. 16. 21:05

Tomcat - Catalina_BASE 및 Catalina_HOME 변수

Tomcat 6의 여러 인스턴스가 동일한 서버(Linux)에서 실행되고 있으며 예상대로 작동합니다.나는 표준적인 관행이 무엇인지를 알아내려고 한다.CATALINA_HOME그리고.CATALINA_BASE변수입니다.

Tomcat 설치 환경에 셋업이 있습니다.CATALINA_HOME공통 폴더를 가리키다/tomcat6)와CATALINA_BASE변수는 인스턴스 이름에 따라 달라집니다(예:/tomcat_instance1,/tomcat_instance2)

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

  • 두 가지 변수가 정말 필요한가요?
  • 아니면 하나만 줘도 돼?CATALINA_HOME을 없애다CATALINA_BASE(또는 그 반대)

단일 호스트에서 여러 Tomcat 인스턴스를 실행하는 경우 다음을 설정해야 합니다.CATALINA_BASE에 필적하다.../tomcat_instance1또는.../tomcat_instance2각 인스턴스에 적절한 디렉토리 및CATALINA_HOME두 인스턴스 간에 파일을 공유하는 일반적인 Tomcat 설치에 대한 환경 변수입니다.

CATALINA_BASE호스트에서 단일 Tomcat 인스턴스를 실행하는 경우 환경은 선택 사항이며 기본적으로CATALINA_HOME그런 경우에는요.여러 인스턴스를 현재 실행 중인 경우 해당 인스턴스를 제공해야 합니다.

이 설정에 대한 자세한 내용은RUNNING.txtApache Tomcat 배포 루트의 [Advanced Configuration - Multiple Tomcat Instances]라는 제목에 있는 파일

CATALINA_HOMECATALINA_BASE

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

즉, 다음과 같습니다.CATALINA_HOME필수 및CATALINA_BASE는 옵션입니다.

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

필요에 따라 Tomcat을 여러 인스턴스에 대해 설정할 수 있습니다.$CATALINA_BASE각 인스턴스에 대해여러 인스턴스가 설정되어 있지 않은 경우$CATALINA_BASE와 같다$CATALINA_HOME.

Apache Tomcat 7 - 개요 참조

별도 실행CATALINA_HOME그리고.CATALINA_BASERUNNING.txt에 기재되어 있는 내용은 다음과 같습니다.

CATALINA_HOME그리고.CATALINA_BASE환경 변수는 Apache Tomcat의 위치와 활성 구성의 위치를 각각 지정하는 데 사용됩니다.

설정할 수 없습니다.CATALINA_HOME그리고.CATALINA_BASE의 변수setenvscript는 파일을 찾는 데 사용되기 때문입니다.

예를 들어 다음과 같습니다.

(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-dombat.jar
  • conf- 서버 구성 파일(server.xml 포함)
  • lib- 아래 설명과 같은 라이브러리 및 클래스
  • logs- 로그 및 출력 파일
  • webapps- 자동으로 로드되는 웹 응용 프로그램
  • work- 웹 어플리케이션용 임시 작업 디렉토리
  • temp- JVM이 임시 파일에 사용하는 디렉토리 >

CATALINA_HOME:

  • bin- 부팅 및 종료 스크립트
  • lib- 아래 설명과 같은 라이브러리 및 클래스
  • endorsed- 표준 "Endored Standards"를 덮어쓰는 라이브러리.기본적으로는 없습니다.

확인하는 방법

가장 쉬운 방법으로 고객님의 제품을CATALINA_BASE그리고.CATALINA_HOME실행함으로써startup.sh예를 들어 다음과 같습니다.

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

Tomcat 파일이 설치된 위치를 확인할 수도 있습니다.dpkg다음과 같은 툴(데비안/우분투):

dpkg -L tomcat7-common

포인팅CATALINA_BASE에서 다른 디렉토리로CATALINA_HOME그럼 컨피규레이션디렉토리와 바이너리 디렉토리를 분리할 수 있습니다.

디폴트로는CATALINA_BASE(설명서) 및CATALINA_HOME(바이너리)는 같은 폴더를 가리키지만 구성을 바이너리에서 분리하면 바이너리를 복제하지 않고 Tomcat의 여러 인스턴스를 나란히 실행할 수 있습니다.

또한 Tomcat용 구성 파일을 수정하거나 백업/복원하지 않고 바이너리를 업데이트하려는 경우에도 유용합니다.

2018년 갱신

CATALINA_BASE를 설정하는 간단한 방법이 있습니다.makebase효용.저는 이 주제를 다루는 튜토리얼을 http://blog.rasia.io/blog/how-to-easily-setup-lucee-in-tomcat.html에서 비디오 튜토리얼과 함께 올렸습니다.https://youtu.be/nuugoG5c-7M

원래 답변은 다음과 같습니다.

이 기능을 이용하려면 , 설정 디렉토리를 작성해, 를 참조해 주세요.CATALINA_BASE환경 변수입니다.이 디렉토리에 몇 가지 파일을 저장해야 합니다.

  • 복사하다conf내용을 포함하여 원래 Tomcat 설치 디렉토리의 디렉토리 및 Tomcat에 대한 읽기 권한이 있는지 확인합니다.필요에 따라 구성 파일을 편집합니다.
  • 작성하다logs디렉토리 ifconf/logging.properties가리키다${catalina.base}/logsTomcat이 읽기/쓰기 권한을 가지고 있는지 확인합니다.
  • 작성하다temp디렉토리(디폴트를 덮어쓰지 않는 경우)$CATALINA_TMPDIR그 점을 가리키고 있다${CATALINA_BASE}/tempTomcat에 대한 쓰기 권한이 있는지 확인합니다.
  • 작성하다work디폴트 디렉토리${CATALINA_BASE}/workTomcat에 대한 쓰기 권한이 있는지 확인합니다.

베스트 프랙티스를 안다고는 할 수 없지만, 제 견해는 이렇습니다.

당신은 이 변수들을 어떤 것에 사용하고 있습니까?

개인적으로 Linux에서도 Windows에서도 개발 환경에 따라 다른 환경을 변경할 필요가 없었습니다.여러분이 그들에게 의지하는 특별한 일을 하고 있지 않다면, 여러분은 그들을 내버려 둘 수 있습니다.

catalina.sh는 Tomcat이 즉시 동작하기 위해 필요한 변수를 설정합니다.라고도 쓰여 있다.CATALINA_BASE는 옵션입니다.

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

서버를 기동해 보면, 설정이 동작하고 있는지 아닌지를 알 수 있을 것입니다.

CatalINA_BASE는 옵션입니다.

다만, 다음의 시나리오에서는, Catalina_HOME 와는 다른 Catalina_BASE 를 설정하는 것이 도움이 됩니다.

  1. 동일한 호스트에서 둘 이상의 Tomcat 인스턴스가 실행되고 있는 경우

    • 이것에 의해, 복수의 CatalINA_BASE 서버 설정이 다른 포토상에서 실행되고 있는, 1개의 실행시에만 Tomcat 인스톨이 가능하게 됩니다.
    • 패치 적용 또는 버전 업그레이드가 필요한 경우 설치 변경은 1개만 필요하거나 테스트/검증/사인오프해야 합니다.
  2. 문제의 분리(단일 책임)

    • Tomcat 런타임은 표준이며 모든 릴리스 프로세스에서 변경되지 않습니다.Tomcat 바이너리
    • 릴리스 프로세스에서는 웹 애플리케이션(webapps 폴더), 환경 구성(conf 디렉토리), 로그/temp/work 디렉토리로 추가되는 경우가 있습니다.

이것은 Tomcat이 포함된 bin의 부모 폴더입니다.exe 파일:

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

CATALINA_BASE is is is is is와 CATALINA_HOME.

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