文档章节

一个Tomcat运行多个实例

小湘西
 小湘西
发布于 2016/09/21 14:29
字数 850
阅读 70
收藏 5

本文介绍在同一个tomcat下运行mydomain.com和mysite.com这两个实例的步骤。

有时候,我们希望周期性的更新Tomcat;有时候,我们又想统一管理安装在一台机器上的tomcat(比如让tomcat版本统一,让多个实例的tomcat配置统一等)。在这些场景下, 我们都不希望把Web应用程序的文件放入Tomcat发行版的目录结构中,而是让一个tomcat运行多个实例,并把Web应用放在tomcat的安装目录之外。

一般在使用Tomcat时,服务器会从conf及webapps目录中读取配置文件,并将文件写入logs、temp和work目录,当然一些jar文件和class文件需要从服务器的公共目录树中予以加载。因此, 为了让多个实例能同时运行,每一个Tomcat实例都必须有自己的目录集 。

首先,下载tomcat安装包,并解压,这里我使用的tomcat版本是tomcat-8.0.33:

然后,创建一个文件夹tomcat-instance(该文件夹用于存放tomcat所有实例),并在这个文件夹下分别创建mydomain.com和mysite.com两个实例文件夹:

mkdir tomcat-instance
cd tomcat-instance
mkdir mydomain.com
mkdir mysite.com

对于mydomain.com,依次做以下步骤:

1. 拷贝Tomcat安装目录的conf文件夹下的所有内容,到mydomain.com文件夹下:

cd mydomain.com
cp -a /home/user/Software/apache-tomcat-8.0.33/conf .
mkdir common logs temp server shared webapps work

2.修改mydomain.com/conf/server.xml,将停止端口号修改为不同的端口号:

3.修改Connector的端口号:

4.删除server.xml中所有的Context元素(因为这份server.xml来自于tomcat的安装目录,如果曾经用该tomcat部署过项目,server.xml中就会有Context元素,由于现在没有将这些项目复制到mydomain.com实例的webapps文件夹下)及嵌套的所有元素,并加入与自己的webapps相关的内容。

5.为了简化变量设置步骤,创建tomcat启动脚本start-mydomain.sh,并将该文件放在tomcat-instance目录下,该文件的内容如下:

6.修改脚本的权限,使其可执行:

7.用脚本启动tomcat实例:

可以看到, 这个实例使用的CATALINA_BASE是instance/ mydomain.com, 这里的CATALINA_HOME是安装tomcat的目录 

8.拷贝示例文件到mydomain.com/webapps目录,从浏览器验证启动的tomcat实例:

到这里,tomcat实例mydomain.com已经正常运行了。

另一个实例mysite.com也按照1~8的步骤依次进行,但是注意以下步骤的不同配置:

2.Server端口号修改为8013。

3.Connector端口号修改为8082。

5.脚本中的CATALINA_BASE修改为/home/user/Software/tomcat-instance/mysite.com。

7.用脚本启动mysite.com实例:

可以看到, 这个实例使用的CATALINA_BASE是instance/ mysite.com 。而 这里的CATALINA_HOME依然是安装tomcat的目录,这和mydomain.com实例的配置是一样的,说明二者确实共用了一个安装目录 。

8.拷贝示例文件到mysite.com/webapps目录,从浏览器验证启动的tomcat实例:

至此,tomcat的多实例已能正常运行,当然,也可以为这些实例创建停止tomcat的脚本。

当把Web应用的文件和Tomcat发行版的文件分开管理后,升级Tomcat将会变得十分容易,因为我们可以用新目录直接替换整个Tomcat发行版的目录。

本文转载自:http://www.tuicool.com/articles/IbmMbui

小湘西
粉丝 19
博文 100
码字总数 27575
作品 0
东城
程序员
私信 提问
catalina.home catalina.base 区别

这两个属性仅在你需要安装多个Tomcat实例而不想安装多个软件备份的时候使用,这样能节省磁盘空间。 以Tomcat6.0为例,其Tomcat目 录结构如下: bin (运行脚本) conf (配置文件) lib (核心库...

yzbty23
2016/11/28
19
0
Tomcat的组件及配置文件(一)

tomcat的组件: tomcat运行在JVM中,运行在JVM中之后,它会启动一个JVM实例,这个JVM实例称之为叫做tomcat server; 一个server就是运行在JVM中的一个实例,这个实例内部跑的是tomcat; conn...

长得丑死了
2018/06/21
0
0
一个Tomcat运行多个实例

本文介绍在同一个tomcat下运行mydomain.com和mysite.com这两个实例的步骤。 有时候,我们希望周期性的更新Tomcat;有时候,我们又想统一管理安装在一台机器上的tomcat(比如让tomcat版本统一...

摆渡者
2016/05/03
3.4K
0
windows 安装tomcat 7

tomcat 算是最知名的java容器了,windows下安装使用tomcat 7其实并不易,本文以windows 2008R2 x64为例。 1、下载安装JDK,设置JAVA_HOME (略) 2、下载tomcat 7 由于我们是x64系统,所以需...

紫色葡萄
2016/07/17
0
0
使用Nginx实现多个tomcat的负载运行及Session共享的教程

一.Nginx实现多Tomat负载配置 1.下载Nginx,修改Nginx的配置文件nginx.conf (1) 配置nginx的upstream 2.下载tomcat安装包,分别部署的结构截图: (1) 修改tomcat 的相关8080端口配置/conf/s...

CapJes
2016/05/25
611
3

没有更多内容

加载失败,请刷新页面

加载更多

JAVA 8 中新增 lambda 表达式的一些基本应用

import java.util.Arrays;import java.util.List;import java.util.function.Function;import java.util.stream.Collectors;public class TestLambda { public static void......

这是一只小小鸟
4分钟前
0
0
Java向word中插入Excel文件对象

前言: 在word文件中,虽然也有表格。但是有时我们想要将Excel中表格的大量数据直接插入到word文档中,这就需要用到word的插入对象的功能,也就是直接将Excel文件当做对象插入到word中。 本地的...

qianxi
6分钟前
0
0
海量数据下的注册中心 - SOFARegistry 架构介绍

SOFAStack Scalable Open Financial Architecture Stack 是蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。 SOFARegi...

SOFAStack
9分钟前
0
0
python操作excel表格

python 对excel的操作 提示:如果需要写多个表,需要把多个表写完在保存,否则会出现表格覆盖问题 此程序 采取一边请求,一边存取,做个异常处理,即可保存已存在的数据 """# sheet的名称,...

鹏灬
11分钟前
0
0
好程序员web前端分享如何理解JS的单线程

好程序员web前端分享如何理解JS单线程,JS本质是单线程的。也就是说,它并不能像JAVA语言那样,两个线程并发执行。 但我们平时看到的JS,分明是可以同时运作很多任务的,这又是怎么回事呢? ...

好程序员IT
15分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部