最近在研究Apache+Tomcat+负载均衡/集群的过程中,发现了一篇好的在单机上部署多个tomcat实例的blog。

感受:关于Apache+Tomcat+负载均衡/集群,国内关于这方面的资料是挺多,但不知道是我搜索的问题还是国内的资料参差不齐,没有几个是全面并且精准的。经过不懈的尝试,还是外来的和尚会念经,而且质量很高(-:

单机多tomcat实例:

http://www.ramkitech.com/2011/07/running-multiple-tomcat-instances-on.html

再讲些有用没用的,其实类似这样单机上部署多个tomcat实例,只要对源码有所了解就可以自己动手配置实现(比如说我这样低水平的,花些时间看看startup脚本就知道配置的道理了),所以更多时候,我们静不下心来去认真研究,单纯的求快,碰巧work了就万事大吉了。可能这也是我们总是跟在美国后面的原因吧。

废话少说,我用的环境,Win7(没有管理员权限)+ apache-tomcat-7.0.54.zip

知识准备:

1. JDK和JRE环境提前准备好,这个肯定是必须的前提;

2. Tomcat的启动需要设置CATALINA_HOME和CATALINA_BASE。CATALINA_HOME将用来访问bin和lib;CATALINA_BASE将用来访问conf,webapps,logs,temp,work;

3. CATALINA_BASE若不指定,则默认为CATALINA_HOME

开始部署多个tomcat实例

1. 解压apache-tomcat-7.0.54.zip到某文件目录,解压后的目录作为CATALINA_HOME指向的目录;

2. 在同级目录下建立多个tomcat的实例,结构类似如下(我用了Application的名字命名的,这都无所谓了);

  

3. 拿其中一个实例Lego来说,将apache-tomcat-7.0.54目录下的conf,logs,temp,webapps(work目录在tomcat启动时会自动创建)拷到Lego实例下

  

4. 下面修改conf下的配置文件server.xml,而且只需要修改shutdown, connector, ajp三个端口号。为了防止以后忘了端口号,我把这些端口号记录在README.txt中。

5. 如上图所示,在Lego目录下,编写start和shutdown脚本。

startup-lego.bat

shutdown-lego.bat

6. 别忘了把自己的application放在webapps下;

7. 运行start和shutdown脚本,测试。

--- 到此,一个tomcat实例Lego部署完成;照此方法可以部署其他的tomcat实例,但注意三个端口号不能冲突。

然后想到个问题:单机下这样部署多个tomcat实例有什么用呢?

  答:拿我的经历为例,之前是将所有的application放在webapps目录下,导致所有application共用一套配置,一起start,一起shutdown;但很多时候,我只想让其中的某个application shutdown掉。之前的解决办法简单粗暴,多弄几个tomcat,每个tomcat的webapps下放一个application,然后再配置不同的端口号。但这样弄,明显觉得application过重了,而且需要维护多套tomcat。

刚刚发现application的log生成位置不对,还是生成在apache-tomcat-7.0.54的logs目录下。这应该是application中log4j配置的问题。

经检查发现,log4j.appender.R.File =${catalina.home}/logs/lego.log,修改成log4j.appender.R.File =${catalina.base}/logs/lego.log解决!

Done!

Tomcat多实例 - 单机的更多相关文章

  1. Tomcat学习总结(10)——Tomcat多实例冗余部署

    昨天在跟群友做技术交流的时候,了解到,有很多大公司都是采用了高可用的,分布式的,实例沉余1+台.但是在小公司的同学也很多,他们反映并不是所有公司都有那样的资源来供你调度.往往公司只会给你一台机器,因为 ...

  2. CentOS6.7安装部署之Tomcat多实例

    Tomcat单机多实例配置 操作前的准备:关闭防火墙,配置好IP地址,安装好JAVA环境 1.首先创建tomcat所有实例共同的工作目录/data/webapps以及tomcat所有实例的所在目录/d ...

  3. Tomcat多实例部署

    前言 以前总是采用很Low的方式太同一台服务器上部署多个Web应用,步骤是这样的:Copy Tomcat目录-->更改conf/server.xml三个端口号----->部署war包--- ...

  4. tomcat多实例

    //结合博主之前的安装tomcat的博文一起看,tomcat多实例就是在不同路径启动多个tomcat,然后在本机不同端口启动 [root@ycj ~]# cd /usr/local/src/ [roo ...

  5. 搭建Tomcat应用服务器、tomcat虚拟主机及Tomcat多实例部署

    一.环境准备 系统版本:CentOS release 6.6 (Final) x86_64 Tomcat版本:tomcat- JDK版本:jdk-8u25-linux-x64 关闭防火墙 软件包下载地 ...

  6. 性能测试二十:环境部署之Tomcat多实例部署+日志监控

    一个tomcat性能有限,所以需要部署等多个tomcat 单实例部署与windows下类似,项目包放到webapp目录下,启动bin目录下的startup.sh即可启动命令:./startup.sh启 ...

  7. tomcat 多实例的Sys V风格脚本

    -------------------------------------------------[翠花,上脚本]------------------------------------------- ...

  8. tomcat集群--单tomcat多实例

    1.解压apache-tomcat-7.0.75.tar.gz到任意目录 /data/tomcat-4X 2.建立tomcat多实例目录,这个tomcat-4X运行4X应用的两个实例4002,4004 ...

  9. Nginx+Tomcat多实例及负载均衡配置

    Nginx+Tomcat多实例及负载均衡配置 采用nginx的反向代理负载均衡功能,配合后端的tomcat多实例来实现tomcat WEB服务的负载均衡 01 安装nginx服务 安装所需的pcre库 ...

随机推荐

  1. 计算机、程序和java概述

    1.1 计算机.程序和java概述计算机包括硬件(hardware)软件(software)两部分.硬件包括计算机中看得见的物理部分,软件提供看不见的指令,指令控制硬件并且使得硬件完成特定的任务.一台 ...

  2. co模块总结

    1.thunk函数 javascript中的thunk函数就是一个单参数函数,且该参数必须是一个callback函数,callback的签名必须为callback(err,args...); 所谓的t ...

  3. java中String初始化的两种方式

    转自:http://www.diybl.com/course/3_program/java/javajs/2007104/75886.html       字符串可能是任何程序语言中都会出现的对象,j ...

  4. 数据库操作——pymysql模块

    一 import pymysql conn=pymysql.connect( host='localhost', port=3306, user='zuo', password=', database ...

  5. python ATM大作业之alex思路

    一 ATM alex想了一个思路,就是定义一个函数,这个函数可以实现所有的atm的功能:取款,转账,消费等等. 为了实现这个想法,alex构建了一个两级字典,厉害了.我发现,厉害的人都喜欢用字典.这里 ...

  6. 【CF1028A】Find Square(签到)

    题意:给定矩阵里,找到由B构成的矩形的中心 n,m<=115 思路: #include<cstdio> #include<cstring> #include<str ...

  7. python,django,mysql学习之环境安装配置

    参考:https://docs.djangoproject.com/en/1.6/intro/tutorial01/ http://rainyang.blog.51cto.com/469543/115 ...

  8. Python Challenge 第四关

    进入了第四关.只有一张图,我还是像往常一样查看源代码.果然,发现了一行注释:urllib may help. DON'T TRY ALL NOTHINGS, since it will never e ...

  9. 牛客网 Wannafly挑战赛11 A.白兔的分身术

    水一水博客. 链接:https://www.nowcoder.com/acm/contest/73/A来源:牛客网 A.白兔的分身术     时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C ...

  10. HDU 5937 Equation(DFS+剪枝)

    题目链接 Equation 给定1-9这9个数字各自的卡片数,求能构成形如$i + j = k$的等式个数 等式中$i,j,k$必须都为个位数 若两个等式中$i,j,k$不完全相等,则这两个等式为不同 ...