초보자를 위한 아파치 톰캣(tomcat) 구조 분석(for. 시스템 엔지니어)
※ 업무하면서 습득한 내용들을 정리해 놓은 포스팅입니다 :P 추가로 궁금하신 점은 댓글로 남겨주시고 필요한 자료 있으면 요청주세요! 잘못된 내용이 있으면 고쳐주시면 감사하겠습니다. 자료 퍼가실 때는 출처 남겨주세요!
ο 목차
※ 코드 보는 방법 참고
ㅇ 달러 기호($)가 있는 경우 -> 리눅스 터미널에서 CLI 명령어 입력
ㅇ "=#" 기호가 있는 경우 -> psql 쉘에서 명령어 입력
ㅇ 꺽쇠가 하나 있는 경우(>) -> 윈도우 명령 프롬프트(cmd)에서 명령어 입력
ㅇ 꺽쇠가 세개 있는 경우(>>>) -> python 쉘에서 명령어 입력
안녕하세요, 네모입니다 ~

개발자의 관점에서 톰캣에 대한 설명글은 많은데, 운영을 하는 시스템 엔지니어의 입장에서 쓰여진 글은 잘 없더라구요
그래서 오늘은 시스템 엔지니어의 관점에서 아파치 톰캣 운영을 위해 꼭 알아야 할 톰캣 구조에 대해 정리해보려고 합니다.
초보 엔지니어 분들이 톰캣 운영을 할 때 조금이나마 도움이 되었으면 좋겠습니다 :)
1. 톰캣(tomcat) 이란?
- java 기반 동적 웹 어플리케이션(대표적인 WAS 중 하나)
- 프론트엔드(apache, nginx 등)를 두고 웹 서비스를 제공할 수도 있지만 그 자체로 웹 서비스를 제공하기도 하고 동적 기능만을 구현해서 앱과 연동해서 사용하기도 함
2. 운영을 위한 주요 파일/디렉터리 개요
1) bin
(1) 위치 : TOMCAT_HOME/bin
(2) 개요 : 톰캣 실행 및 종료 등 운영에 필요한 실행 파일들이 있는 디렉터리
(3) 주요 파일/디렉터리
- catalina.sh = 웹 컨테이너를 실행시키기 위한 쉘 파일. 일반적으로는 해당 파일은 수정할 일은 없으나 JAVA_OPTS 등 실행 옵션 값 변경이 필요한 경우 해당 파일에서 수정.
- shutdown.sh = 실행 중인 tomcat 종료를 위한 실행 파일.
(사용 명령어)
$ TOMCAT_HOME/bin/shutdown.sh
※ 톰캣이 실행되어 있지 않으면 오류 로그 발생됨
※ TOMCAT_HOME/conf/server.xml 에서 shutdown 포트 활성화가 되어 있어야 해당 실행 파일로 shutdown 가능
- startup.sh = tomcat 실행을 위한 파일.
(사용 명령어)
$ TOMCAT_HOME/bin/startup.sh
※ 쉘 파일에서 중복 체크를 하지 않기 때문에 톰캣이 실행되어 있는 상태에서 해당 파일 실행 금지(bind 오류 발생)
- version.sh = 현재 설치되어 있는 톰캣 버전 확인
(사용 명령어)
$ TOMCAT_HOME/bin/version.sh
※ shell 파일 실행이 안 되는 경우 소유자 권한 확인 -> 실행 권한 확인(x 권한 필요)
2) conf
(1) 위치 : TOMCAT_HOME/conf
(2) 개요 :
- 톰캣의 설정 파일들이 위치해 있는 디렉터리
- 톰캣 서버 설정, 로깅 설정, 다중 어플리케이션 운용 등의 설정 가능
(3) 주요 파일/디렉터리 :
- server.xml = 웹 서비스/shutdown 포트 설정, access_log 설정, host 설정, appBase/docBase 설정 등 기본 설정부터 웹서버 connection timeout, max threads, accept count, max connection 등 성능 최적화 설정을 위한 웹 서버 설정 파일
- web.xml = 에러 페이지, 웰컴 페이지 등 웹페이지 설정값 지정
- logging.properties = 로깅 파일명, 로깅 파일 위치, 로깅 파일 종류 등에 대한 설정값 지정
- Catalina/localhost/ = 배포될 웹 어플리케이션에 대한 개별 설정값을 지정할 수 있는 디렉터리
* 기본 제공되는 파일 = ROOT.xml
* 웹어플리케이션을 추가로 배포하는 경우 추가되는 웹어플리케이션명.xml 파일을 추가해서 개별 설정 파일 추가
3) logs
(1) 위치 : TOMCAT_HOME/logs
(2) 개요 :
- 톰캣 서비스 관련 로그가 쌓이는 디렉터리
- 데몬 및 서비스 로그는 catalina.out 로그에 쌓이게 되며 접속 기록은 localhost_access_log.txt에 쌓이게 됨.
(특수한 케이스가 아니라면 운영시에 이 2개 로그만 보시면 됩니다.)
(3) 주요 파일/디렉터리
- catalina.out : 웹 어플리케이션 로그가 쌓이는 파일
※ 별도의 설정이 없으면 catalina.out 이라는 로그에 계속해서 파일이 쌓이기 때문에 나중에 용량 폭탄(?) 사태가 벌어질 수 있음. 미리미리 로그 롤링 작업을 해두어야 함. 아래 가이드 참고! :)
2023.03.30 - [리눅스(Redhat)/시스템 관리] - [Tomcat] 로그 관리 - catalina.out 로그 하루씩 롤링(rolling)하기
- localhost_access_log.txt : 웹서버 접속 로그가 쌓이는 파일
4) webapps
(1) 위치 : TOMCAT_HOME/webapps
(2) 개요 :
- 배포된 웹 어플리케이션이 위치하는 디렉터리
- 다중 웹 어플리케이션 운용을 위해 TOMCAT/HOME/conf/Catalina/localhost/웹어플리케이션명.xml 파일을 추가한 경우 appBase/docBase 위치에 "웹어플리케이션명" 으로 된 war 파일이나 어플리케이션 파일을 배포해두어야 함
* 기본값은 TOMCAT_HOME/webapps/ROOT/
(3) 주요 파일/디렉터리 : ROOT/, 웹어플리케이션/
위에 언급된 파일 외 파일들은 특수 케이스가 아니라면 시스템 엔지니어가 크게 건드릴 부분이 없는 파일들입니다.
자세한 내용은 추후 포스팅에서 좀 더 상세하게 다루도록 하겠습니다 :)
감사합니다
※ 좋아요와 구독은 큰 힘이 됩니다. 감사합니다.