Tomcat单机多实例详解

1,首先看下tomcat的目录结构,每个文件都有各自的用途。
[root@liangqi tomcat]# ls -ll
total 116
bin -包含所运行的tomcat二进制文件和脚本文件
conf-包含配置信息,tomcat绑定的端口等
lib-包含tomcat使用的所有共享库
logs-包含所有的日志文件
temp-该目录是tomcat存放的临时文件
webapps-该目录非常重要,存放所有应用程序的war包
work-如果应用程序包含jsp文件,那每个jsp文件都会被转化为servlet存在这
当我们运行tomcat的时候,会用到5个环境变量:
Using CATALINA_BASE:
Using CATALINA_HOME:
Using CATALINA_TMPDIR:
Using JRE_HOME:
Using CLASSPATH:
在上面变量中,CATALINA_HOME和 JRE_HOME是必要的环境变量,其它的都可以通过CATALINA_HOME来转换。
CATALINA_HOME 该环境变量是tomcat安装提取的根目录,所以通过CATALINA_HOME可以得到bin和lib目录。
CATALINA_BASE 如果不指定则是CATALINA_HOME的值,该变量指向目录里面包括每个运行实例需要使用自己的conf,logs,temp,webapps,work目录。
一般tomcat的方法是,只设置CATALINA_HOME变量,执行startup.sh脚本,startup.sh会自动转换其他未设置的变量。
Startup.sh设置环境变量时调用catalina.sh脚本,此脚本会读取CATALINA_BASE的值,在$CATALINA_BASE/conf目录,得到server.xml,这个文件时tomcat的核心配置,它所包含所有的配置信息,如shutdown端口,connector端口,主机名称,应用目录等,如tocat通常使用8080作为连接端口,所以我们可以通过http://localhost:8080 来访问。
如果已经设置$CATALINA_BASE,tomcat就会从该变量所对应的目录搜索到server.xml
使用该方法可以在一台机器上运行多台tomcat实例,我们不需要改变CATALINA_HOME值,只需要在启动/关闭tomcat之前修改CATALINA_BASE值。
2.多实例操作
1) 首先复制一个相同的tomcat的目录,叫tomcat2。修改tomcat2目录中conf/server.xml文件,需要修改的端口是shutdown port ,connector port ,ajp port 和redirect port。
Shutdown port-此端口用于关闭tomcat,当执行shutdown.sh脚本时,它会给此端口发一个信号,tomcat的进程会监听此端口。如果接受到这样的信号,进程会清理退出。
connector port-此端口是应用对外公开发布的端口。
Ajp port-web服务器,通过此端口和tomcat进行通讯,可以使它成为一个负载均衡服务器。
Redirect port-如果此端口connector 支持非ssl请求和接受ssl请求,catalina会自动将请求指向到此端口。
2)修改端口
因为一个端口一旦被绑定,其他进程就不再能绑定了。所以我们将这些端口修改为不一样的,在tomcat2/conf/server.xml文件,配置server port,connector poet和ajp port就ok.避免端口重复。
示例:

.....

3.最后创建两个脚本文件来启动关闭。
1)启动脚本
#vim /usr/local/tomcat2/bin/start.sh
export CATALINA_BASE=/usr/local/tomcat2
cd $CATALINA_HOME/bin
su -c /usr/local/tomcat2/bin/startup.sh tomcat

2)关闭脚本
#vim /usr/local/tomcat2/bin/stop.sh
export CATALINA_BASE=/usr/local/tomcat2
cd $CATALINA_HOME/bin
su -c /usr/local/tomcat2/bin/stop_tomcat tomcat

这里我们设置了CATALINA_BASE变量并指向新的 tomcat2。因为运行tomcat的所有二进制文件都在CATALINA_HOME/bin目录,随后使用start.sh/stop.sh脚本。

2016012801


发表评论

登录 后发表评论.