코딩ㆍ개발 정보/HTML 연습

[톰캣] server.xml , Context 설정

RioRex 2024. 8. 20.

Tomcat에서 여러 개의 서비스를 운영하려면 기본적으로 각 서비스가 서로 다른 URL 경로 또는 포트를 통해 접근할 수 있도록 설정해야 합니다. 이를 위해 Tomcat의 server.xml 파일을 수정하는 것이 일반적입니다.

1. 컨텍스트 설정 (Context 설정)

  • Tomcat에서 각 웹 애플리케이션은 Context라는 개념을 통해 구분됩니다. Context는 애플리케이션이 배포되는 경로를 정의합니다.
  • server.xml 파일에서 <Host> 요소 내에 각 애플리케이션의 <Context>를 정의하여 서로 다른 경로로 접근할 수 있도록 설정할 수 있습니다.
  • 예시:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">

    <!-- 첫 번째 애플리케이션 -->
    <Context path="/app1" docBase="path/to/app1" reloadable="true" />

    <!-- 두 번째 애플리케이션 -->
    <Context path="/app2" docBase="path/to/app2" reloadable="true" />

</Host>

 

 

  • 위의 예에서 /app1과 /app2 경로를 통해 각각의 애플리케이션에 접근할 수 있습니다.

2. 별도의 포트를 사용하는 방법

  • 각 애플리케이션을 서로 다른 포트에서 서비스할 수 있습니다. 이 방법은 각 애플리케이션이 독립적으로 실행되며, 서로 다른 포트로 접근됩니다.
  • server.xml 파일에서 <Connector> 요소를 복제하여 다른 포트를 할당한 후, <Engine> 및 <Host>를 추가로 설정합니다.
  • 예시:
<!-- 기본 포트 8080에 대한 설정 -->
<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">
        <Context path="" docBase="path/to/app1" />
    </Host>
</Engine>

<!-- 두 번째 포트 8081에 대한 설정 -->
<Connector port="8081" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8444" />

<Engine name="Catalina2" defaultHost="localhost">
    <Host name="localhost" appBase="webapps2"
          unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="path/to/app2" />
    </Host>
</Engine>

 

  • 이 설정을 통해 첫 번째 애플리케이션은 http://localhost:8080에서, 두 번째 애플리케이션은 http://localhost:8081에서 접근할 수 있습니다.

3. Virtual Hosts (가상 호스트) 설정

  • 만약 각 애플리케이션을 다른 도메인이나 서브도메인에서 운영하고자 한다면 가상 호스트를 설정할 수 있습니다.
  • server.xml에서 <Host>를 여러 개 추가하여 도메인별로 다른 애플리케이션을 제공할 수 있습니다.
  • 예시:
<Engine name="Catalina" defaultHost="app1.example.com">

    <!-- 첫 번째 도메인에 대한 설정 -->
    <Host name="app1.example.com" appBase="webapps/app1"
          unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="." />
    </Host>

    <!-- 두 번째 도메인에 대한 설정 -->
    <Host name="app2.example.com" appBase="webapps/app2"
          unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="." />
    </Host>

</Engine>

 

  • 이 설정을 통해 app1.example.com에서 첫 번째 애플리케이션을, app2.example.com에서 두 번째 애플리케이션을 운영할 수 있습니다.

4. WAR 파일 자동 배포

  • Tomcat의 webapps 폴더에 여러 WAR 파일을 배치하면, 각 WAR 파일 이름에 따라 애플리케이션이 자동으로 배포됩니다.
  • 예를 들어, webapps/app1.war 파일을 배치하면 http://localhost:8080/app1에서 해당 애플리케이션에 접근할 수 있습니다.

5. Application-specific Configuration

  • 각 애플리케이션마다 별도의 web.xml 및 설정 파일이 존재할 수 있으며, 애플리케이션의 리소스와 환경 설정도 독립적으로 관리해야 합니다.

이러한 방법들을 통해 Tomcat 서버 하나에서 여러 개의 애플리케이션을 운영할 수 있습니다. 상황에 따라 URL 경로 기반, 포트 기반, 또는 도메인 기반의 접근 방식을 선택할 수 있습니다.

반응형

댓글