본문 바로가기

Programming

[펌] Tomcat 6.0 Context 설정 방법

출처 : http://ammoguy.springnote.com/pages/1619450


톰캣(Tomcat)에서 컨텍스트를 설정하는 방법 (Tomcat 6.0)

 

0. 용어 설명

 

TOMCAT_HOME : 톰캣 설치 디렉터리

 

1. 도메인으로 분류하는 방법

 

TOMCAT_HOME\conf\server.xml 을 열면 기본적으로 하나의 Service 엘리먼트가 있고
그 하위에 Engine 엘리먼트가, 또 그 하위에 아래와 같은 하나의 Host 엘리먼트가 있다.

 

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
      </Host>

 

아래와 같이 추가하려는 도메인으로 Host 엘리먼트를 하나 더 추가한다.

 

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
      </Host>
      <Host name="test.sisinfo.comappBase="/media/disk/webapps/test"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
      </Host>

 

appBase는 이 컨텍스트의 물리적 영역이 되겠다.
물론 실제의 물리적인 디렉터리도 아래와 같이 필요하다.

 

/media/disk/webapps/test/ROOT
/media/disk/webapps/test/ROOT/WEB-INF

 

WEB-INF의 web.xml등은 TOMCAT_HOME/webapps/ROOT/WEB-INF에서 복사한다.

/media/disk/webapps/test/ROOT 디렉터리는 이 컨텍스트의 루트 디렉터리로 작동한다.

 

여기서 test.sisinfo.com은 추가하려는 도메인이 되겠으며,
실제로 도메인을 보유하지 않고 개발 PC에서 작업하는 경우,
C:\Windows\system32\drivers\etc\hosts 파일을 열고
마지막 줄에 다음을 추가한다.

 

192.168.10.105      test.sisinfo.com

 

이제 웹브라우저를 열고 [test.sisinfo.com:포트번호]에 접속하면 된다.

 

만일 /media/disk/webapps/test/ROOT 가 아닌 /media/disk/webapps/test 를 룰트 디렉터리로 사용하고자 하는 경우에는
server.xml을 다음과 같이 작성한다.

      <Hostname="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
      </Host>
      <Host name="test.sisinfo.com"  appBase="/media/disk/webapps/test"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
    <context path="" docBase="/media/disk/webapps/test"></context>
      </Host>

 

2. 포트 번호로 분류하는 방법

 

톰캣에서도 MS의 IIS와 같이 포트 번호에 따라 호스팅하는 것이 가능하다.
TOMCAT_HOME\conf\server.xml 을 열고 아래와 같이 Service 엘리먼트를 추가한다.

 

  <Service name="testdomain">
    <Connector port="8090" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="testdomain" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      <Host name="localhost"  appBase="C:\testdomain"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
            <context path="" docBase="C:\testdomain"></context>
      </Host>
    </Engine>
  </Service>

 

Service 엘리먼트의 name 속성은 추가하려는 컨텍스트의 이름이 되겠다.
첫 Connector 엘리먼트의 port 속성은 사용하려는 포트 번호를 넣으면 된다.
Host 엘리먼트와 context 엘리먼트, appBase에 대한 물리적 경로 생성은 1항의 설명과 같다.

 

이제 웹브라우저를 열고 [localhost:포트번호]에 접속하면 된다.