톰캣에서 하나의 IP로 여러개의 웹사이트를 운영하는 방법은 2가지가 있다.

  • 가상 호스트(Virtual Host)를 이용하는 방법
  • IP Address의 port를 여러개 사용하는 방법
  • 여기서는 가상 호스트를 이용하여 톰캣에서 여러개의 웹사이트를 운영하는 방법에 대해서 설명하고자 한다.
    설치 환경은 다음과 같다.

    • O/S : Windows XP (Windows Server 동일)
    • Tomcat 6.0.10

    설명의 편의를 위해 톰캣의 설치 디렉토리는 'TOMCAT_HOME' 으로 표기할 것이다. 참고로 내 경우는 C:\Server\Tomcat6.0 이다.

    설정하는 방법은 /TOMCAT_HOME/conf/에 있는 server.xml 파일만 수정하면 된다. server.xml의 쓸데없는 주석부분을 다 없애고 관련 부분만 남겨놓으면 아래와 같다.   

    <Service name="Catalina">
          <Connector port="8080" protocol="HTTP/1.1"
           maxThreads="150" connectionTimeout="20000"
           redirectPort="8443" />
          <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

          <Engine name="Catalina" defaultHost="localhost">
           <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
            resourceName="UserDatabase"/>

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

          </Engine>
         </Service>

    위의 내용에서 핵심 부분은 <Host></Host> 영역이다.

    1. 우선 <Connector port="8080" protocol="HTTP/1.1" 부분의 port를 80으로 수정한다.
      도메인명이 기본으로 80포트를 사용하기 때문이다.
     
    2. <Host>... </Host> 에 해당하는 부분을 복사하여 2개를 만든다. 그리고 이렇게 수정하자.
          

    <Host name="www.myweb1.com"  appBase="d:/webapps/myweb1"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
           </Host>

           <Host name="www.myweb2.com"  appBase="d:/webapps/myweb2"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
           </Host>

      appBase="webapps" 는 톰캣의 기본 웹루트인 TOMCAT_HOME/webapps 디렉토리를 가르킨다. 웹사이트를 원하는 디렉토리에 두고 싶다면 d:/webapps/myweb1 처럼 자기가 지정하고 싶은 곳으로 수정하면 된다.
     
    3. 마지막으로 웹사이트들의 ROOT 디렉토리를 지정해주자. 아래의 폴더를 생성한다.

    d:/webapps/myweb1/ROOT/
    d:/webapps/myweb1/ROOT/WEB-INF/

    d:/webapps/myweb2/ROOT/
    d:/webapps/myweb2/ROOT/WEB-INF/

    그리고 WEB-INF 폴더 밑에 각각 web.xml 파일을 추가한다. 그냥 /TOMCAT_HOME/webapps/ROOT/WEB-INF/에 있는 web.xml 을 복사하면 된다.

    4. 테스트하기 위해 ROOT/index.html 또는 index.jsp를 만든다.

    이제 톰캣을 재시작하고 웹브라우저로 접속해 보자.
    http://www.myweb1.com
    http://www.myweb2.com

    정말 간단하지 않은가?


    BLOG main image
    by 김동범

    공지사항

    카테고리

    분류 전체보기 (3)
    SemanticWeb (0)
    Diary (0)
    TIP (3)
    Python (0)

    최근에 달린 댓글

    Total : 19,811
    Today : 7 Yesterday : 13