톰켓 가상호스트

 

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

1. 가상 호스트(Virtual Host)를 이용하는 방법

설치 환경은 다음과 같다.

* O/S : Windows XP
* Tomcat 6.0.10

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

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

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

1. 우선 <Connector port=”8080″ protocol=”HTTP/1.1″ 부분의 port를 80으로 수정한다.
도메인명이 기본으로 80포트를 사용하기 때문이다.

2. <Host>… </Host> 에 해당하는 부분을 복사하여 2개를 만든다. 그리고 이렇게 수정하자.

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 Address의 port를 여러개 사용하는 방법

* O/S : Windows XP
* Tomcat 6.0.10

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

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

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

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

그럼 웹사이트를 하다 더 추가하고 싶다면? 위의 <Service>…</Service>를 하나 더 만들어 버리면 된다. 위의 코드를 복사한 다음 server.xml 에 추가한다.

다른 웹어플리케이션을 돌리기 위해 서비스를 하나 더 추가한 것이다.
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

ROOT 디렉토리의 이름을 바꾸고 싶다면

또는

톰캣에서 conf 폴더에 있는 server.xml 파일을 수정해야 한다.

다음 코드를 추가한다.

표시한 부분이 가상 도메인을 등록하는 부분으로 자신의 컴퓨터에서 호스트 등록하면 IP를 입력하지 않고 위 도메인으로 접근 가능하다.

 

This entry was posted in WEB/WAS and tagged , , . Bookmark the permalink.

댓글 남기기