[ 소개 ]
- 관리자와 웹 개발자 모두 시작하기전에 숙지해야 하는 몇가지 중요한 정보가 있는데 이 문서는 Tomcat 컨테이너의 개념과 용어에 대해 간약한 소개를 제공하며, 도움이 필요할 때 어떻게 해야 할지 설명한다.
[ 용어 ]
- 이 문서를 읽는 과정에서 여러가지 용어를 접하게 되는데 일부는 Tomcat 과 관련된 용어이고 다른 일부는 Servlet 과 JSP 스펙에 정의된 요어이다.
* Context - 이 용어는 WEB_Application 을 의미한다.
[ ★ 작성자 내용 추가 ★ ]
- Tomcat 설정에는 <Context> 라는 설정항목이 있으며 해당하는 특정 1개의 Application 속성에 대해서 정의한다.
- WAS 에서는 하나의 Application 을 Context 단위로 이야기 하며, context-path 를 이야기 할때의 Context 와 동일한 개념이다.
- 하나의 Tomcat 에 여러개의 Context 배포가 가능하고 Context 에 따른 접속 URL이 각각 달라진다. (아래 두개의 Context 는 각각 다른 Application 이다.)
1) ROOT(/) Context : http://도메인/
2) test Context : http://도메인/test/
[ 디렉토리 및 파일 ]
- 주요 Tomcat 디렉토리는 아래와 같다.
1. /bin
- 시작, 종료, 기타 스크립트가 들어있다.
1) Unix 시스템에서는 *.sh 파일이 사용되며, Windows 시스템에서는 *.bat 파일을 사용한다.
2) Windows 의 Win32 명령줄의 기능부족으로 추가적인 파일이 포함되어 있을 수 있다.
2. /conf
- 설정 파일과 관련 DTD 가 포함되어 있다.
- 가장 중요한 파일은 server.xml 이며, 컨테이너의 기본 구성 파일이다.
3. /logs
- 기본적으로 여기에 로그파일이 저장된다.
4. /webapps
- WEB_Appliation 이 위치하는 디렉토리
[ CATALINA_HOME / CATALINA_BASE ]
- 문서 전반에 걸쳐 아래 두개의 속성이 종종 언급된다.
1) CATALINA_HOME
- Tomcat 이 설치된 (루트) 경로를 나타낸다.
- 예) /home/tomcat/apache-tomcat-11.0.0 or C:\Program Files\apache-tomcat-11.0.0
2) CATALINA_BASE
- 특정 Tomcat 인스턴스의 런타임 구성 (루트) 경로를 나타낸다.
- 하나의 (PC)시스템에서 여러개의 Tomcat 인스턴스(프로세스)를 사용하려면 CATALINA_BASE 속성을 사용한다.
- Tomcat 멀티 인스턴스 설치방법 링크 참고
- 설정하지 않으면 CATALINA_HOME 과 동일한 값이 셋팅된다.
- 위 두개의 속성을 다른 경로로 설정을 하게되면
1) CATALINA_HOME 에는 .jar 파일 또는 바이너리 파일과 같은 정적 리소스가 포함된다.
2) CATALINA_BASE 에는 설정파일, 로그파일, 배포Application, 기타 (환경설정과 같은)런타임 요구사항이 포함된다.
1004lucifer
1. CATALINA_BASE 를 사용하는 이유
- 기본적으로 CATALINA_HOME 과 CATALINA_BASE 는 동일한 디렉토리를 가르키는데, 하나의 (PC)시스템에서 여러 Tomcat 인스턴스를 실행해야 하는경우 CATALINA_BASE 를 수동으로 설정한다.
- 이를 통해 다음과 같은 이점이 있다.
1) Tomcat 버전 업그레이드 관리가 더 쉬워진다.
- 모든 인스턴스가 하나의 CATALINA_HOME 에 있는 .jar 파일과 바이너리 파일을 공유하므로, 해당 파일을 최신 버전으로 업그레이드하면 동일한 CATALINA_HOME 디렉토리를 사용하는 모든 Tomcat 인스턴스에 변경사항이 적용된다.
2) 정적 .jar 파일의 중복 방지
3) 설정 공유
- 예를 들어 setenv 파일을 통해 설정 공유 가능 (OS에 따라 확장자는 .sh 나 .bat 가 된다.)
2. CATALINA_BASE 의 내용
- 아래의 디렉토리 구조를 고려하고 생성한다. 권장 디렉토리를 모두 생성하지 않으면 Tomcat 이 자동으로 디렉토리를 생성한다.
- 권한문제와 같이 필요한 디렉토리를 만들지 못하면 Tomcat 시작하지 않거나 올바르게 동작하지 않을 수 있다.
[ 디렉토리 목록 및 권장 사항 ]
1) bin 디렉토리 : setenv.sh, setenv.bat, tomcat-juli.jar 파일
- 권장 : X
- 순서 : CATALINA_BASE 먼저 로드, 파일 없으면 CATALINA_HOME 에서 로드
2) lib 디렉토리 : classpath 추가할 리소스가 있는 경로
- 권장 : O, Application 이 외부 라이브러리를 참조하는 경우
- 순서 : CATALINA_BASE 먼저 로드 후 CATALINA_HOME 이 두번째로 로드
3) logs 디렉토리 : 인스턴스별 로그파일 디렉토리
- 권장 : O => 필수 : O
4) webapps 디렉토리 : 자동으로 로드되는 Web Application 이 있는 디렉토리
- 권장 : O
- 순서 : CATALINA_BASE 만 해당함
5) work 디렉토리 : 배포된 웹 애플리케이션의 임시 작업 디렉토리
- 권장 : O
6) temp 디렉토리 : JVM이 임시파일을 저장하는데 사용하는 디렉토리
- 권장 : O
7) conf 디렉토리 : Tomcat 설정파일 디렉토리
- 필수 : O, 최소한 server.xml, web.xml 파일은 있어야 한다.
- CATALINA_HOME/conf 에서 모든 구성파일을 디렉토리로 복사하는것을 추천
- 순서 : CATALINA_BASE 먼저 로드, 파일 없으면 CATALINA_HOME 에서 로드
[ 추가 권장 사항 ]
1) tomcat-juli.jar 파일 수정
- 해당 파일은 수정하지 않는 것을 권장함.
- 하지만 특정 Tomcat 인스턴스에 맞는 로깅 구현이 필요한경우, CATALINA_BASE 에 있는 tomcat-juli.jar 파일을 교체할 수 있다. (Tomcat 로그 구성 링크 참고)
2) 설정 파일 복사
- CATALINA_HOME/conf 디렉토리의 모든 설정 파일을 CATALINA_BASE/conf 디렉토리로 복사 하는 것을 권장함.
- CATALINA_BASE 에 설정 파일이 없을 경우, CATALINA_HOME 을 찾지 않기 때문에 파일 누락 시 오류가 발생할 수 있다.
[ CATALINA_BASE 최소 요구사항 ]
- CATALINA_BASE 에는 반드시 아래 파일 및 디렉토리가 있어야 하며, 없을경우 Tomcat 이 시작되지 않거나 올바르게 동작되지 않을 수 있다.
1. conf 디렉토리
2. conf/server.xml 파일
3. conf/web.xml 파일
3. CATALINA_BASE 사용 방법
- CATALINA_BASE 속성은 환경변수 이며, 예를들어 Tomcat 시작 스크립트를 실행하기전에 설정할 수 있다.
1) Unix 환경 : CATALINA_BASE=/tmp/tomcat_base1 bin/catalina.sh start
2) Windows 환경 : CATALINA_BASE=C:\tomcat_base1 bin/catalina.bat start
[ ★ 작성자 내용 추가 ★ ]
- 하지만 대부분 이렇게 사용을 할 것이다.
[ Tomcat 구성 ]
- 이번 설명에서 컨테이너 구성 중에 사용되는 기본 정보를 설명했다.
- 구성 파일의 모든 정보는 시작 시 읽히므로 파일을 변경하면 Tomcat 컨테이너를 다시 시작해야 한다.
[ 도움 받을 곳 ]
- 문서에 없는 다른 이슈를 위해 아래에 다양한 웹 사이트와 메일링 리스트를 제공한다.
- 웹을 검색하다보면 Tomcat_11 버전이 아니라 이전버전에 대한 문서가 있을 수 있는데, 일부 문제와 해결방법은 Tomcat 버전에 따라 다르다는 것을 참고해야 한다.
- Current document - most documents will list potential hangups. Be sure to fully read the relevant documentation as it will save you much time and effort. There's nothing like scouring the web only to find out that the answer was right in front of you all along!
- Tomcat FAQ
- Tomcat WIKI
- Tomcat FAQ at jGuru
- Tomcat mailing list archives - numerous sites archive the Tomcat mailing lists. Since the links change over time, clicking here will search Google.
- The TOMCAT-USER mailing list, which you can subscribe to here. If you don't get a reply, then there's a good chance that your question was probably answered in the list archives or one of the FAQs. Although questions about web application development in general are sometimes asked and answered, please focus your questions on Tomcat-specific issues.
- The TOMCAT-DEV mailing list, which you can subscribe to here. This list is reserved for discussions about the development of Tomcat itself. Questions about Tomcat configuration, and the problems you run into while developing and running applications, will normally be more appropriate on the TOMCAT-USER list instead.
참고
- https://tomcat.apache.org/tomcat-11.0-doc/introduction.html
댓글
댓글 쓰기