톰캣(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="www.testdomain.com" appBase="C:\testdomain"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
appBase는 이 컨텍스트의 물리적 영역이 되겠다.
물론 실제의 물리적인 디렉터리도 아래와 같이 필요하다.
C:\testdomain\ROOT
C:\testdomain\ROOT\WEB-INF
WEB-INF의 web.xml등은 TOMCAT_HOME\webapps\ROOT\WEB-INF에서 복사한다.
C:\testdomain\ROOT 디렉터리는 이 컨텍스트의 루트 디렉터리로 작동한다.
여기서 www.testdomain.com은 추가하려는 도메인이 되겠으며, 실제로 도메인을 보유하지 않고 개발 PC에서 작업하는 경우, C:\Windows\system32\drivers\etc\hosts 파일을 열고 마지막 줄에 다음을 추가한다.
127.0.0.1 www.testdomain.com
이제 웹브라우저를 열고 [www.testdomain.com:포트번호]에 접속하면 된다.
만일 C:\testdomain\ROOT 가 아닌 C:\testdomain 를 루트 디렉터리로 사용하고자 하는 경우에는
server.xml을 다음과 같이 작성한다.
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
<Host name="www.testdomain.com" appBase="C:\testdomain"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<context path="" docBase="D:\Team_ePro\StrutsPilot"></context>
</Host>
2. 포트 번호로 분류하는 방법
톰캣에서도 MS의 IIS와 같이 포트 번호에 따라 호스팅하는 것이 가능하다.
TOMCAT_HOME\conf\server.xml 을 열고 아래와 같이 Service 엘리먼트를 추가한다.
<FONT color="#ff7635"> <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="testdomain">
<Connector connectionTimeout="20000" port="8090" redirectPort="8444"/>
<Connector port="8010" protocol="AJP/1.3" redirectPort="8444"/>
<Engine defaultHost="localhost" name="testdomain">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
<Host appBase="C:\testdomain" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
<Context docBase="C:\testdomain" path="" reloadable="true"/>
</Host>
</Engine>
</Service>
</FONT>
Service 엘리먼트의 name 속성은 추가하려는 컨텍스트의 이름이 되겠다.
첫 Connector 엘리먼트의 port 속성은 사용하려는 포트 번호를 넣으면 된다.
Host 엘리먼트와 context 엘리먼트, appBase에 대한 물리적 경로 생성은 1항의 설명과 같다.
이제 웹브라우저를 열고 [localhost:포트번호]에 접속하면 된다.
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] AES256 암호화 할 때 키 길이 오류 발생하는 경우 (0) | 2023.02.27 |
---|---|
[JAVA] 날짜/시간 계산 예제 코드 (0) | 2023.02.27 |
[JAVA] eclipse indigo 와 JBOSS 5.0.1 GA 연동 (0) | 2023.02.27 |
[JAVA] JBoss 6.1.0 관리자 ID, PW 변경 (0) | 2023.02.27 |
[JAVA] TOMCAT 6.0 에서 서블릿이 실행 가능하도록 설정하는 방법 (0) | 2023.02.27 |
댓글