在我们使用Tomcat的过程当中,有时候可能需要在单台节点上运行多个实例,
其实我们只需要在安装的过程当中,修改部分内容即可。
这里我们将Tomcat的主程序与实例分开,然后修改相关端口和配置,这样我们就可以建立多个实例,而互不影响。
解压安装包:
[tomcat@mqtest opt]$ tar -zxvf apache-tomcat-6.0.37.tar.gz
我们查看一下目录结构:
[tomcat@mqtest apache-tomcat-6.0.37]$ ls -l总计 100
drwxrwxr-x 2 tomcat tomcat 4096 10-02 09:45 bin
drwxr-xr-x 2 tomcat tomcat 4096 2013-04-29 conf
drwxr-xr-x 2 tomcat tomcat 4096 10-02 09:45 lib
-rw-r--r-- 1 tomcat tomcat 37951 2013-04-29 LICENSE
drwxr-xr-x 2 tomcat tomcat 4096 2013-04-29 logs
-rw-r--r-- 1 tomcat tomcat 558 2013-04-29 NOTICE
-rw-r--r-- 1 tomcat tomcat 9188 2013-04-29 RELEASE-NOTES
-rw-r--r-- 1 tomcat tomcat 16287 2013-04-29 RUNNING.txt
drwxr-xr-x 2 tomcat tomcat 4096 10-02 09:45 temp
drwxr-xr-x 7 tomcat tomcat 4096 2013-04-29 webapps
drwxr-xr-x 2 tomcat tomcat 4096 2013-04-29 work
在这些目录当中,bin目录和lib目录是在所有实例当中运行所必须的,
然后我们在当前目录中创建两个实例目录:
[tomcat@mqtest apache-tomcat-6.0.37]$ mkdir {instance1,instance2}
将conf、logs、temp、webapps、work这几个目录复制一份到instance1和instance2目录下,
修改后的目录结构如下:
[tomcat@mqtest apache-tomcat-6.0.37]$ ls -l总计 88
drwxrwxr-x 2 tomcat tomcat 4096 10-02 09:45 bin
drwxrwxr-x 7 tomcat tomcat 4096 10-02 09:57 instance1
drwxrwxr-x 7 tomcat tomcat 4096 10-02 09:57 instance2
drwxr-xr-x 2 tomcat tomcat 4096 10-02 09:45 lib
-rw-r--r-- 1 tomcat tomcat 37951 2013-04-29 LICENSE
-rw-r--r-- 1 tomcat tomcat 558 2013-04-29 NOTICE
-rw-r--r-- 1 tomcat tomcat 9188 2013-04-29 RELEASE-NOTES
-rw-r--r-- 1 tomcat tomcat 16287 2013-04-29 RUNNING.txt
接下来我们需要修改相关端口号,避免冲突,
分别进入instance1/conf和instance2/conf目录下,修改server.xml文件:
[tomcat@mqtest conf]$ vi server.xml
instance1/conf 找到如下三段配置并修改:
<Connector port="8109" protocol="AJP/1.3" redirectPort="8443" /><Server port="8105" shutdown="SHUTDOWN">
<Connector port="8180" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
Connector port - 应用开放服务的端口。
Shutdown port – 关闭tomcat监听的端口
Connector ajp port – web服务器通信端口
Redirect port - 这里我们没用到SSL,所以可以不用修改
[tomcat@mqtest conf]$ vi server.xml
instance2/conf 找到如下三段配置并修改:
<Connector port="8209" protocol="AJP/1.3" redirectPort="8443" />
<Server port="8205" shutdown="SHUTDOWN">
<Connector port="8280" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
为了之后我们维护的方便,我们需要分别创建启动和停止脚本,这里简单演示一下,我们可以参考catalina.sh脚本文件:
这里有几个环境变量需要注意:
CATALINA_HOME - bin和lib所在的目录
CATALINA_BASE - 默认是CATALINA_HOME的值,不同的实例需要定义不同的值
JAVA_HOME - java安装目录
[tomcat@mqtest instance1]$ touch {start.sh,stop.sh}
[tomcat@mqtest instance1]$ chmod 755 start.sh stop.sh
[tomcat@mqtest instance1]$ vi start.shexport CATALINA_HOME="/opt/apache-tomcat-6.0.37"
export CATALINA_BASE= $CATALINA_HOME/instance1
export JVM_OPTIONS="-Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m"
cd $CATALINA_HOME/bin
./startup.sh
[tomcat@mqtest instance1]$ vi stop.sh
export CATALINA_HOME="/opt/apache-tomcat-6.0.37"
export CATALINA_BASE= $CATALINA_HOME/instance1
export JVM_OPTIONS="-Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m"
cd $CATALINA_HOME/bin
./shutdown.sh
如果有更多的实例,按照上面的步骤即可!