[Tomcat] 톰캣에서 Multiple Instance띄우기.

2010. 5. 28. 11:12Was/Tomcat

Tomcat을 1개만 설치하고 사용자에 따라서 톰캣을 여러개 띄워야 할 경우 사용자마다 Tomcat을 깔아주지 않고

해결할수 있는 방법입니다.

1. 톰캣 설치시에 CATALINA_HOME이라는 환경 변수를 잡아주도록 되어있습니다.

이 값은 Tomcat이 설치된 디렉토리를 지정해줍니다. 이 값은 톰캣 서버의 실행파일이나 클래스 패스등을 잡을때

사용하는 실행 경로라고 보시면 될것 같습니다.

 

이것 말도 톰캣을 여러개 띄우기 위해서는 CATALINA_BASE라는 환경변수를 잡아주면 됩니다.

CATALINA_BASE는 개별 톰캣 instance들을 위한 기본 디렉토리로 볼수 있습니다.

예제를 보시면 확실해 지실것입니다.

 

2. 기존 톰캣의 conf, logs, webapps, work, temp디렉토리를 새로운 톰캣 인스턴스를 위해 새로운 디렉토리를

만들고 그 디렉토리에 복사를 합니다.

 

3. conf디렉토리의 server.xml을 수정합니다. 포트번호라던지 Host설정 및 디렉토리정보를 수정해야됩니다.

 

4. 새로운 톰캣 instance를 띄우기 위해서 간단한 스크립트를 작성합니다.

 

 

다음은 윈도우즈 2000에서 blog와 club을 위해 별도의 톰캣 instance를 뛰우기 위해 설정하는 예입니다.

톰캣이 D:\Tomcat 디렉토리에 설치되어 있다고 가정합니다.

 

1. D:\Tomcat 디렉토리에 blog와 club이라는 디렉토리를 생성합니다.

 

2. blog와 club디렉토리에 D:\Tomcat 디렉토리에 있는 conf, logs, webapps, work, temp를 복사합니다.

 

3. blog와 club의 conf디렉토리에 server.xml을 열어서 포트정보등을 다른 것들과 충돌나지 않도록 수정해줍니다.

 

<!-- shutdown관련 포트 -->

<Server port="8025" shutdown="SHUTDOWN" debug="0">

 

<!-- 아파치 웹서버와 통신을 위한 포트 -->

  <Service name="Tomcat-Standalone">
  <Connector className="org.apache.ajp.tomcat4.Ajp13Connector"
  port="8029" minProcessors="5" maxProcessors="70"
  acceptCount="10" debug="0"/>

 

                <!-- Documnet Root -->

                <Context path="" reloadable="true" docBase="D:\Tomcat\blog\webapps" />



4 . blog, club을 기동시키기 위한 bat파일을 만들어줍니다.

 

D:\Tomcat\blog\startup.bat파일의 예입니다.

 

set CATALINA_HOME=D:\Tomcat
set CATALINA_BASE=%CATALINA_HOME%\blog

%CATALINA_HOME%\bin\startup.bat

 

5. 각각 startup.bat파일을 실행시키면 blog, club의 톰캣 instance가 하나씩실행됩니다.

stop시키는 스크립트는 귀찮아서 안만들었습니다. 당연한 말이겠지만 blog를 종료시키도

club은 아무 영향을 받지 않습니다.