Linux下建立多实例Tomcat(独立JVM)

本文介绍如何在Linux环境下为不同的Web应用配置独立的Tomcat实例,以避免版本冲突。通过设置独立的CATALINA_BASE路径并调整每个实例的配置文件,如server.xml中的端口号,确保多个Web应用能够共存且互不干扰。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明:本文参照了以下文章:

http://apps.hi.baidu.com/share/detail/24999679

近期因为客户较多,发现在同一台服务器上由于Lerx V2版本不同,导致了Web应用出错。分析原因,发现是由于所有WEB应用共享同一Tomcat进程,而用户类(WEB-INF/classes)下的类文件同名但内容并不相同导致冲突。因此考虑在linux环境下采用独立jvm来处理解决这个问题。

参考上述文章设置,由于文中一些细节没有交待或有错误,因此补充如下。

该文章前部分是apache整合问题,这些内容网上很多,可以参考。lerx网站上也有一些介绍。

从实践中看清tomcat的启动过程与原理就可以轻松完成这一多实例方案。

CATALINA_BASE是一个非常重要的变量,可以认为是应用程序主目录。当tomcat启动时,会从这一目录下寻找它所需要的资源。所以在该目录下,应该有下面一些文件夹:conf、temp、work、logs。对于我来说,一般用户的文件我都会放在同一个目录内,所以,我在目录下还建了bin、public_html文件夹。以下是各文件的简要说明

conf -------- tomcat配置文件目录

temp -------- 临时文件目录

work -------- tomcat工作目录

logs -------- 日志文件目录

bin ------- 执行文件目录

public_html -------- 网站文件目录

根据上述目录结构,可以修改/etc/skel模板文件夹。在这个文件夹下按照上述进行建立文件夹。当建立一个新用户时,会根据这个目录模板产生相应的用户文件夹。

笔者在按参考文章时最后发现无法实现,关键是文中有两个地方没有交待清楚。一是上述文件夹问题,二是应该将Tomcat的conf下的其它文件也要复制到用户目录的conf目录下。

每个server.xml中注意要修改端口号不要相同。比如:第一个应用server.xml中的http采用8081端口,第二个应用server.xml中采用8082端口。

.sh文件可以放在bin目录中。

因此可以export CATALINA_BASE="$PWD/../"来指定。一个更好的方法是将tomcat.sh放在用户目录下,tomcat.sh脚本内容可以如下:

#!/bin/bash
# description:  Start up the Tomcat servlet engine.
# Sourc function library.
. /etc/init.d/functions
RETVAL=$?
export CATALINA_BASE="$PWD"
export CATALINA_HOME="/usr/local/tomcat"
export JVM_OPTIONS="-Xms32m –Xmx64m"
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

目录及文件结构如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值