본문 바로가기

미들웨어/Apache,Tomcat

Tomcat 설치 및 기본구조

반응형

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
 

Apache Tomcat® - Apache Tomcat 9 Software Downloads

Welcome to the Apache Tomcat® 9.x software download page. This page provides download links for obtaining the latest version of Tomcat 9.0.x software, as well as links to the archives of older releases. Unsure which version you need? Specification version

tomcat.apache.org

 

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"

 

반응형

이번 포스팅에서는 기본적인 설치 및 인스턴스별 기동/종료 구성내용을 담았다.

다음 포스팅에는 실제로 구성된 환경과 여러가지 설정방법등을 이야기 하겠다.

반응형