java不同于php,单个站点更新维护都会影响到其他站点,一般都会将几个站点放在一个实例下。今天全称演示单台服务器如何配置多个


tomcat实例。

环境


tomcat:/usr/local/tomcat-7.0.50

a.hhh.com

站点程序:/data/site/a.hhh.com

端口:8080

b.hhh.com

站点程序:/data/site/b.hhh.com

端口:8081

1. tomcat安装


安装很简单,配置好jdk与解压tomcat即可,关于《tomcat安装》我这边不再重复了。

如果连接失效,请复制http://www.hhh.com/web/install-tomcat7-on-linux/

2. 配置多实例目录


在tomcat安装目录下创建a.hhh.com、b.hhh.com,并且将conf、logs、webapp、temp、work目录拷贝到这两个目录,然后tomcat安装目录只


需要留下bin、a.hhh.com、b.hhh.com、lib这4个目录即可。配置后的目录结构如下:


# pwd

/usr/local/tomcat-7.0.50

# tree -d -L 2

├── bin

├── a.hhh.com

│ ├── conf

│ ├── logs

│ ├── target

│ ├── temp

│ ├── webapp

│ └── work

├── lib

└── b.hhh.com

├── conf

├── logs

├── temp

├── webapp

└── work

3. 配置站点server.xml


3.1 配置a.hhh.com


# vim /usr/local/tomcat-7.0.50/a.hhh.com/conf/server.xml

//注释ajp

<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->

 

//server端口8005改为8001

<Server port="8001" shutdown="SHUTDOWN">

 

//在<Engine name="Catalina" defaultHost="localhost">增加host配置,如下

<Host name="a.hhh.com" appBase="/data/site/a.hhh.com"

      unpackWARs="true" autoDeploy="true"

      xmlValidation="false" xmlNamespaceAware="false">

      <Context path="" docBase=""  reloadable="true">

        <valve className="org.apache.catalina.valves.RemoteAddrValve" />

      </Context>

</Host>

 

3.2 配置b.hhh.com

# vim /usr/local/tomcat-7.0.50/a.hhh.com/conf/server.xml

//注释ajp

<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->

 

//server端口8005改为8002

<Server port="8002" shutdown="SHUTDOWN">

 

//在<Engine name="Catalina" defaultHost="localhost">增加host配置,如下

<Host name="b.hhh.com" appBase="/data/site/b.hhh.com"

      unpackWARs="true" autoDeploy="true"

      xmlValidation="false" xmlNamespaceAware="false">

      <Context path="" docBase=""  reloadable="true">

        <valve className="org.apache.catalina.valves.RemoteAddrValve" />

      </Context>

</Host>

4. 多实例启动脚本


在a.hhh.com、b.hhh.com目录下分别创建启动脚本tomcat.sh

4.1 脚本内容tomcat.sh


#!/bin/sh

# AuthName:凉白开

# Website:http://www.hhh.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

4.2 启动脚本赋权限

1

# chmod a+x tomcat.sh

5. 启动测试


5.1 启动/关闭a.hhh.com


6

启动

# cd /usr/local/tomcat-7.0.50/a.hhh.com/

# ./tomcat.sh start

关闭

# cd /usr/local/tomcat-7.0.50/a.hhh.com/

# ./tomcat.sh stop

5.2 启动/关闭b.hhh.com


启动

# cd /usr/local/tomcat-7.0.50/a.hhh.com/

# ./tomcat.sh start

关闭

# cd /usr/local/tomcat-7.0.50/a.hhh.com/

# ./tomcat.sh stop

备注:一定需要cd到tomcat.sh的当前目录下执行才可以

6. 结束


配置到此结束,如果需要操作多个实例显得比较麻烦,大家可以自行写统一的脚本,我这边有自己的一份,有需要的可以找我要。内容比较


多,就不贴出来了。