Cloud现在是一个热门的技术,Tomcat是学习Java的人一般都会接触的Web服务器,如果在Cloud环境下使用Tomcat,又当如何呢?不可避免的,要安装多个Tomcat了,这里称之为Tomcat实例,进而通过云平台来多Tomcat进行管理。

如何在一台机器上安装多个Tomcat实例呢?

这个问题想必使用过Tomcat的人都知道:

1)  下载Tomcat.zip

2)  解压,后的Tomcat拷贝1份,每一份就称之为一个实例,并修改Tomcat实例的tomcat_home/conf/server.xml中的端口就OK了。

3)  创建其实实例,只需要重复步骤2)。

不错,的确是这样,这样可以说是简单又容易操作。但是,还有另外的处理方式,是一种类似于WebLogic、Glassfish的处理方式。

Glassfish的处理方式可以总结为:

1)  安装Glassfish,(这个过程就将Glassfish通用的jar包放在一个共用的地方)

2)  创建每个实例,只要添加相应的配置,work dir即可。

仿照这种处理思路来安装多个Tomcat:

1)  解压到安装目录

2)  创建Tomcat实例:拷贝config、logs、tmp、webapps、work目录,然后修改config/server.xml中的端口即可。

3)创建其它实例,只需要重复步骤2)。

示例:

1)解压apache-tomcat-6.0.41,

2)安装Tomcat实例:创建实例目录apache-tomcat-6.0.41-instances,并在该目录创建ins1、inst2目录,用于作为两个实例的目录。拷贝conf、logs、temp、webapps、work到ins1、ins2目录下。

3)修改实例port:ins1使用默认端口,修改ins2中的端口,即:

Ins2端口为:8005 –>9005 、8080--à9080 、8443--à9443

4)创建startup.bat文件,并copy到ins1、ins2目录下:

代码如下:

@echo on
@echo delete work directory ...
rmdir /S/Q %CD%\work @echo set env ...
SET JAVA_HOME=E:\Program Files\Java\jdk1.8.0_20
SET PATH=%JAVA_HOME%\bin;%PATH% @echo instance root directory
SET CATALINA_BASE=%CD% @echo start instance
cd ../../apache-tomcat-6.0.41/bin
catalina.bat start

5)访问测试:访问ins1、ins2:

分别执行ins1、ins2下的startup.bat文件启动ins1、ins2。

在浏览器上输入http://localhost:8080http://localhost:9080 都可以访问到Tomcat的首页。

Cloud相关的设计,其实就是利用这个原理来实现的。

=============================================================

下面是Tomcat 官方文档中的说法:

Tomcat supports installation of multiple instances. You can have a single installation of Tomcat with multiple instances running on different IP/port combinations, or multiple Tomcat versions, each running one or more instances on different IP/ports.

Each instance folder will need the following structure:

  • conf
  • logs
  • temp
  • webapps
  • work

At a minimum, conf should contain a copy of the following files from CATALINA_HOME\conf\. Any files not copied and edited, will be picked up by default from CATALINA_HOME\conf, i.e. CATALINA_BASE\conf files override defaults from CATALINA_HOME\conf.

  • server.xml
  • web.xml

You must edit CATALINA_BASE\conf\server.xml to specify a unique IP/port for the instance to listen on. Find the line that contains <Connector port="8080" ... and add an address attribute and/or update the port number so as to specify a unique IP/port combination.

To install an instance, first set the CATALINA_HOME environment variable to the name of the Tomcat installation directory. Then create a second environment variable CATALINA_BASE and point this to the instance folder. Then run "service install" command specifying a service name.

set CATALINA_HOME=c:\tomcat_8
set CATALINA_BASE=c:\tomcat_8\instances\instance1
service install instance1

====================================================================

在多实例安装的情况下,一般对于同一个Tomcat集群,会使用共享webapps目录的。也就是在同一个集群下的Tomcat实例的server.xml中<Host appBase=“设置为同一个目录”/>

