一个tomcat部署多个应用实例总结

项目组有好几个项目需要运行,之前项目少,一个tomcat对应一个项目还能应付,但现在项目多了,要是再一个tomcat对应一个项目的话,一方面看起来很业余,一方面也加大服务器的维护难度。所以现在需要对tomcat进行整理,用一个tomcat来启动多个应用实例,每个应用相互独立,互不干扰。 
准备工作:下载的apache-tomcat-7.0.26.zip,上传到linux服务器下/opt/apps/目录下。 
百牛信息技术bainiu.ltd整理发布到博客园
一、操作步骤 
1、解压apache-tomcat-7.0.26.zip。 
2、在apache-tomcat-7.0.26新建一个应用实例目录,如test,在test目录下创建三个目录:conf、temp和webapps. 
3、将原tomcat目录下的conf的server.xml、tomcat-user.xml和web.xml拷贝到test/conf/,将原tomcat目录下的webapps/manager拷贝到test/webapps. 
4、修改test/conf/server.xml.修改的地方如下:

<Server port="${tomcat.server.port}" shutdown="SHUTDOWN">   
    
<Connector port="${tomcat.http.port}" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

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

<Engine name="Catalina" defaultHost="localhost" jvmRoute="${tomcat.instance.name}">

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/opt/app/logs/${tomcat.instance.name}" prefix="localhost_access_log." suffix=".txt" pattern="%h %{x-forwarded-for}i %l %u %t "%r" %s %b" /> 
5、在/opt/apps/下新建logs/test目录 
6、在/opt/apps/下新建bin目录: 
创建test-start.sh文件,文件内容如下: 
#!/bin/bash 
export LD_LIBRARY_PATH="/opt/apps/apache-tomcat-7.0.26/bin/native" 
#export JAVA_HOME="/opt/apps/jdk1.7.0_05"

export CATALINA_OPTS="-Dtomcat.server.port=8005 -Dtomcat.http.port=8010 -Dtomcat.instance.name=test -Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError"
export CATALINA_OUT="/opt/apps/logs/test/catalina.$(date +‘%Y-%m-%d‘).out" 
export CATALINA_PID="/opt/apps/apache-tomcat-7.0.26/tomcat-test.pid" 
export CATALINA_BASE="/opt/apps/apache-tomcat-7.0.26/test"

rm -rf /opt/apps/apache-tomcat-7.0.26/test/work 
/opt/apps/apache-tomcat-7.0.26/bin/catalina.sh start

exit $?

创建test-stop.sh文件,文件内容如下: 
#!/bin/bash 
export JAVA_HOME="/opt/apps/jdk1.7.0_05" 
export JAVA_OPTS="-Dtomcat.server.port=8005" 
export CATALINA_PID="/opt/apps/apache-tomcat-7.0.26/tomcat-test.pid" 
/opt/apps/apache-tomcat-7.0.26/bin/catalina.sh stop 0 -force

7、将应用拷贝到apache-tomcat-7.0.26/test/webapps/,通过test-start.sh来启动应用实例,test-stop.sh来停止应用实例。 
8、如要再创建一个实例,重复进得2~7操作。

二、遇到的问题: 
1、Another unnamed CacheManager already exists in the same VM. Please provide unique names for each CacheManager in the config or do one of following: 
   1. Use one of the CacheManager.create() static factory methods to reuse same CacheManager with same name or create one if necessary 
   2. Shutdown the earlier cacheManager before creating new one with same name. 
解决方案:copy apache-tomcat-7.0.26/conf/web.xml到apache-tomcat-7.0.26/test/conf/

2、利用jenkins自动部署时,报错:Caused by: java.io.IOException: Server returned HTTP response code: 401 for URL: http://localhost:8010/manager/text/list 
解决方案:copy apache-tomcat-7.0.26/webapps/manager到apache-tomcat-7.0.26/test/webapps/,同时需要在test/conf/tomcat-user.xml加上用户配置。

有时候再centos操作系统一个tomcat部署多个应用实例会出现问题,重启一下有时候由可以,由于技术有限还在处理这个问题。

时间: 2024-11-07 18:43:33

