출처: http://okjsp.pe.kr/seq/91825
단일 Tomcat 서버에서 여러개의 사이트를 가상 호스트로 서비스 하는 방법과
가 호스트별로 Manager Application을 설정하는 방법입니다.
- 테스트 된 Tomcat 버전
Tomcat 5.5
- 수정하게 될 설정 파일 목록
${catalina.home}/conf/server.xml
${catalina.home}/conf/tomcat-users.xml
- 테스트 가정
aaa.com 도메인과 bbb.com 두개의 도메인을 사용하여 각기 다른 사이트를 서비스 하려 하고,
각 도메인 마다 Manager Application을 사용하여 Context 관리를 하고자 하는 상황.
단계 1 - 가상 호스트를 사용하여 단일 Tomcat 서버에서 두개(혹은 그 이상)의 사이트가 가동 되도록 설정
a. 각 사이트별 기본 디렉토리를 생성 합니다. (${catalina.home}/webapps 디렉토리와 같은 기능)
b. D 드라이브에 aaa 디렉토리 생성 <- aaa 디렉토리가 각 사이트별 기본 디렉토리(웹 ROOT 디렉토리 아님)가 됩니다.
c. aaa 폴더 아래에 ROOT 디렉토리 생성 <- ROOT 디렉토리가 사이트의 기본 웹 ROOT 디렉토리가 됩니다.
a ~ c 의 과정을 반복하여 bbb.com 이 가동될 디렉토리 생성
생성 결과
D:/aaa
D:/aaa/ROOT
D:/bbb
D:/bbb/ROOT
d. ${catalina.home}/conf/server.xml 파일을 열어 아래의 내용을 추가 합니다.
<Host>...</Host>
<Host name="aaa.com" appBase="D:/aaa" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
</Host>
<Host name="bbb.com" appBase="D:/bbb" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
</Host>
e. 각 디렉토리(D:/aaa/ROOT, D:/bbb/ROOT)에 소스 저장
f. Tomcat 재 시작
g. http://aaa.com 과 http://bbb.com 으로 접속하여 각 사이트가 열리는지 확인
단계 2 - 각 사이트별 Manager Application 기능 설정
a. ${catalina.home}/conf/server.xml 파일을 열어 다음과 같이 수정 합니다.
<Host name="aaa.com" appBase="D:/aaa" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="/manager" docBase="${catalina.home}/server/webapps/manager" privileged="true"/>
</Host>
<Host name="bbb.com" appBase="D:/bbb" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="/manager" docBase="${catalina.home}/server/webapps/manager" privileged="true"/>
</Host>
b. 각 사이트별 Manager Application에 접근 할 수 있도록 아이디를 부여 합니다.
${catalina.home}/conf/tomcat-users.xml 파일을 열어 다음의 내용을 추가 합니다.
<user username="aaaAdmin" password="111" roles="manager"/>
<user username="bbbAdmin" password="111" roles="manager"/>
c. Tomcat을 재 시작
d. http://aaa.com/manager/html 로 접속(aaaAdmin // 1111) 하여 Manager Application 확인
e. http://bbb.com/manager/html 로 접속(bbbAdmin // 1111) 하여 Manager Application 확인
단계 3 - 각 사이트별 Context 추가
a. 추가하고자 하는 Context 이름으로 각 사이트의 기본 디렉토리에 생성 합니다.
예) member라는 Context 추가 - D:/aaa/member
b. member 디렉토리에 소스를 넣고 http://aaa.com/member/~~~~~ 로 접속하여 Context를 확인 합니다.
c. 추가된 Context는 각 사이트별 Manager Application에서 관리 할 수 있습니다.
이상 끝~~
단일 Tomcat 서버에서 호스트별로 Manager Application 을 사용 할 수 있도록 설정하는 방법을 찾다가
정리된 문서가 없는 것 같아 한번 올려봅니다...
정리된 문서가 있을지도 모르겠지만 제가 정보검색 능력이 부족한지 못찾아서 나름 정리봤습니다..ㅎㅎ;;
잘못된 부분이 있다면 태클 걸어주시면 대략 감사 하겠습니다 ;;;
2007-03-21 잘못 기재된 정보 정정
각 사이트별 manager 에 대한 접근 권한에 대한 부분입니다~
skyer9님이 지적해 주신 부분에 대한 내용 입니다.
${catalina.home}/conf/tomcat-users.xml 을 아래와 같이 수정 합니다.
1. role을 하나 추가 합니다.
<role rolename="aaaManager"/>
2. 사용자 정보를 수정 합니다.
<user username="aaaAdmin" password="111" roles="aaaManager"/>
각 사이트별 manager 권한을 따로 하기 위하여 아래와 같이 합니다.
각 사이트별 기본 디렉토리에 ${catalina.home}/server/webapps/manager 폴더를 복사합니다.
D:/aaa/manager 폴더가 되겠죠
이 폴더에서 WEB-INF/web.xml 파일을 열어서 다음과 같이 수정 합니다.
<auth-constraint>
<!-- NOTE: This role is not present in the default users file -->
<role-name>aaaManager</role-name>
</auth-constraint>
<security-role>
<description>
The role that is required to log in to the Manager Application
</description>
<role-name>aaaManager</role-name>
</security-role>
다음 ${catalina.home}/conf/server.xml을 재 수정 합니다.
<Host name="aaa.com" appBase="D:/aaa" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="/manager" docBase="D:/aaa/manager" privileged="true"/>
</Host>
<Host name="bbb.com" appBase="D:/bbb" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="/manager" docBase="D:/bbb/manager" privileged="true"/>
</Host>
톰캣을 재 시작 하고 테스트 해 봅니다.
'Server관련 > Sever(OS)' 카테고리의 다른 글
[linux] LVM in rescue mode (복원) (0) | 2008.09.16 |
---|---|
[Unix] 좀비 프로세스 대치법 (0) | 2008.09.09 |
[unix]kill signal + tomcat 프로세스 스레드값 만들기 (kill -3 <pid>) (0) | 2008.09.03 |
아파치 톰캣 디렉터리 열람 취약점 (0) | 2008.08.13 |
[톰켓6.0]server.xml에 utf-8설정 (0) | 2008.04.08 |
vpn설정시 , Active 디렉토리 DNS주소와 DNS접미사 추가하기 (0) | 2008.03.26 |
nslookup으로 메일서버정보 보기 (0) | 2008.03.26 |
[Unix명령] head + HEAD command (0) | 2008.01.11 |
(로그인하지 않으셔도 가능)