Tomcat:云环境下的Tomcat设计思路——Tomcat的多实例安装的更多相关文章

  1. 转载:一种云环境下SaaS软件部署方法及装置与流程

    转载:http://www.xjishu.com/zhuanli/55/201710103925.html 本发明涉及云计算技术领域,特别是涉及一种云环境下SaaS软件部署方法及装置. 背景技术: 随 ...

  2. 在windows环境下实现开机延迟启动tomcat

    如果说我们的服务器断电了 开机之后还需要手动开下服务  还需要远程连接上  然后一个一个开启  是不是很麻烦  我们可以写一个bat脚本  然后设置开机5分钟之后启动tomcat 首先配置环境变量: ...

  3. linux环境下(非UI操作)所有软件的安装与卸载总结

    UI界面的软件管理 linux下的软件一般都是经过压缩的,主要的格式有这几种:rpm.tar.tar.gz.tgz等.所以首先拿到软件后第一件事就是解压缩. 在xwindow下以rpm格式的软件安装比 ...

  4. 腾讯云Centos下Nginx反向代理Apache+Tomcat

    1. 安装Apahce, PHP, MySQL以及php连接mysql库的组件#yum -y install httpd php mysql mysql-server php-mysql     // ...

  5. 记录CentOS环境下将Solr部署到Tomcat

    首先切换到usr/local目录 cd /usr/local/ 下载tomcat到local目录 wget http://archive.apache.org/dist/tomcat/tomcat-7 ...

  6. windows环境下最简单的nginx + tomcat负载均衡配置示例

    后端是两台tomcat服务器,我们简称为node1 和node2,访问地址分别是 http://192.168.1.2:8080 和 http://192.168.1.4:8080 前端使用nginx ...

  7. MySQL5.7(5.6)GTID环境下恢复从库思路方法(转发)

    要讨论如何恢复从库,我们得先来了解如下一些概念: GTID_EXECUTED:它是一组包含已经记录在二进制日志文件中的事务集合 GTID_PURGED:它是一组包含已经从二进制日志删除掉的事务集合. ...

  8. 多线程_java多线程环境下栈信息分析思路

    导读:Java多线程开发给程序带来好处的同时,由于多线程程序导致的问题也越来越多,而且对问题的查找和分析解决对于菜鸟程序原来是是件头疼的事.下面我就项目中使用多线程开发程序过程中遇到的问题做详细的分析 ...

  9. ubuntu环境下,ubuntu16.04装机到nvdia显卡驱动安装、cuda8安装、cudnn安装

    首先是安装ubuntu16.04 A.制作u盘启动盘(提前准备好.ios文件): 1.安装u盘制作工具unetbootinsudo apt-get install unetbootin2.格式化u盘s ...

随机推荐

  1. 最小生成树---Kruskal/Prime算法

    1.Kruskal算法 图的存贮采用边集数组或邻接矩阵,权值相等的边在数组中排列次序可任意,边较多的不很实用,浪费时间,适合稀疏图.      方法:将图中边按其权值由小到大的次序顺序选取,若选边后不 ...

  2. 孙鑫MFC学习笔记12:文件读写

    1.指向常量的指针 2.指针常量 3.C语言对文件操作是在缓冲区,在缓冲区满或文件关闭时写入文件 读取相同 4.fflush刷新缓冲区,使缓冲区数据写入文件 5.fseek改变文件指针偏移量 6.st ...

  3. Type mismatch: cannot convert from java.sql.PreparedStatement to com.mysql.jdbc.PreparedStatement

    Connection.prepareStatement()函数出错,提示: Type mismatch: cannot convert from java.sql.PreparedStatement ...

  4. 修复 XE8 FMX Windows 列印旋转文字问题

    问题:XE8 Firemonkey Windows 无法列印旋转文字(与显示在视窗里的代码相同时) 适用:XE8 Windows 平台(其它平台测试没问题) 修复前效果: 修复后效果: 修复方法: 请 ...

  5. Scalaz(35)- Free :运算-Trampoline,say NO to StackOverflowError

    在前面几次讨论中我们介绍了Free是个产生Monad的最基本结构.它的原理是把一段程序(AST)一连串的运算指令(ADT)转化成数据结构存放在内存里,这个过程是个独立的功能描述过程.然后另一个独立运算 ...

  6. Java继承和接口

    接口最关键的作用,也是使用接口最重要的一个原因:能上溯造型至多个基础类.使用接口的第二个原因与使用抽象基础类的原因是一样的:防止客户程序员制作这个类的一个对象,以及规定它仅仅是一个接口.这样便带来了一 ...

  7. Tsql查询执行顺序(二)

    来源:http://www.cnblogs.com/gaiyang/archive/2011/04/13/2014356.html T-SQL查询处理这种逻辑处理顺序,是理论上的处理过程,实际情况还会 ...

  8. Hybrid框架UI重构之路:四、分而治之

    上文回顾:Hybird框架UI重构之路:三.工欲善其事,必先利其器 上一篇文章有说到less.grunt这两个工具,是为了css.js分模块使用的.UI框架提供给使用者的时候,是一个大的xxx.js. ...

  9. centos初始配置

    修改语言环境 [root@oracledb ~]# sudo vim /etc/sysconfig/i18n 将将zh_CH修改为"en_US.UTF-8" 搭建yum本地源 参考 ...

  10. iOS中的物理引擎

    目前知名的2D物理引擎有 Box2d,和Chipmunk,这些是跨平台的.但苹果本身也封装了一个物理引擎, UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架.这可以让开发人员 ...