一个tomcat部署多个应用实例总结的相关文章

windows下一个tomcat版本创建多个实例

照着做成功了,记录一下,原地址:https://my.oschina.net/stategrace/blog/202431 首先下载一个tomcat我们在任意一个盘符内创建一个文件夹,下面有tomcat1,tomcat2,tomcat3,等等 复制tomcat中conf到tomcat1,tomcat2,tomcat3,中 修改server.xml配置文件中的三个端口,不要有重复,即 <Server port="8005" shutdown="SHUTDOWN"

windows10上使用一个tomcat部署2个项目

前言:目前想在本机部署2个项目,网上查了之后,写下本篇随笔 1.准备工作 2.操作方法 3.运行2个项目 1.准备工作 2个war包(一个jprss.war和一个jenkins.war) 1个tomcat环境 2.操作方法 第一步:复制tomcat中的webapps文件夹,命名为webapps1和webapps2 第二步:复制tomcat\conf\Catalina文件夹,命名为Catalina1和Catalina2 第三步:修改tomcat中的server.xml文件: 将从<Service

一个tomcat部署两个项目引发的血案

          两个产品测试上线,部署在一个tomcat中,一开始部署成功.但是后续更新的时候,发现其中一个可以正常访问,另外一个无法访问.当时那个着急啊.         后来细心发现,服务启动的时候,后台log有一个错误信息. java.lang.IllegalStateException: Web app root system property already set to different value: 'webapp.root' = [/home/test/app1/] ins

一个tomcat部署俩个java web项目

2.发布的时候可以发布成war包,用项目名称右键export,选择项目名称,还有发布的路径,即tomcat下的路径,参考http://zhidao.baidu.com/link?url=imOu0Uux5K-7JkhazslmBq346amyCKhKr8mG82-yPEBhE493HffwbQUQ_iK9leFHsESukhOYXwV8bIRXFV-uXK 3.需要修改web.xml文件 如果不修改会报 java.lang.IllegalStateException: Web app root

同一个Tomcat部署两个project之间的通信问题

同一个tomcat下的两个project是无法通信的. 同一个tomcat中的project能互相调用吗 启动一个tomcat部署多个项目,那么每个项目算是一个线程还是进程呢?

tomcat部署与多实例

tomcat部署实践 tomcat简介 Tomcat 是由 Apache 开发的一个 Servlet 容器,用来生成动态页面的.主要用来跑Java程序的Web应用服务器,属于轻量级应用服务器, Tomcat和Nginx.Apache(httpd).lighttpd等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式.不过,Tomcat处理静态HTML的能力不如Nginx/Apache服务器. JDK是整个JAV

tomcat部署之后 本机访问本地部署的网站打开一个页面非常慢

tomcat部署之后 本机访问本地部署的网站打开一个页面非常慢.有时甚至会造成页面空白或直接卡死. 解决方法:是连接池出的问题.改用c3p0连接池. 将数据库连接池改用c3p0连接池. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql

一个tomcat下部署多个项目或一个服务器部署多个tomcat

最近需要把两个项目同时部署到服务器上,于是研究了一下,页借鉴了很多别人的方法,把过程记录下来,以儆效尤. 目录: 1,一个tomcat下同时部署两个项目(多个项目可以参考) 1.1项目都放在webapps内(共用一个端口) 1)把两个项目都放在webapps下. 2)处理重复jar包. 3)tomcat端口默认为8080.如果想修改可以去conf下的server.xml中进行修改 4)启动tomcat 1.2建立多个类似于webapps的文件夹,通过conf下的server.xml进行配置(每个

单机多实例tomcat 部署

简介: 目录结构 /bin - 启动,停止及其它脚本目录/conf - 配置文件目录,容器的主配置文件为server.xml/logs - 默认日志目录/webapps - 网站应用目录 变量引用 CATALINA_HOME: Tomcat 安装的根目录,例如 /home/tomcat/apache-tomcat-9.0.10.CATALINA_BASE: 实例运行时配置的根目录..如果运行多个Tomcat实例,请使用 CATALINA_BASE 属性 注:默认CATALINA_HOME 和CA