2025. 2. 4. 11:12ㆍWAS/Tomcat
# 테스트 환경
- OS : Oracle Linux Server release 8.6
- JDK : 1.8
- Tomcat ver. : 9.0.89
Tomcat을 구성할 때 엔진은 하나로 두고 여러 개의 instances들을 구성하여 사용해야 할 때 필요한 방법이다.
# CATALINA 속성
Tomcat 공식 문서를 참조하면 2가지 속성이 존재한다.
- CATALINA_HOME: Tomcat 설치 경로 즉, Tomcat Engine 경로
- CATALINA_BASE: 특정 Tomcat 인스턴스의 런타임 구성의 경로 즉, 구성한 멀티 인스턴스 중 하나의 경로
위와 같이 2개의 속성으로 구분할 경우
CATALINA_HOME에는 바이너리 파일과 같은 정적 소스가 포함되고
CATALINA_BASE에는 conf 파일, log 파일, application 파일 및 기타 런타임 요구 사항들이 포함된다.
# 멀티 인스턴스 구성 시 장점
- CATALINA_BASE 경로만 수정해 주게 되며 엔진 경로는 하나이고 여러 인스턴스들을 쉽게 구성할 수 있다.
- CATALINA_HOME에 lib 폴더가 위치하여 각 BASE들이 참조하기 때문에 Tomcat version 업그레이드 작업이 쉬워진다.
# 구성 방법
1. 엔진 및 인스턴스 경로 구성
CATALINA_HOME : /test/tomcat/tomcat9.0.89
CATALINA_BASE : /test/tomcat/server1, /test/tomcat/server2

CATALINA_BASE엔 아래의 디렉터리들이 위치하게 된다.
- 각 인스턴스별 설정을 위한 conf 디렉토리
- 각 인스턴스별 로그 작성을 위한 logs 디렉터리
- 각 인스턴스별 애플리케이션 배포를 위한 webapps, work 디렉터리
- 각 인스턴스별 임시파일 저장을 위한 temp 디렉터리
- 각 인스턴스별 start, stop 스크립트

2. 각 인스턴스 별 스크립트 작성
server1의 start, stop 스크립트
## start.sh
CATALINA_HOME=/test/tomcat/tomcat9.0.89
CATALINA_BASE=/test/tomcat/server1
JAVA_HOME=/usr/java/jdk1.8.0_321
export CATALINA_HOME CATALINA_BASE JAVA_HOME
${CATALINA_HOME}/bin/startup.sh
## stop.sh
CATALINA_HOME=/test/tomcat/tomcat9.0.89
CATALINA_BASE=/test/tomcat/server1
JAVA_HOME=/usr/java/jdk1.8.0_321
export CATALINA_HOME CATALINA_BASE JAVA_HOME
${CATALINA_HOME}/bin/shutdown.sh
server2의 start, stop 스크립트
## start.sh
CATALINA_HOME=/test/tomcat/tomcat9.0.89
CATALINA_BASE=/test/tomcat/server2
JAVA_HOME=/usr/java/jdk1.8.0_321
export CATALINA_HOME CATALINA_BASE JAVA_HOME
${CATALINA_HOME}/bin/startup.sh
## stop.sh
CATALINA_HOME=/test/tomcat/tomcat9.0.89
CATALINA_BASE=/test/tomcat/server2
JAVA_HOME=/usr/java/jdk1.8.0_321
export CATALINA_HOME CATALINA_BASE JAVA_HOME
${CATALINA_HOME}/bin/shutdown.sh
3. start, shutdown port 변경
각 인스턴스 홈 경로에 존재하는 server.xml 파일 내에 작성되어 있는 시작 및 정지 port를 겹치지 않게 설정
server1 - 8080 / 8005
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
server2 - 8081 / 8006
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
<Server port="8006" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
4. 기동 및 정지 TEST
server1



server2



참고자료
https://tomcat.apache.org/tomcat-9.0-doc/introduction.html#CATALINA_HOME_and_CATALINA_BASE
Apache Tomcat 9 (9.0.98) - Introduction
Before you start using CATALINA_BASE, first consider and create the directory tree used by CATALINA_BASE. Note that if you do not create all the recommended directories, Tomcat creates the directories automatically. If it fails to create the necessary dire
tomcat.apache.org
'WAS > Tomcat' 카테고리의 다른 글
Tomcat DataSource 생성 (0) | 2025.02.05 |
---|---|
Jakarta EE 변경점 (0) | 2025.01.06 |
Tomcat 버전 및 EOS 날짜 (0) | 2025.01.06 |
Tomcat에 Application 배포하기 (0) | 2025.01.02 |