tomcat单机多实例配置实战
tomcat单机多实例配置实战
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个目录即可。配置后的目录结构如下:
3. 配置站点server.xml
3.1 配置a.ttlsa.com
<!-- <Connector port= "8009" protocol= "AJP/1.3" redirectPort= "8443" /> --> |
<Server port= "8001" shutdown = "SHUTDOWN" > |
//在<Engine name= "Catalina" defaultHost= "localhost" >增加host配置,如下 |
<Host name= "a.ttlsa.com" appBase= "/data/site/a.ttlsa.com" |
unpackWARs= "true" autoDeploy= "true" |
xmlValidation= "false" xmlNamespaceAware= "false" > |
<Context path= "" docBase= "" reloadable= "true" > |
<valve className= "org.apache.catalina.valves.RemoteAddrValve" /> |
3.2 配置b.ttlsa.com
<!-- <Connector port= "8009" protocol= "AJP/1.3" redirectPort= "8443" /> --> |
<Server port= "8002" shutdown = "SHUTDOWN" > |
//在<Engine name= "Catalina" defaultHost= "localhost" >增加host配置,如下 |
<Host name= "b.ttlsa.com" appBase= "/data/site/b.ttlsa.com" |
unpackWARs= "true" autoDeploy= "true" |
xmlValidation= "false" xmlNamespaceAware= "false" > |
<Context path= "" docBase= "" reloadable= "true" > |
<valve className= "org.apache.catalina.valves.RemoteAddrValve" /> |
4. 多实例启动脚本
在a.ttlsa.com、b.ttlsa.com目录下分别创建启动脚本tomcat.sh
4.1 脚本内容tomcat.sh
export CATALINA_BASE= "$PWD" |
export CATALINA_HOME= "/usr/local/tomcat-7.0.50" |
export JVM_OPTIONS= "-Xms128m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m" |
if [ -f $CATALINA_HOME/bin/startup.sh ]; then |
$CATALINA_HOME/bin/startup.sh |
if [ -f $CATALINA_HOME/bin/ shutdown .sh ]; then |
$CATALINA_HOME/bin/ shutdown .sh |
echo $ "Usage: $0 {start|stop}" |
4.2 启动脚本赋权限
5. 启动测试
5.1 启动/关闭a.ttlsa.com
5.2 启动/关闭b.ttlsa.com
备注:一定需要cd到tomcat.sh的当前目录下执行才可以
6. 结束
配置到此结束,如果需要操作多个实例显得比较麻烦,大家可以自行写统一的脚本