一个Tomcat运行多个实例-阿里云开发者社区

开发者社区> 小龙猫> 正文

一个Tomcat运行多个实例

简介:
+关注继续查看

本文介绍在同一个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:

151337_P5cz_1434710.png

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

1
2
3
4
mkdir tomcat-instance
cd tomcat-instance
mkdir mydomain.com
mkdir mysite.com

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

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

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

145626_HCo6_1434710.png

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

150504_uqB3_1434710.png

3.修改Connector的端口号:

150413_WvI9_1434710.png

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

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

151900_jbo2_1434710.png

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

152121_MQLq_1434710.png

7.用脚本启动tomcat实例:

152416_eZKV_1434710.png

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

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

153130_Ri4r_1434710.png

153007_mz61_1434710.png

到这里,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实例:

154214_XLG8_1434710.png

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

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

154440_GR1R_1434710.png

154534_BJRW_1434710.png

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

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
用C#写一个多进程监控自动关机工具
因为据说某server开着就很贵,所以我们跑完测试的job后就要赶紧关机才行,但是测试的job要跑很久,过程中又不需要干什么,所以就得有个守家的,有时候会走很晚。如果有一个自动化关机的工具就好了,当指定的进程结束了以后系统就会自动关机。
793 0
多个table 相同col 的 设置相同width
不同table 中的col 虽然设置了width 相同,但在IE8、9中长度仍不统一。经检查是不同table使用了不同的colspan ,删除colspan全部使用相同数量的td后长度终于统一
604 0
ECS控制台实例支持批量加入多个安全组
当实例需要加入到多个安全组时,可以通过实例批量加入多个安全组的功能优化进行操作省时省力,话不多说进入介绍环节
2419 0
linux 下运行多个tomcat
首先把tomcat解压到linux 文件夹下:如/usr/local下   #vi(gedit) /etc/profile 在其中加入 ##########first tomcat########### CATALINA_BASE=/usr/local/tomcat CATALINA_H...
511 0
C#选择多个文件并读取多个文件数据
原文:C#选择多个文件并读取多个文件数据 版权声明:本文为博主原创文章,转载请附上链接地址。 https://blog.csdn.net/ld15102891672/article/details/80586097 ...
918 0
+关注
125
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载