ablog

不器用で落着きのない技術者のメモ

単一ホストで Tomcat のインスタンスを複数起動する

環境

# uname -a
SunOS solaris101 5.10 Generic_137138-09 i86pc i386 i86pc
# java -version
java version "1.5.0_16"
Java(TM) Platform, Standard Edition for Business (build 1.5.0_16-b02)
Java HotSpot(TM) Client VM (build 1.5.0_16-b02, mixed mode, sharing)
# /opt/tomcat6/bin/version.sh 
Using CATALINA_BASE:   /opt/tomcat6
Using CATALINA_HOME:   /opt/tomcat6
Using CATALINA_TMPDIR: /opt/tomcat6/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/tomcat6/bin/bootstrap.jar
Server version: Apache Tomcat/6.0.24
Server built:   January 19 2010 1439
Server number:  6.0.0.0
OS Name:        SunOS
OS Version:     5.10
Architecture:   x86
JVM Version:    1.5.0_16-b02
JVM Vendor:     Sun Microsystems Inc.

手順

  • CATALINA_BASE をコピーする。
# cp -pr /opt/tomcat6 /opt/tomcat6-2
  • server.xml のポートを変更する。
# cd /opt/tomcat6-2/conf
# perl -i.org -ple 's/port="8005"/port="8006"/g;s/port="8080"/port="8081"/g;s/redirectPort="8443"/redirectPort="8444"/g;s/port="8009"/port="8010"/g;' server.xml
# diff server.xml.org server.xml
22c22
< <Server port="8005" shutdown="SHUTDOWN">
---
> <Server port="8006" shutdown="SHUTDOWN">
69c69
<     <Connector port="8080" protocol="HTTP/1.1" 
---
>     <Connector port="8081" protocol="HTTP/1.1" 
71c71
<                redirectPort="8443" />
---
>                redirectPort="8444" />
75c75
<                port="8080" protocol="HTTP/1.1" 
---
>                port="8081" protocol="HTTP/1.1" 
77c77
<                redirectPort="8443" />
---
>                redirectPort="8444" />
90c90
<     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
---
>     <Connector port="8010" protocol="AJP/1.3" redirectPort="8444" />
# cd /etc/init.d
# perl -ple 's/jsvc\.pid/jsvc2\.pid/g;s/\/opt\/tomcat6/\/opt\/tomcat6-2/g' jsvc > jsvc2
# diff jsvc jsvc2
33,34c33,34
< CATALINA_HOME=/opt/tomcat6
< DAEMON_HOME=/opt/tomcat6/bin
---
> CATALINA_HOME=/opt/tomcat6-2
> DAEMON_HOME=/opt/tomcat6-2/bin
39,40c39,40
< PID_FILE=/var/run/jsvc.pid
< CATALINA_BASE=/opt/tomcat6
---
> PID_FILE=/var/run/jsvc2.pid
> CATALINA_BASE=/opt/tomcat6-2
# /etc/init.d/jsvc2 start
# ps -elf|egrep "[j]svc"
 0 S     root  1119     1   0  40 20        ?    367        ? 00:40:52 ?           0:00 /opt/tomcat6-2/bin/jsvc -user tomca
 0 S     root   675     1   0  40 20        ?    367        ? 23:46:33 ?           0:00 /opt/tomcat6/bin/jsvc -user tomcat 
 0 S   tomcat   676   675   0  40 20        ?  27896        ? 23:46:33 ?           0:12 /opt/tomcat6/bin/jsvc -user tomcat 
 0 S   tomcat  1120  1119   4  40 20        ?  27220        ? 00:40:52 ?           0:02 /opt/tomcat6-2/bin/jsvc -user tomca
  • 確認してみる。



ok!