WEBBOOK CHAPTER

WAR 배포, 밤에 깨지 않게: 7장 CATALINA_HOME과 CATALINA_BASE를 분리한다

7장 CATALINA_HOME과 CATALINA_BASE를 분리한다

CATALINA_HOME은 Tomcat 프로그램, CATALINA_BASE는 한 인스턴스의 설정·로그·webapps·temp다. 둘을 분리하면 같은 바이너리 계열 아래에서 인스턴스 설정과 애플리케이션을 독립적으로 관리할 수 있다.


/opt/tomcat/apache-tomcat-11.0.x/     CATALINA_HOME, 읽기 전용
/srv/tomcat/releaseportal/            CATALINA_BASE
  conf/
  logs/
  temp/
  webapps/
  work/

Tomcat을 root로 실행하지 않는다. 전용 계정은 필요한 디렉터리만 읽고 쓰며, 8080은 loopback 또는 내부망에만 bind한다. Nginx가 443을 받고 Tomcat으로 proxy한다면 외부에서 8080에 직접 접근하지 못하게 방화벽과 Connector address를 함께 설정한다.

기본 examples, docs, manager 애플리케이션은 운영 필요성에 따라 제거하거나 접근을 제한한다. Manager를 사용한다면 브라우저 역할과 script 역할을 분리하고 localhost, 관리망, VPN 같은 좁은 source만 허용한다.