Linux下建立多实例Tomcat(独立JVM)
来源:互联网 发布:个人定位软件 编辑:程序博客网 时间:2024/06/12 20:00
说明:本文参照了以下文章:
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
目录及文件结构如下:
- Linux下建立多实例Tomcat(独立JVM)
- 基于Apache和多实例Tomcat(独立JVM)的虚拟主机方案
- Linux下tomcat JVM内存
- Linux下tomcat JVM内存
- Linux 下 tomcat JVM内存
- Linux下tomcat JVM内存
- Linux 下tomcat多实例部署
- linux下tomcat单机多实例
- 多实例 Tomcat 在linux下部署
- 用Pyinstaller建立linux下Python的独立可执行文件
- pyinstaller 来建立linux下的python独立执行文件
- centos 下安装多个独立 tomcat
- Linux/windows 下 tomcat 的JVM设置
- linux下的tomcat jvm内存
- linux下的tomcat jvm内存 .
- Linux下tomcat JVM内存设置
- linux下的tomcat jvm内存
- linux下的tomcat jvm内存
- python *args和**kwargs介绍
- http 请求中的 referer
- 微信支付-公众号支付(java实现)
- JSP重复代码多怎么办
- 关于虚拟机导入linux没有eth0解决办法
- Linux下建立多实例Tomcat(独立JVM)
- [Leetcode] 376. Wiggle Subsequence 解题报告
- java垃圾回收机制笔记
- UVA
- 生成模型、最大化似然、KL散度
- 使用MyEclipse开发Java EE应用:用XDoclet创建EJB 2 Session Bean项目(三)
- Oracle中函数/过程返回结果集的几种方式
- 最大差值
- 机器学习笔记——感知机算法的几点总结