반응형
Tomcat은 Apache/Nginx와 연동하여 많이 사용되는 오픈소스 WAS로 JavaEE표준으로 개발되었다.
이 포스팅에서는 간단한 Tomcat의 설치 및 기본구조를 설명한다.
1. 설치
- Tomcat은 별도의 컴파일 없이 압축을 풀어 사용이 가능하다.
- 아래 URL에서 버전 및 OS를 선택하여 다운로드 가능하다.
(8.5와 9버전이 많이 사용되고 있지만 8.5의 경우 2024/03/31 EoL을 앞두고 있다.) - https://tomcat.apache.org/download-90.cgi
2. 디렉토리 구조
- 압축을 풀면 bin, lib, logs, webapps, work, temp, conf 디렉토리가 존재한다.
- bin : Tomcat 실행에 필요한 스크립트 및 바이너리가 존재
- lib : Tomcat 실행시 필요한 library들이 존재
- conf : Tomcat 설정 파일들이 존재
- webapps : WebApplication들이 위치
- work : jsp가 서블릿으로 변환되고 컴파일되는 java, class파일 및 unpacking된 war파일등이 존재
- logs : log파일이 쌓이는 위치
3. 구성 방식
- 기본적으로 startup.sh, shutdown.sh에서 catalina.sh의 정보를 읽어 Tomcat을 기동/종료 한다.
- Tomcat은 기본적으로 CATALINA_HOME과 CATALINA_BASE 라는 환경변수를 기준으로 설정한다.
- CATALINA_HOME : Tomcat엔진의 설치경로로 bin, lib등의 공통 디렉토리가 존재한다.
- CATALINA_BASE : 인스턴스별 공간으로 conf, webapps 등이 존재한다.
- bin/catalina.sh에 CATALINA_BASE를 분리하여 인스턴스별로 jvm option을 나누고 각각 기동/종료를 한다.
- 아래 예시에서 instance1과 instance2는 각각 CATALINA_BASE가 나누어져 있으며 각각의 경로에는
각 인스턴스별 conf, webapps 디렉토리등이 존재한다. - startup.sh과 shutdown.sh을 각 인스턴스별로 생성하여 기동, 종료 한다.
- startup_instance1.sh
EXECUTABLE=catalina_instance1.sh
- catalina_instance1.sh
CATALINA_BASE=/webwas/tomcat8/instance1
CATALINA_PID=$CATALINA_BASE/logs/instance1.pid
JAVA_OPTS="-Xms1048m -Xmx1048m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m"
JAVA_OPTS="${JAVA_OPTS} -XX:+DisableExplicitGC -verbose:gc -Xloggc:/webwas/tomcat8/logs/gclog/instance1_gc_$(date +%Y.%m.%d_%H%M%S).log"
JAVA_OPTS="${JAVA_OPTS} -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC"
JAVA_OPTS="${JAVA_OPTS} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/webwas/tomcat8/logs/dump"
- startup_instance2.sh
EXECUTABLE=catalina_instance2.sh
- catalina_instance2.sh
CATALINA_BASE=/webwas/tomcat8/instance2
CATALINA_PID=$CATALINA_BASE/logs/instance2.pid
JAVA_OPTS="-Xms1048m -Xmx1048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m"
JAVA_OPTS="${JAVA_OPTS} -XX:+DisableExplicitGC -verbose:gc -Xloggc:/webwas/tomcat8/logs/gclog/instance2_gc_$(date +%Y.%m.%d_%H%M%S).log"
JAVA_OPTS="${JAVA_OPTS} -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC"
JAVA_OPTS="${JAVA_OPTS} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/webwas/tomcat8/logs/dump"
반응형
이번 포스팅에서는 기본적인 설치 및 인스턴스별 기동/종료 구성내용을 담았다.
다음 포스팅에는 실제로 구성된 환경과 여러가지 설정방법등을 이야기 하겠다.
반응형
'미들웨어 > Apache,Tomcat' 카테고리의 다른 글
Tomcat Session Clustering 설정 (0) | 2023.03.05 |
---|---|
Tomcat JNDI DataSource 설정 (0) | 2023.03.04 |
Apache mod_security를 사용한 보안강화 (0) | 2023.03.02 |
Apache mod_jk timeout 정리 (0) | 2023.02.28 |
mod_status를 사용한 Apache monitoring (0) | 2023.02.21 |