도움말이나 매뉴얼이 .chm 파일로 작성된 경우가 많다. 그런데 보안 패치 이후 파일이 열리지 않는 경우가 있다. 바이러스의 취약점을 막기 위해 보안을 강화하였기 때문이다.

이럴 경우 파일 선택 후 '등록정보' 에서 '차단해제'를 선택하면 간단하게 해결된다.

자세한 내용은 아래의 사이트를 참조하시길...

http://support.microsoft.com/kb/902225/ko
태그 chm

톰캣에서 하나의 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

    정말 간단하지 않은가?

    아파치와 연동없이 톰캣만으로도 하나의 IP로 다수의 웹사이트를 운영하는 것이 가능하다.
    (아파치와 톰캣을 연동하는 방법에 대해서는 차후에 자세히 올리도록 하겠다)

    특히 개발자의 경우 여러개의 프로젝트를 개발하거나 테스트하고자 할 때 웹사이트를 여러개 운영해야한다. 다수의 웹 사이트를 세팅하는 방법은 크게 2가지가 있다.

    가상호스트를 이용하는 방법은 도메인을 이용하여 실제로 서비스를 운영하는 경우가 아니면 개발자에겐 별 의미가 없다. 여기서는 두번째 방법인 IP 어드레스의 포트를 이용하는 방법에 대해서 설명하겠다. (바로가기 : 톰캣에서 가상 호스트를 이용하는 방법)

    우선 설치 환경은 다음과 같다.
    • O/S : Windows XP (난 아직 리눅스를 잘 모른다. 비슷하겠지만 테스트해보지 않았다)
    • Tomcat 6.0 (정확히는 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>



    우선 빨간색으로 표시한 부분만 이해하고 넘어가도 상관없다.
    Connector port="8080"은 HTTP로 넘어오는 포트를 지정하는 것이다. 톰캣의 기본 포트가 8080인 이유가 여기에 있다. 따라서 8080 대신 기본 80포트를 사용하고 싶다면? 바로 이 부분을 port="80"으로 바꾸어주면 된다.

    다음, Host 지시어의 appBase="webapps" 는 웹어플리케이션(웹사이트)의 위치를 나타낸다. appBase="./webapps"와 같은 의미다. 실제 위치는 TOMCAT_HOME/webapps이다. 물론 "d:/weapps/myweb1" 과 같이 절대경로로 지정하는 것도 가능하다.

    그럼 웹사이트를 하다 더 추가하고 싶다면? 위의 <Service>...</Service>를 하나 더 만들어 버리면 된다. 위의 코드를 복사한 다음 server.xml 에 추가한다. 그리고 빨간색으로 표시한 부분만 수정하자.

    <Service name="Catalina2">
      <Connector port="9090" 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="d:/webapps/myweb2"
        unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
       </Host>
      </Engine>
     </Service>

    다른 웹어플리케이션을 돌리기 위해 서비스를 하나 더 추가한 것이다.
    port="9090" 은 새로 추가하고 싶은 포트이다.
    appBase="d:/webapps/myweb2"는 9090 포트에서 돌아갈 웹사이트 위치이다.

    이제 server.xml 설정은 끝난 것이다.
    마지막으로 웹사이트의 ROOT 디렉토리를 지정해주자. 아래의 폴더를 생성한다.

    d:/webapps/myweb2/ROOT/   (
    d:/webapps/myweb2/ROOT/WEB-INF/
    (WEB-INF 폴더를 만들고 web.xml 파일을 추가한다. 그냥 /TOMCAT_HOME/webapps/ROOT/WEB-INF/에 있는 web.xml 을 복사하면 된다.

    무지 간단하다. 하지만 난 이 간단한 것을 위해서 하루종일 삽질해야만 했다. 검색해 보아도 문서는 많은데 실제 도움이 될만한 것이 별로 없었다.

    테스트하기 위해 ROOT/index.html 또는 index.jsp를 만든다.
    이제 톰캣을 재시작하고 웹브라우저로 접속해 보자.
    http://localhost:8080
    http://localhost:9090


    BLOG main image
    by 김동범

    공지사항

    카테고리

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

    최근에 달린 댓글

    Total : 18,196
    Today : 2 Yesterday : 7