IT/IT Tips

톰캣(tomcat) server.xml 파일 구성 요소

다파라파라 2024. 11. 17. 11:33

server.xml 파일은 Apache Tomcat 서버의 주요 설정을 정의하는 XML 구성 파일입니다. 각 부분의 주요 기능과 역할을 간단히 분석하겠습니다.


1. <Server> 섹션

  • port="8005": Tomcat 서버가 종료 명령(SHUTDOWN)을 수신하는 포트를 지정합니다. 기본적으로 내부적으로만 사용됩니다.
  • shutdown="SHUTDOWN": 이 문자열을 사용하여 서버를 안전하게 종료합니다.

2. <Listener> 섹션

Tomcat의 수명 주기를 관리하고 특정 기능을 제공하는 리스너를 설정합니다.

  • org.apache.catalina.startup.VersionLoggerListener: 서버 시작 시 Tomcat 버전 정보를 로깅합니다.
  • org.apache.catalina.core.AprLifecycleListener: APR (Apache Portable Runtime) 라이브러리를 초기화하고 SSL을 활성화합니다.
  • org.apache.catalina.core.JreMemoryLeakPreventionListener: JVM 관련 메모리 누수를 방지하기 위한 리스너입니다.
  • org.apache.catalina.mbeans.GlobalResourcesLifecycleListener: 전역 JNDI 리소스의 생명 주기를 관리합니다.
  • org.apache.catalina.core.ThreadLocalLeakPreventionListener: 스레드 로컬 변수로 인한 메모리 누수를 방지합니다.

3. <GlobalNamingResources> 섹션

글로벌 JNDI 리소스를 정의합니다.

  • UserDatabase: 사용자 데이터베이스를 설정하여 인증 및 권한 관리를 지원합니다. Tomcat 기본 사용자 관리 파일은 conf/tomcat-users.xml입니다.

4. <Service> 섹션

서비스는 여러 커넥터와 엔진을 포함하여 요청을 처리합니다.

(1) <Connector> 섹션

커넥터는 Tomcat 서버가 요청을 수신하는 엔드포인트를 설정합니다.

  • HTTP 커넥터:
    • port="8080": HTTP 요청을 수신할 포트입니다.
    • redirectPort="8443": HTTPS로 리다이렉션될 경우 사용하는 포트입니다.
    • connectionTimeout="20000": 클라이언트 연결이 대기할 최대 시간(밀리초)입니다.
    • maxParameterCount="1000": 요청당 허용되는 최대 매개변수 수입니다.
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxParameterCount="1000" />
  • SSL/TLS 커넥터(주석 처리됨): 주석 처리된 SSL/TLS 설정은 HTTPS 요청을 처리하기 위해 필요합니다.
  • AJP 커넥터(주석 처리됨): Apache HTTP 서버와의 통합을 위한 AJP 프로토콜 설정입니다.

(2) <Engine> 섹션

  • defaultHost="localhost": 기본 호스트 이름을 정의합니다.
  • <Realm>: 사용자 인증 및 권한 관리를 담당합니다.
    • LockOutRealm: 특정 시도 횟수 이후 로그인 시도를 잠급니다.
    • UserDatabaseRealm: 사용자 데이터베이스를 이용한 인증 설정입니다.

(3) <Host> 섹션

  • name="localhost": 호스트 이름을 설정합니다.
  • appBase="webapps": 애플리케이션의 기본 디렉터리를 지정합니다.
  • <Valve>:
<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" />
  • AccessLogValve: 클라이언트 요청을 기록합니다.
  • pattern: 로깅 형식입니다. (예: IP, 요청 시간, 요청 경로 등)

5. 기타 사항

  • 주석 처리된 부분: SSL/TLS 설정, AJP 설정 등은 필요에 따라 활성화 가능합니다.
  • 로드 밸런싱 지원: <Engine> 태그에 jvmRoute를 추가하여 클러스터 환경에서 로드 밸런싱을 지원할 수 있습니다.
728x90
반응형