1개의 Tomcat에서 멀티 instance 구동하기
1개의 Tomcat에서 2개의 instance를 띄우고자 하는 시나리오를 가정한다. (Tomcat 8.0 기준)
1. Tomcat 설치 폴더 :
/home/finkle/tomcat8
2. 인스탄스 1번 폴더 :
/home/finkle/instance/svc01
3. 인스탄스 2번 폴더 :
/home/finkle/instance/svc02
1. 톰캣 설치 폴더에서 1번 instance로 파일 복사
$ cd /home/finkle/instance/svc01
$ cp -R /home/finkle/tomcat8/* .
$ rm -rf bin lib LICENSE NOTICE RELEASE-NOTES RUNNING.txt
$ ls
conf logs temp webapps work
※ 2번 instance도 위와 같은 과정을 따라한다.
3. conf/server.xml 수정 : 서비스를 위한 포트번호가 중복되지 않도록 설정한다.
1번 instance의 server.xml
<Server port="8005" shutdown="SHUTDOWN">
....
<Connector port="80" protocol="HTTP/1.1" Server="WAS-NAME"
connectionTimeout="20000"
redirectPort="443" URIEncoding="utf-8" />
....
2번 instance의 server.xml
<Server port="8015" shutdown="SHUTDOWN">
....
<Connector port="8010" protocol="HTTP/1.1" Server="WAS-NAME"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8" />
....
4. 1번 instance의 Tomcat 구동 스크립트 작성
$ cd /home/finkle/instance/svc01
$ mkdir bin
$ cd bin
$ touch startup.sh
$ touch shutdown.sh
$ chmod +x *.sh
startup.sh
#!/bin/sh
CATALINA_BASE=/home/finkle/instance/svc01
CATALINA_OPTS="-Denv.servername=svc01"
CATALINA_PID=/home/finkle/instance/svc01/svc01.pid
JAVA_OPTS="-Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -server -Xms512m -Xmx512m"
export CATALINA_BASE CATALINA_OPTS CATALINA_PID JAVA_OPTS
/bin/su -p -s /bin/sh finkle $CATALINA_HOME/bin/startup.sh
shutdown.sh
#!/bin/sh
CATALINA_BASE=/home/finkle/instance/svc01
CATALINA_PID=/home/finkle/instance/svc01/svc01.pid
export CATALINA_BASE CATALINA_PID
/bin/su -p -s /bin/sh finkle $CATALINA_HOME/bin/shutdown.sh
※ 2번 instance도 위와 같은 과정을 따라한다.
도움받은 곳 :
http://linux.systemv.pe.kr/tomcat-multi-instance-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0/