개요
이번 글에서는 Apache Tomcat의 디렉토리 구조와 각 디렉토리 안의 파일들이 어떤 기능을 수행하는지 알아보고자 한다.
본 글은 Apache Tomcat 9 버전을 기준으로 작성되었다.
Tomcat 디렉토리 구조
/bin |
startup, shutdown, 기타 스크립트가 존재한다. sh 파일(유닉스 시스템)과 bat 파일(윈도우 시스템)은 기능적으로 동일하다. |
/conf |
설정 파일과 DTD와 연관된 파일이 존재한다. 가장 중요한 파일인 server.xml이 있으며 이 파일은 컨테이너의 주요 설정 파일이다. |
/logs |
기본적으로 이 디렉토리에 로그 파일이 생성된다. |
/webapps |
기본 webapps가 위치하는 디렉토리이다. |
/lib |
classpath에 추가되는 리소스가 위치한 디렉토리이다. |
/work |
Jsp 파일을 서블릿 형태로 변환한 java 파일과 class 파일이 저장되는 디렉토리이다. |
/temp |
JVM에 사용되는 임시 디렉토리이다. |
bin 디렉토리 파일
bat 파일은 윈도우에서 실행하는 batch 파일, sh 파일은 유닉스 계열에서 실행하는 shell script 파일이다.
bootstrap.jar |
Tomcat 서버가 구동될 때 사용되는 main() 메소드가 포함되어 있으며 클래스 로더가 클래스를 구현하는데에 필수적이다. |
tomcat-juil.jar |
로깅을 구현하는 java.util.logging API를 포함하고 있는 클래스이다. |
common-daemon.jar |
Apache Commons Daemon 프로젝트에 필요한 클래스이다. Catalina.sh 파일에 의해 빌드되지 않으며 bootstrap.jar 파일에 의해 참조된다. |
catalina.sh |
CATALINA 서버의 제어 스크립트이다. |
ciphers.sh |
지정된 알고리즘을 사용하는 다이제스트 암호를 설정하는 스크립트이다. |
configtest.sh |
CATALINA 서버의 설정 스크립트이다. |
daemon.sh |
Common Daemon에 사용되는 스크립트이다. |
digest.sh |
지정된 알고리즘을 사용하는 다이제스트 암호를 설정하는 스크립트이다. |
makebase.sh |
Tomcat 실행에 필요한 분산 디렉토리 구조를 생성하는 스크립트이다. |
setclasspath.sh |
JAVA_HOME 또는 JRE_HOME이 세팅되지 않았을 경우 세팅한다. |
shutdown.sh |
CATALINA 서버를 중지하는 스크립트이다. |
startup.sh |
CATALINA 서버를 시작하는 스크립트이다. |
tool-wrapper.sh |
커맨드 라인 도구에서 사용되는 Wrapper 스크립트이다. |
version.sh |
Tomcat의 정보를 표시해주는 스크립트이다. |
conf 디렉토리 파일
catalina.policy |
Tomcat의 보안 정책을 설정하는 파일이다. Catlina가 –security 옵션으로 실행될 때 시행되는 보안 정책을 설정할 수 있다. |
catalina.properties |
서버를 시작할 때 검색하는 서버, 공유 로더, JAR 등의 정보를 포함한다. |
context.xml |
세션, 쿠키 저장 경로등을 지정하는 설정 파일이다. |
jaspic-providers.xml |
사용자 인증 제공 방법에 대해 정의한 파일 |
logging.properties |
Tomcat 인스턴스의 로깅 설정 파일이다. tomcat-juli.jar 라이브러리를 활용하여 로깅 서비스를 제공한다. |
server.xml |
Tomcat 설정에서 가장 중요한 파일이다. Service, Connector, Host 등과 같은 주요 기능을 설정할 수 있다. |
tomcat-users.xml |
Tomcat의 manager 기능을 사용하기 위해 사용자 권한을 설청하는 파일이다. |
web.xml |
Tomcat의 환경설정 파일이며 서블릿, 필터, 인코딩 등을 설정할 수 있다. |
lib 디렉토리 파일
annotations-api.jar |
자바EE 어노테이션 클래스 파일 |
catalina.jar |
Tomcat의 Catalina 서블릿 컨테이너를 구현하는 파일 |
catalina-ant.jar |
Tomcat Catalina Ant 작업 파일 |
catalina-ha.jar |
고가용성 패키지 파일 |
catalina-storeconfig.jar |
서버 상태의 흐름을 XML 설정파일로 생성한다. |
catalina-tribes.jar |
그룹 커뮤니케이션 패키지 파일 |
ecj-*.jar |
이클립스 JDT 자바 컴파일러 파일 |
el-api.jar |
EL 3.0 API 파일 |
jasper.jar |
Tomcat Jasper JSP 컴파일러와 런타임 파일 |
jasper-el.jar |
Tomcat Jasper EL 구현 파일 |
jsp-api.jap |
JSP 2.3 API 파일 |
servlet-api.jar |
Servlet 4.0 API 파일 |
tomcat-api.jar |
Tomcat에 의해 정의되는 몇몇 인터페이스 파일 |
tomcat-coyote.jar |
Tomcat connector와 유틸리티 클래스 파일 |
tomcat-dpcp.jar |
데이터베이스 커넥션 풀을 구현하는 파일 |
tomcat-i18n-**.jar |
Tomcat 언어 패키지 파일 |
tomcat-jdbc.jar |
Tomcat JDBC pool로 알려진 대체 데이터베이스 커넥션 풀을 구현하는 파일 |
tomcat-util.jar |
Apache Tomcat의 다양한 컴포넌트에서 사용되는 일반 클래스 파일 |
tomcat-websocket.jar |
WebSocket 1.1 구현 파일 |
websocket-api.jar |
Websocket 1.1 API 파일 |
참조
Apache Tomcat 9 Docs : https://tomcat.apache.org/tomcat-9.0-doc/index.html
'WebServer | WAS > Tomcat' 카테고리의 다른 글
Apache HTTPD to Tomcat, 세션 클러스터링(Session Clustering) (1) | 2020.08.10 |
---|---|
Apache Tomcat(아파치 톰캣) 버전별 스펙 (0) | 2019.09.23 |