Application Servers & Java
[5편] Tomcat 설정 파일 완전 해설 – web.xml, context.xml, server.xml 핵심 정리
midworker
2025. 5. 16. 22:27
반응형
[5편] Tomcat 설정 파일 완전 해설 – web.xml, context.xml, server.xml 핵심 정리
Tomcat은 디렉터리 구조가 간단하지만, 설정 파일을 제대로 이해하고 있어야 안정적인 운영이 가능합니다.
이번 편에서는 Tomcat 설정 파일 중에서 가장 핵심적인 web.xml, context.xml, server.xml의 역할과 실전 설정 예제를 정리합니다.
✅ web.xml – 웹 애플리케이션의 표준 설정 파일
/WEB-INF/web.xml
은 서블릿 스펙 기반의 기본 설정 파일이며, WAR마다 존재합니다.
🔹 주요 설정 항목
항목 | 설명 |
---|---|
<servlet> |
서블릿 등록 |
<servlet-mapping> |
URL과 서블릿 매핑 |
<session-config> |
세션 유지 시간 설정 |
<error-page> |
에러 발생 시 표시할 페이지 지정 |
<welcome-file-list> |
기본 접속 시 보여줄 파일 |
🔹 실전 예시
<web-app>
<display-name>SampleApp</display-name>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.example.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
✅ context.xml – 애플리케이션별 리소스 설정 파일
/META-INF/context.xml
또는 $TOMCAT_HOME/conf/context.xml
→ JNDI 설정, 데이터소스 등록, 재배포 자동 감지 설정 등에 사용됩니다.
🔹 공통 설정 예
<Context reloadable="true" useHttpOnly="true">
<Resource name="jdbc/MyDB"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="scott"
password="tiger"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@192.168.0.101:1521:ORCL"/>
</Context>
🔹 주요 속성
속성 | 설명 |
---|---|
reloadable |
JSP 수정 시 자동 반영 (운영 환경에선 false 권장) |
Resource |
JNDI 자원 등록 (DB, MQ 등) |
useHttpOnly |
XSS 공격 방지 (Session Cookie 접근 제한) |
✅ server.xml – Tomcat 전체 설정 파일
$TOMCAT_HOME/conf/server.xml
→ Tomcat 인스턴스의 포트, AJP, Connector, Engine, Host 설정 등 전체 구조를 담당
🔹 구성 계층 구조
<Server>
<Service>
<Connector />
<Engine>
<Host>
<Context />
</Host>
</Engine>
</Service>
</Server>
🔹 실전 설정 예 (AJP + HTTP + jvmRoute)
<Server port="8005" shutdown="SHUTDOWN">
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3"
redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true" />
</Engine>
</Service>
</Server>
✅ 설정 파일별 용도 요약
파일 | 위치 | 용도 |
---|---|---|
web.xml |
/WEB-INF/ |
애플리케이션의 서블릿/세션/에러 설정 |
context.xml |
/META-INF/ or /conf/ |
리소스(JNDI, DB) 설정 |
server.xml |
/conf/ |
전체 Tomcat 인스턴스 구조와 포트 설정 |
✅ 마무리
설정 파일을 정확히 이해하고 관리하는 것은 Tomcat 운영의 핵심입니다.
특히 server.xml
과 context.xml
은 실시간 트러블슈팅이나 운영 환경의 유연한 배포 전략에 직결되는 만큼 숙지해야 합니다.
반응형