最近在研究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. [cogs729]圆桌问题(最大流)

    传送门 模型 二分图多重匹配问题,可以用最大流解决. 实现 建立二分图,每个单位为X集合中的顶点,每个餐桌为Y集合中的顶点,增设附加源S和汇T. 1.从S向每个Xi顶点连接一条容量为该单位人数的有向边 ...

  2. 将Linux下python默认版本切换成替代版本

    本文链接自http://www.myhack58.com/Article/48/66/2016/71806.htm 当你安装 Debian Linux 时,安装过程有可能同时为你提供多个可用的 Pyt ...

  3. restful的nginx配置方法

    location /{ root /webserver/www/a.tk.com; index index.html index.htm index.php; if ( $document_uri ~ ...

  4. python基于SQLAlchemy的DBtools

    新版,只创建一次线程池 # -*- coding: utf-8 -*- from sqlalchemy import create_engine from sqlalchemy.orm import ...

  5. ELK安装文档

    ELK安装文档: http://cuidehua.blog.51cto.com/5449828/1769525 如何将客户端日志通过ogstash-forwarder发送给服务端的logstash h ...

  6. APUE 学习笔记(八) 线程同步

    1. 进程的所有信息对该进程内的所有线程都是共享的 包括 可执行的程序文本.程序全局内存.堆内存以及文件描述符 线程包含了表示进程内执行环境必需的信息,包括线程ID.寄存器值.栈.调度优先级和策略.信 ...

  7. andriod多线程

    用ThreadHandle可以实现多线程,然后再主线程更新UI 第二种就是用 AsyncTask 具体看代码 public void onClick(View v) { new DownloadIma ...

  8. phpcms V9 安装黄页模块后,注册为普通会员并登录,点立即免费入驻企业库出现白板

    解决步骤: 1. 将php.ini修改: display_errors = On 2. 再次尝试,显示出错误: Fatal error: require(): Failed opening requi ...

  9. Linux 性能优化解析

    前情概述 进程调度 老板 cpu 任劳任怨的打工仔 线程 工作在做什么 可运行队列 拥有的工作清单 上下文切换 和老板沟通以便得到老板的想法并及时调整自己的工作 中断 部分工作做完以后还需要及时向老板 ...

  10. [Violet 4] 毕业旅行

    2718: [Violet 4]毕业旅行 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 672  Solved: 389[Submit][Status ...