为什么80%的码农都做不了架构师?>>>   

本文介绍在同一个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.将Web应用程序内容拷贝到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发行版的目录。

转载于:https://my.oschina.net/itblog/blog/669131

一个Tomcat运行多个实例相关推荐

  1. CATALINA_BASE和CATALINA_HOME,多实例tomcat与多版本tomcat运行

    多实例tomcat与多版本tomcat运行环境变量配置,以及思考. 多实例运行环境变量的配置 看了网上有很多tomcat环境变量的配置,有一些,我认为有些不妥 比如: CATALINA_HOME:是安 ...

  2. bat脚本中获取上级目录_使用Python写一个可以监控Tomcat 运行的脚本,并且把.py文件转换成.exe文件...

    使用Python写一个可以监控Tomcat 运行的脚本,并且把.py文件转换成.exe文件 文章来源与博主本人的CSDN博客,博客地址:https://blog.csdn.net/weixin_435 ...

  3. wps应用程序实例_有一个WPS Office应用程序实例wps.exe在运行,请关闭后重试 。如何解决?...

    点击查看有一个WPS Office应用程序实例wps.exe在运行,请关闭后重试 .如何解决?具体信息 答:请按照下面步骤试试:右击任务栏-启动任务管理器-进程-结束进程树 1.右击系统下方的任务栏, ...

  4. 周末班补充视频Scala第2课:动手编写和运行自己的第一个Scala函数式编程的实例.

    周末班补充视频Scala第2课:动手编写和运行自己的第一个Scala函数式编程的实例. package com.dtspark.scala.functional.basics object MyFir ...

  5. tomcat线程循环异常终止_腾讯面试官:如何停止一个正在运行的线程?我一脸蒙蔽。。。...

    1. 停止不了的线程 2. 判断线程是否停止状态 3. 能停止的线程--异常法 4. 在沉睡中停止 5. 能停止的线程---暴力停止 6.方法stop()与java.lang.ThreadDeath异 ...

  6. linux安装eclipse运行web,Linux安装Tomcat,运行Eclipse,web项目

    到官网下载:https://tomcat.apache.org/download-80.cgi  在这里是8.5.39版本 下载tar,gz 提取解压后,我这里是放到opt目录下 cd  切换目录 / ...

  7. Docker学习笔记之二,基于Dockerfile搭建JAVA Tomcat运行环境

    前言 在第一篇文字中,我们完全人工方式,一个命令一个命令输入,实现一个 java tomcat运行环境,虽然也初见成效,但很累人.如果依靠依靠脚本构建一个Tomcat容器实例,一个命令可以搞定,何乐而 ...

  8. SpringBoot webmvc项目导出war包并在外部tomcat运行产生的诸多问题以及解决方案

    背景: 有需求要将原来的Spring(3.2.6) + Springmvc + Hibernate项目重构为Springboot(1.5.2)项目 描述: 记录重构过程,以及期间遇到的种种问题和对应的 ...

  9. tomcat基本知识点与实例

    Tomcat一 今天讲一下tomcat的安装和使用,当然在这之前,要先了解一下开发语言--java. 一,java基础 1,计算机语言分类: 硬件级:微码编程,汇编语言 系统级:C , C++ , . ...

最新文章

  1. 苏宁宣布二度涨薪!平均涨幅31%,最高涨幅高达150%!网友:羡慕哭了!苏宁员工:不是全员,跟社招无关!...
  2. 日志系统的设计与实现_it运维管理系统|综合运维的设计与实现
  3. GreenDao存储自定义类型对象解决方案(转)
  4. Tensorflow基本开发步骤——以逻辑回归拟合二维数据为例
  5. 2013年小结及2014年展望
  6. APICloud方法
  7. 微软开源PowerShell并支持Linux
  8. IDEA集成Scala图文教程详细步骤
  9. iosid不足以修改问题_寻找合作伙伴的技巧足以与您合作
  10. Google搜索命令语法大全
  11. javascript实现页面自动刷新和自动跳转代码
  12. 优秀的Allegro Skill推荐
  13. 百度地图、高德地图、腾讯地图三位一体地图定位开发
  14. 根据 轮播图背景色 自动填充剩余背景色的 走马灯
  15. 使用ActiveSync同步WinCE设备,并在局域网中调试网络程序
  16. ET5.0 配置Excel
  17. BZOJ3505 [Cqoi2014]数三角形
  18. python编程竞赛规则_第十一届蓝桥杯Python规则及样题
  19. 从OPPO Finder看手机产品的差异化体现
  20. Thinkphp6调用企业微信官方php版本接口方法

热门文章

  1. 一键转载CSDN博客
  2. linux系统ip6tables怎么配置,ip6tables 基本配置
  3. cooleditpro批量加速文件_Python玩转阿里云OSS对象存储,批量转存markdown和html图片
  4. redis 设置不过期_面试时 Redis 内存淘汰总被问,但是总答不好,怎么解决?
  5. 计算二叉树的叶子结点个数_C++数据结构二叉树统计总结点个数,叶子结点个数,单分支结点个数,双分支结点个数。...
  6. mac 上mysql怎么卸载不了_mac上mysql怎么卸载不了
  7. MATLAB基本运算
  8. python编程英语单词怎么写_用Python写一个背英文单词程序
  9. Python socket编程模拟最简单的HTTP响应
  10. 系统学习深度学习(三十一)--Nature DQN(NIPS 2015)