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 "%r" %s %b" />
- AccessLogValve: 클라이언트 요청을 기록합니다.
- pattern: 로깅 형식입니다. (예: IP, 요청 시간, 요청 경로 등)
5. 기타 사항
- 주석 처리된 부분: SSL/TLS 설정, AJP 설정 등은 필요에 따라 활성화 가능합니다.
- 로드 밸런싱 지원: <Engine> 태그에 jvmRoute를 추가하여 클러스터 환경에서 로드 밸런싱을 지원할 수 있습니다.
728x90
반응형
'IT > IT Tips' 카테고리의 다른 글
Linux에서 Apache Tomcat 설치하기 (1) | 2024.11.16 |
---|---|
catalina.sh 튜닝 로그 파일을 시간 단위로 분할 (0) | 2024.11.15 |
catalina.sh 튜닝 LOGGING_MANAGER 뒤에 설정 추가 (0) | 2024.11.14 |
catalina.sh 튜닝 JAVA_OPTS 설정 추가 (0) | 2024.11.13 |
CentOS에서 버전을 확인하는 방법 (0) | 2024.10.30 |