LabHub

Tomcat & nginx 운영 · Tomcat 구조와 server.xml · 실습

Tomcat 기동하고 구조 파악하기

LabHub 에서 이어서 보기

목표

systemd 없이 Tomcat 을 기동·정지하고, 디렉터리 구조와 리슨 포트를 파악하고,
setenv.sh 로 JVM 옵션을 주입해 실제로 적용됐는지 프로세스에서 확인할 수 있게 됩니다.

왜 중요한가

SI 현장의 서버는 벤더가 준 tar.gz 를 풀어 쓰는 경우가 흔하고, 컨테이너 환경에는
systemd 가 없습니다. 그래서 catalina.sh 를 직접 다루는 능력이 기본기가 됩니다.
또 하나 — "프로세스는 떠 있는데 포트가 안 열린 상태"가 실제로 존재합니다.
포트 충돌이나 커넥터 초기화 실패 때 그렇습니다. 기동 확인을 프로세스가 아니라
로그와 포트로 하는 습관은 이 실습에서 몸에 붙습니다.

단계

1. /root/tc 디렉터리를 만들고, java -version 의 출력을 /root/tc/java.txt 에 저장합니다.
(표준에러까지 포함해야 합니다.)
2. /root/tc/layout.csv 를 만듭니다. 첫 줄은 dir,purpose.
bin, conf, lib, logs, webapps, work, temp 일곱 행이 있어야 하고
purpose 는 각각 8자 이상이어야 합니다.
3. /opt/tomcat/bin/catalina.sh start 로 Tomcat 을 기동합니다.
http://127.0.0.1:8080/ 이 HTTP 200 을 반환해야 합니다.
4. /opt/tomcat/logs/catalina.out 에서 기동 소요 시간(밀리초)을 찾아
숫자만 /root/tc/startup.txt 에 저장합니다.
5. 현재 LISTEN 중인 포트 중 Tomcat 이 연 포트를 한 줄에 하나씩 오름차순으로
/root/tc/ports.txt 에 저장합니다.
6. /opt/tomcat/webapps/hello/index.html 을 만들고 본문에 LabHub 문자열을 넣습니다.
http://127.0.0.1:8080/hello/ 가 200 이고 본문에 LabHub 가 있어야 합니다.
7. Tomcat 을 정지했다가 다시 기동합니다.
(catalina.sh stop 30 -forcecatalina.sh start)
재기동 후에도 http://127.0.0.1:8080/hello/ 가 200 이어야 합니다.
8. /opt/tomcat/bin/setenv.sh 를 만들고 아래 옵션을 CATALINA_OPTS 로 정의한 뒤
재기동합니다.
-Xms256m -Xmx256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/root/tc/dump
/root/tc/dump 디렉터리도 미리 만들어 두세요.
실행 중인 자바 프로세스의 인자에 이 옵션들이 실제로 보여야 통과합니다.

참고

단계 8개

  1. JDK 버전 확인
  2. 디렉터리 역할 정리
  3. Tomcat 기동
  4. 기동 소요 시간 확인
  5. 리슨 포트 확인
  6. 정적 컨텍스트 배포
  7. 정지 후 재기동
  8. setenv.sh 로 JVM 옵션 주입