JongTachi의 개발 블로그

[WAS] Tomcat Config File(톰캣 설정 파일) 본문

Server/WAS

[WAS] Tomcat Config File(톰캣 설정 파일)

JongTachi 2024. 10. 7. 14:59
728x90
반응형

Tomcat의 설정 파일들은 Tomcat 서버의 동작을 정의하고 애플리케이션의 배포 및 보안 정책을 관리하는 데 중요한 역할을 합니다.

 

다음은 대표적인 Tomcat 설정 파일들에 대한 설명입니다

 

1. server.xml

역할: Tomcat 설정에서 가장 중요한 파일로, 서버의 주요 구성을 정의합니다.
위치: `TOMCAT_HOME/conf/server.xml`
주요 구성 요소:
   - Service: 여러 `Connector`와 `Engine`을 포함하는 Tomcat의 핵심 구성 요소. Tomcat에서 사용하는 서비스들을 정의.
   - Connector: 클라이언트와의 통신을 담당하는 부분으로, HTTP, HTTPS, AJP 등의 포트를 설정합니다. 예를 들어 HTTP 포트(기본값 8080), HTTPS 포트 등이 설정됩니다.
   - Host: 가상 호스트 설정을 담당하며, 여러 도메인 이름이나 애플리케이션을 하나의 Tomcat 인스턴스에서 서비스할 수 있도록 도와줍니다.
   - Engine: 요청을 처리하는 핵심 엔진. 요청을 호스트로 라우팅하고, 여러 서비스 간의 상호작용을 관리합니다.

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

용도: 포트 변경, SSL 설정, 클러스터링 등 중요한 서버 동작을 정의합니다.

 

2. catalina.policy

역할: Tomcat에서 Java Security Manager를 사용할 때 필요한 보안 정책을 정의하는 파일입니다. 웹 애플리케이션이 어떤 시스템 자원에 접근할 수 있는지를 결정합니다.
위치: `TOMCAT_HOME/conf/catalina.policy`
주요 구성 요소:
   - Policy Entry: 자바 애플리케이션에 대해 권한을 부여하는 항목을 정의합니다. 파일 시스템, 네트워크, 쓰레드 관련 권한 등을 세부적으로 제어할 수 있습니다.
   - 보안 관리자를 활성화하면 JVM에서 웹 애플리케이션이 어떤 자원에 접근할 수 있는지 제어하게 됩니다.

grant codeBase "file:${catalina.home}/webapps/-" {
    permission java.security.AllPermission;
};

용도: 애플리케이션의 보안 요구 사항에 따라 권한을 세부적으로 제어하는 데 사용됩니다. 예를 들어, 특정 파일 시스템 경로 접근이나 네트워크 연결을 제어할 수 있습니다.

 

3. catalina.properties

역할: Tomcat이 동작하는 데 필요한 기본 시스템 속성을 정의하는 파일입니다. 클래스 경로, 라이브러리 경로 등을 설정합니다.
위치: `TOMCAT_HOME/conf/catalina.properties`
주요 구성 요소:
   - common.loader: Tomcat이 사용할 공용 클래스 경로를 정의. 모든 애플리케이션이 이 경로의 클래스를 참조할 수 있습니다.
   - server.loader: Tomcat 내부에서만 사용되는 클래스 경로를 정의합니다.
   - shared.loader: 공유 라이브러리를 정의하며, 이 경로의 라이브러리는 모든 웹 애플리케이션이 참조 가능합니다.

 

common.loader="${catalina.home}/lib,${catalina.home}/lib/*.jar"

용도: 클래스 로더 설정을 통해 서버와 애플리케이션의 라이브러리 의존성을 관리합니다.

 

4. web.xml

역할: Tomcat의 기본 서블릿 구성 파일로, 모든 웹 애플리케이션에 적용되는 전역 설정을 정의합니다.
위치: `TOMCAT_HOME/conf/web.xml`
주요 구성 요소:
   - Servlet: 서블릿 매핑, 초기화 파라미터 등을 정의합니다.
   - Filter: 요청과 응답을 가로채어 처리할 필터를 정의합니다.
   - Listener: 애플리케이션 생명주기 이벤트에 대한 리스너를 설정합니다.

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
</servlet>

용도: 서블릿과 JSP에 대한 기본 동작을 설정하며, 모든 웹 애플리케이션에 적용됩니다.

 

5. logging.properties


역할: Tomcat에서 로그 파일의 동작을 제어하는 파일입니다. 로그 레벨, 로그 출력 형식, 로그 파일 경로 등을 설정할 수 있습니다.
위치: `TOMCAT_HOME/conf/logging.properties`
주요 구성 요소:
   - Logger: 특정 클래스 또는 패키지의 로그 출력을 설정합니다.
   - Handler: 로그 출력을 파일, 콘솔 등으로 지정합니다. 

.handlers = java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level = FINE

용도: 로그 레벨을 조정하여 개발 및 운영 시 로그를 효과적으로 관리할 수 있습니다.

 

 

6. context.xml

역할: 특정 웹 애플리케이션의 설정을 정의하는 파일로, 각 애플리케이션마다 개별 설정을 적용할 수 있습니다.
위치: `TOMCAT_HOME/conf/context.xml` 또는 각 웹 애플리케이션의 `META-INF/context.xml`
주요 구성 요소:
   - Resource: 데이터베이스 연결 풀과 같은 리소스를 정의합니다.
   - Environment: JNDI 환경 항목을 설정합니다.

<Context>
    <Resource name="jdbc/MyDB" auth="Container"
              type="javax.sql.DataSource" />
</Context>

용도: 개별 애플리케이션 설정을 통해 독립적인 리소스와 환경을 제공하는 데 사용됩니다.

728x90
반응형