Linux 下启动两个tomcat

闲来无事学习nginx,想要配置个load balance。可是先决条件是:得有两个web容器。两个电脑是不用想了。只能想办法在一个机器上启动两个tomcat。原以为挺简单的,只要改改port就好了。谁知单单改port压根不会成功。网上找了很多解决方案,要么繁杂的要死,要么说的云里雾里的。于是决定结合网上的说法和自己的想法,重新写一个方案。

先说解决方案吧。(我用的是tomcat-7.0.62,安装的路径是/usr/local/apache-tomcat-7.0.62)

1.先把原来的tomcat复制一份,地址随便放,文件名随便取。我复制为 /usr/local/apache-tomcat-7.0.62-copy

2.修改/usr/local/apache-tomcat-7.0.62-copy/conf/server.xml,用意是不要让端口与原来的冲突了

  在此server.xml中一共有三个port,下面列出的是默认的设置。这三个端口都要修改。(我一开始的想法是只要简单的后面加个1,变成80051,80801,80091,反正只要端口最大不超过65535就行了。结果报什么端口out of range 错误。。。。。)好吧,那就分别改为8006,8081,8010好了

1 <!--这个好像是关闭的端口,具体作用不清楚-->
2 <Server port="8005" shutdown="SHUTDOWN">
3
4 <!--这个应该知道是什么端口吧-->
5  <Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000“ redirectPort="8443" />
6
7
8  <!--注释上说是什么AJP 1.3的连接端口,具体什么作用还是不清出-->
9  <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

3.在~/.bash_profile中添加下面两个。 

1 export CATALINA_BASE2=/usr/local/apache-tomcat-7.0.62-copy
2 export CATALINA_HOME2=/usr/local/apache-tomcat-7.0.62-copy

修改完成后用命令 source ~/.bash_profile使新配置的环境变量生效

 可以看到这两行的作用是添加环境变量,但是添加环境变量的方法并不只这一种。所以无论用什么方法,达到添加这两个环境变量的目的就行了。

4.修改/usr/local/apache-tomcat-7.0.62-copy//bin/catalina.sh, 在开头的位置添加下面绿色的两行。(差不多就是在catalina.sh开始的位置)

 1 # resolve links - $0 may be a softlink
 2 PRG="$0"
 3
 4 while [ -h "$PRG" ]; do
 5   ls=`ls -ld "$PRG"`
 6   link=`expr "$ls" : ‘.*-> \(.*\)$‘`
 7   if expr "$link" : ‘/.*‘ > /dev/null; then
 8     PRG="$link"
 9   else
