Tomcat & nginx 운영 · Tomcat 구조와 server.xml · 퀴즈
퀴즈: Tomcat 구조와 server.xml
문항 7개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
`server.xml` 의 `<Server port="8005" shutdown="SHUTDOWN">` 에서 8005 포트의 역할은?
- HTTP 요청을 받는 두 번째 서비스 포트
- JMX 모니터링 포트
- 클러스터 세션 복제 포트
- 종료 명령 문자열을 받는 포트 - 여기에 접속해 문자열을 보내면 WAS 가 내려간다
JVM 힙 옵션을 추가할 때 `catalina.sh` 를 직접 수정하지 말고 `bin/setenv.sh` 를 만들라고 하는 이유는?
- catalina.sh 는 읽기 전용 파일이라 수정할 수 없어서
- setenv.sh 가 더 빨리 실행되어서
- setenv.sh 는 catalina.sh 가 자동으로 읽으며, 톰캣 버전 업그레이드 시 덮어써지지 않아서
- catalina.sh 수정은 라이선스 위반이라서
배포 후에도 화면이 이전 버전 그대로 보일 때 가장 먼저 확인해야 할 Tomcat 디렉터리는?
- conf/
- lib/
- temp/
- work/
AccessLogValve 의 `pattern` 에 `%D`(처리 시간) 를 넣어야 하는 실무적 이유는?
- 기록 항목이 정돈돼 로그 파일 크기와 디스크 사용을 줄일 수 있어서
- 톰캣이 요청별 시간을 재면서 내부 통계를 최적화하기 때문에
- '느리다'는 신고를 받았을 때 어떤 URL 이 얼마나 걸렸는지 근거를 댈 수 있어서
- 개인정보 보호 규정이 접근 기록에 처리 시간 보존을 요구해서
`conf/Catalina/localhost/api.xml` 에 `docBase` 를 지정하는 방식의 실무적 이점은?
- 전개 과정을 건너뛰므로 애플리케이션 기동 시간이 눈에 띄게 줄어든다
- 공통 라이브러리를 밖에 두게 되어 WAR 파일 크기가 줄어든다
- 컨텍스트가 파일로 분리되어 세션 클러스터링 설정이 자동으로 켜진다
- webapps 밖의 경로를 서비스해 배포 산출물과 톰캣 설치본을 분리할 수 있다
`catalina.out` 이 수십 GB 로 커져 디스크를 채우는 문제의 원인으로 가장 정확한 것은?
- 로그 레벨이 DEBUG 로 설정되어 있어서만 발생한다
- logging.properties 파일이 없어서
- catalina.out 은 표준출력 리다이렉션이라 톰캣이 자체 로테이션하지 않기 때문
- 톰캣 버그이며 최신 버전에서는 발생하지 않는다
'프로세스는 떠 있는데 서비스가 안 된다'는 상황을 가장 빠르게 판별하는 방법은?
- ss 로 서비스 포트가 LISTEN 인지, 기동 완료 로그가 있는지 함께 본다
- ps 로 자바 프로세스가 살아 있는지만 확인하고 다음 단계로 넘어간다
- 원인 파악보다 복구가 우선이므로 먼저 재기동하고 로그를 나중에 본다
- 디스크 사용량을 먼저 확인해 로그가 꽉 찬 것이 아닌지 본다