웹어플리케이션(Tomcat)/톰캣 설정하기

초보자를 위한 아파치 톰캣(tomcat) 구조 분석(for. 시스템 엔지니어)

너l모 2024. 1. 21. 20:54
반응형

※ 업무하면서 습득한 내용들을 정리해 놓은 포스팅입니다 :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/,  웹어플리케이션/


    위에 언급된 파일 외 파일들은 특수 케이스가 아니라면 시스템 엔지니어가 크게 건드릴 부분이 없는 파일들입니다. 

     

    자세한 내용은 추후 포스팅에서 좀 더 상세하게 다루도록 하겠습니다 :)

     

    감사합니다


    ※ 좋아요와 구독은 큰 힘이 됩니다. 감사합니다. 

    반응형