java不同于php,单个站点更新维护都会影响到其他站点,一般都会将几个站点放在一个实例下。今天全称演示单台服务器如何配置多个tomcat实例。
环境
tomcat:/usr/local/tomcat-7.0.50
a.ttlsa.com
站点程序:/data/site/a.ttlsa.com
端口:8080
b.ttlsa.com
站点程序:/data/site/b.ttlsa.com
端口:8081
1. tomcat安装
安装很简单,配置好jdk与解压tomcat即可,关于《tomcat安装》我这边不再重复了。
如果连接失效,请复制http://www.ttlsa.com/web/install-tomcat7-on-linux/
2. 配置多实例目录
在tomcat安装目录下创建a.ttlsa.com、b.ttlsa.com,并且将conf、logs、webapp、temp、work目录拷贝到这两个目录,然后tomcat安装目录只需要留下bin、a.ttlsa.com、b.ttlsa.com、lib这4个目录即可。配置后的目录结构如下:
# pwd
/usr/local/tomcat-7.0.50
# tree -d -L 2
├── bin
├── a.ttlsa.com
│ ├── conf
│ ├── logs
│ ├── target
│ ├── temp
│ ├── webapp
│ └── work
├── lib
└── b.ttlsa.com
├── conf
├── logs
├── temp
├── webapp
└── work
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# pwd
/usr/local/tomcat-7.0.50
# tree -d -L 2
├──bin
├──a.ttlsa.com
│├──conf
│├──logs
│├──target
│├──temp
│├──webapp
│└──work
├──lib
└──b.ttlsa.com
├──conf
├──logs
├──temp
├──webapp
└──work
3. 配置站点server.xml
3.1 配置a.ttlsa.com
# vim /usr/local/tomcat-7.0.50/a.ttlsa.com/conf/server.xml
//注释ajp
//server端口8005改为8001
//在增加host配置,如下
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# vim /usr/local/tomcat-7.0.50/a.ttlsa.com/conf/server.xml
//注释ajp
//server端口8005改为8001
//在增加host配置,如下
unpackWARs="true"autoDeploy="true"
xmlValidation="false"xmlNamespaceAware="false">
3.2 配置b.ttlsa.com
# vim /usr/local/tomcat-7.0.50/a.ttlsa.com/conf/server.xml
//注释ajp
//server端口8005改为8002
//在增加host配置,如下
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# vim /usr/local/tomcat-7.0.50/a.ttlsa.com/conf/server.xml
//注释ajp
//server端口8005改为8002
//在增加host配置,如下
unpackWARs="true"autoDeploy="true"
xmlValidation="false"xmlNamespaceAware="false">
4. 多实例启动脚本
在a.ttlsa.com、b.ttlsa.com目录下分别创建启动脚本tomcat.sh
4.1 脚本内容tomcat.sh
#!/bin/sh
# AuthName:凉白开
# Website:http://www.ttlsa.com
# DateTime:2014-05-04
# description: 启动tomcat多实例.
. /etc/init.d/functions
RETVAL=$?
# tomcat实例目录
export CATALINA_BASE="$PWD"
# tomcat安装目录
export CATALINA_HOME="/usr/local/tomcat-7.0.50"
# 可选
export JVM_OPTIONS="-Xms128m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m"
case "$1" in
start)
if [ -f $CATALINA_HOME/bin/startup.sh ];then
echo $"Start Tomcat"
$CATALINA_HOME/bin/startup.sh
fi
;;
stop)
if [ -f $CATALINA_HOME/bin/shutdown.sh ];then
echo $"Stop Tomcat"
$CATALINA_HOME/bin/shutdown.sh
fi
;;
*)
echo $"Usage: $0 {start|stop}"
exit 1
;;
esac
exit $RETVAL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/sh
# AuthName:凉白开
# Website:http://www.ttlsa.com
# DateTime:2014-05-04
# description: 启动tomcat多实例.
./etc/init.d/functions
RETVAL=$?
# tomcat实例目录
exportCATALINA_BASE="$PWD"
# tomcat安装目录
exportCATALINA_HOME="/usr/local/tomcat-7.0.50"
# 可选
exportJVM_OPTIONS="-Xms128m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m"
case"$1"in
start)
if[-f$CATALINA_HOME/bin/startup.sh];then
echo$"Start Tomcat"
$CATALINA_HOME/bin/startup.sh
fi
;;
stop)
if[-f$CATALINA_HOME/bin/shutdown.sh];then
echo$"Stop Tomcat"
$CATALINA_HOME/bin/shutdown.sh
fi
;;
*)
echo$"Usage: $0 {start|stop}"
exit1
;;
esac
exit$RETVAL
4.2 启动脚本赋权限
# chmod a+x tomcat.sh
1
# chmod a+x tomcat.sh
5. 启动测试
5.1 启动/关闭a.ttlsa.com
启动
# cd /usr/local/tomcat-7.0.50/a.ttlsa.com/
# ./tomcat.sh start
关闭
# cd /usr/local/tomcat-7.0.50/a.ttlsa.com/
# ./tomcat.sh stop
1
2
3
4
5
6
启动
# cd /usr/local/tomcat-7.0.50/a.ttlsa.com/
# ./tomcat.sh start
关闭
# cd /usr/local/tomcat-7.0.50/a.ttlsa.com/
# ./tomcat.sh stop
5.2 启动/关闭b.ttlsa.com
启动
# cd /usr/local/tomcat-7.0.50/a.ttlsa.com/
# ./tomcat.sh start
关闭
# cd /usr/local/tomcat-7.0.50/a.ttlsa.com/
# ./tomcat.sh stop
1
2
3
4
5
6
启动
# cd /usr/local/tomcat-7.0.50/a.ttlsa.com/
# ./tomcat.sh start
关闭
# cd /usr/local/tomcat-7.0.50/a.ttlsa.com/
# ./tomcat.sh stop
备注:一定需要cd到tomcat.sh的当前目录下执行才可以
6. 结束
配置到此结束,如果需要操作多个实例显得比较麻烦,大家可以自行写统一的脚本,我这边有自己的一份,有需要的可以找我要。内容比较多,就不贴出来了。