10     PRG=`dirname "$PRG"`/"$link"
11   fi
12 done
13
14 # Get standard environment variables
15 PRGDIR=`dirname "$PRG"`
16
17 # Only set CATALINA_HOME if not already set
18 [ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`
19
20 # Copy CATALINA_BASE from CATALINA_HOME if not already set
21 [ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"
22
23 CATALINA_HOME=$CATALINA_HOME2
24 CATALINA_BASE=$CATALINA_BASE2

5. 分别启动两个tomcat就好了。

好吧,下面的东西是我自己看catalina.sh的解释,与启动两个tomcat没有任何关系。

上面第四步的那一段代码的目的就是取得 CATALINA_HOME和CATALINA_BASE。

  一开始这一段是说如果sh是链接的话的处理方法。$0就是bash文件的名称。

 1 # resolve links - $0 may be a softlink
 2 PRG="$0"
 3
 4 while [ -h "$PRG" ]; do
 5   ls=`ls -ld "$PRG"`
 6   link=`expr "$ls" : ‘.*-> \(.*\)$‘`
 7   if expr "$link" : ‘/.*‘ > /dev/null; then
 8     PRG="$link"
 9   else
10     PRG=`dirname "$PRG"`/"$link"
11   fi
12 done

下面有一句就是取得bash所在的文件夹。

1 # Get standard environment variables
2 PRGDIR=`dirname "$PRG"`

再下面注释写的很清楚了,如果我们配置了CATALINA_HOME的环境变量,那就什么都不干,如果没有配置,那就让变量CATALINE_HOME指向 PRGIDR的父目录,实际就是tomcat安装目录。

1 # Only set CATALINA_HOME if not already set
2 [ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`
3
4 # Copy CATALINA_BASE from CATALINA_HOME if not already set
5 [ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"

我们的修改的意思是不管前面CATALINA_HOME和CATALINA_BASE设置为了什么,反正最后我一刀切,全设置为我想要的,即如下的代码

1 CATALINA_HOME=$CATALINA_HOME2
2 CATALINA_BASE=$CATALINA_BASE2

下面还有一个说明:

理论上来讲上面的配置就可以了。可是有一点小小的瑕疵:假设环境变量$CATALINA_HOME2和$CATALINA_BASE2是设在root用户下的,那么tomcat救只能用root用户启动了,别的用户根本启动不了。

并且,如果某个不知道catalina.sh已经被修改过的人复制apache-tomcat-7.0.62-copy到另外的地方,比如另一台服务器,他会发现tomcat启动不了了。。。其实catalina.sh这么写更好,即把绿色的那两行往前移一移就好了

 1 # resolve links - $0 may be a softlink
 2 PRG="$0"
 3
 4 while [ -h "$PRG" ]; do
 5   ls=`ls -ld "$PRG"`
 6   link=`expr "$ls" : ‘.*-> \(.*\)$‘`
 7   if expr "$link" : ‘/.*‘ > /dev/null; then
 8     PRG="$link"
 9   else
10     PRG=`dirname "$PRG"`/"$link"
11   fi
12 done
13
14 # Get standard environment variables
15 PRGDIR=`dirname "$PRG"`
16
17 CATALINA_HOME=$CATALINA_HOME2
18 CATALINA_BASE=$CATALINA_BASE2
19
20 # Only set CATALINA_HOME if not already set
21 [ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`
22
23 # Copy CATALINA_BASE from CATALINA_HOME if not already set
24 [ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"
时间: 2024-10-14 00:12:59

Linux 下启动两个tomcat的相关文章

Linux下配置两个或多个Tomcat启动

Linux下配置两个或多个Tomcat启动 (2012-08-14 11:59:31) 转载▼ 标签: 杂谈 分类: linux_tomcat 步骤如下: (1)修改/etc/profile文件.添加一组java环境变量,和两组CATALINA环境变量(我没有进行此步骤的设置,可能因为我的Tomcat是免安装版的吧)记得修改完要使其生效,用命令:source /etc/profile JAVA_HOME=/usr/java/jdk1.7.0 PATH=$JAVA_HOME/bin:$PATH C

linux 启动两个tomcat

按照下面的步骤操作即可部署成功:一些具体操作命令就不详细说了,直接说有用的:1.在 /usr/local 下部署两个Tomcat,tomcat的文件夹重命名为:tomcat6-1  .  tomcat6-2 2.修改 linux 的profile文件,文件路径 /etc       在profile 中增加以下内容:[plain] view plaincopyJAVA_HOME=/usr/java/jdk1.7.0_45  CLASSPATH=.:$JAVA_HOME/lib/tools.jar

linux下启动tomcat报错 Failed to get local InetAddress for VMID. This is unlikely to matter. At all. We&#39;ll add some extra randomness

INFO [localhost-startStop-1] com.mchange.v2.log.slf4j.Slf4jMLog$Slf4jMLogger$InfoLogger.log(206) | Failed to get local InetAddress for VMID. This is unlikely to matter. At all. We'll add some extra randomnessjava.net.UnknownHostException: Oracle.Linu

Linux下部署多个Tomcat(完整)

Linux下部署多个Tomcat 1.环境:1.1.Centos 5.01.2.apache-tomcat-6.0.18 2.需要解决一下几个问题2.1.不同的tomcat启动和关闭监听不同的端口2.2.不同的tomcat的启动文件startup.sh 中要指定各自的CATALINA_HOME和CATALINA_BASE这两个环境变量. 3.解决步骤: 3.1.修改/etc目录下的profile文件,添加一组java环境变量,和两组CATALINA环境变量:修改后的profile文件示例如下:J

Linux下通过apache实现tomcat集群

对于WEB应用集群的技术实现而言,最大的难点就是如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块.要实现这一点,大体上有两种方式,一种是把所有Session数据放到一台服务器上或者数据库中,集群中的所有节点通过访问这台Session服务器来获取数据:另一种就是在集群中的所有节点间进行Session数据的同步拷贝,任何一个节点均保存了所有的Session数据.两种方式都各有优点,第一种方式简单.易于实现,但是存在着Session服务器发生故障会导致全

如何在一个Eclipse同时启动两个Tomcat

比如:有两个版本的tomcat,一个5.*,一个6.*,此时由于两个工程分别部署在两个版本的tomcat下,需要同时启动两个tomcat,以下是方法: 1.特别要注意: 不要设置CATALINA_HOME 2.分别修改安装目录下的conf子目录中的server.xml文件: a.修改http访问端口(默认为8080端口,我习惯在安装的时候就改成别的端口号,比如5.*改成8081,6.*改成8086),将8080修改为 tomcat不在使用的端口号.此处所设的端口号即是以后访问web时所用的端口号

Linux下的两种服务:RPM包默认安装的服务和源码包安装的服务

有些软件安装到电脑上后就会有一个或多个服务出现在系统服务管理里面,比如Apache,VMware软件等就会出现在计算机服务里面,可以随系统的启动而启动,当然也可以设置不启动,等要用了的时候再去启动,(可以在运行里面输入services.msc直接打开服务列表),但是有些软件安装到电脑后不会有什么服务生成,比如我们的聊天工具QQ. Linux下有两种服务,一种是RPM包默认安装的服务,一种是源码包安装的服务. RPM默认安装的服务在/etc/rc.d/init.d/文件下,执行service sm

linux下实现自动部署tomcat的脚本

linux下实现自动部署tomcat的脚本 由于经常部署war到tomccat上,经常有一些重复的工作要做:停服务.备份war包.上传新的war包.启动服务.索性就写了一个自动部署的脚本. 脚本如下autoDeploy.sh: 1 #! /bin/sh 2 echo '####################开始自动部署####################' 3 path=`pwd` #当前路径 4 tomcatPath=tomcat-7 #指定tomcat文件目录名称 5 cd ../$t

linux下启动tomcat----Cannot find ./catalina.sh

参考:http://dearseven.blog.163.com/blog/static/1005379222013764440253/ linux 下启动tomcat [[email protected] bin]# sh startup.sh Cannot find ./catalina.shThe file is absent or does not have execute permissionThis file is needed to run this program 解决办法:给.