⚙️ Tomcat 설정이란?

정의

Tomcat 설정은 서버 실행 환경, 포트, 메모리, 컨테이너 동작 조건을 조정하는 작업이다. 주로 server.xml, web.xml, context.xml을 중심으로 설정한다.

📁 주요 설정 파일

  • server.xml
  • web.xml
  • context.xml
  • 포트 설정
  • 문자 인코딩 설정

포인트

설정 파일별 역할을 구분해두면 어디를 수정해야 하는지 빠르게 판단할 수 있다.

🧩 server.xml

  • Tomcat 전체 서버 구조를 정의한다.
  • Server, Service, Connector, Engine, Host 등을 설정한다.

샘플

<Server port="8005" shutdown="SHUTDOWN">
    <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

    <Service name="Catalina">
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />

        <Engine name="Catalina" defaultHost="localhost">
            <Host name="localhost" appBase="webapps"
                  unpackWARs="true" autoDeploy="true">
                <Valve className="org.apache.catalina.valves.AccessLogValve"
                       directory="logs"
                       prefix="localhost_access_log"
                       suffix=".txt"
                       pattern="%h %l %u %t &quot;%r&quot; %s %b" />
            </Host>
        </Engine>
    </Service>
</Server>

🧱 컴포넌트 별 설명

Server

  • server.xml의 최상위 컴포넌트다.
  • Tomcat 인스턴스 전체를 감싼다.

Listener

  • Tomcat 시작/종료 시 필요한 이벤트를 처리한다.

GlobalNamingResources

  • 전역 JNDI 리소스를 정의하는 영역이다.

Resource

  • 데이터베이스 같은 외부 자원을 JNDI로 등록할 때 사용한다.

Service

  • 하나 이상의 ConnectorEngine을 묶는 단위다.

Connector

  • 외부 요청을 받는 포트와 프로토콜을 정의한다.
  • HTTP, AJP 같은 연결 방식을 설정한다.

Engine

  • 요청을 어느 Host로 보낼지 결정하는 핵심 컨테이너다.

Realm

  • 인증과 권한 관련 설정을 담당한다.

Host

  • 가상의 호스트를 정의한다.
  • webapps 배포와 로깅 정책을 함께 둘 수 있다.

Valve

  • 요청/응답 처리 중간에 끼워 넣는 필터 같은 역할을 한다.
  • 접근 로그를 남길 때 자주 사용한다.

🛠️ 자주 살펴보는 설정 항목

  • 포트 충돌 여부
  • redirectPort
  • appBase
  • unpackWARs
  • autoDeploy
  • 문자 인코딩
  • 접근 로그

🔎 확인 시점

  • 서비스 포트가 다른 프로세스와 충돌하지 않는지
  • 개발/운영 환경 설정 차이를 관리하는지
  • 배포 경로와 자동 배포 여부가 의도와 맞는지

[!important] 주의 설정 변경 후에는 Tomcat 재시작이 필요한 경우가 많다. 운영 환경에서는 포트, 메모리, 리소스 설정을 함부로 바꾸지 않는 것이 좋다.

🧾 정리

Tomcat 설정은 서버 실행 방식과 요청 처리 구조를 조정하는 핵심 작업이다. 특히 server.xmlConnector, Engine, Host를 이해하면 Tomcat 구조를 훨씬 쉽게 볼 수 있다.


연결문서

댓글남기기