文档章节

将多个Tomcat实例应用转为Windows服务

周烈庆
 周烈庆
发布于 2014/05/28 11:52
字数 829
阅读 101
收藏 0
点赞 0
评论 0

有使用过Tomcat经验的朋友看到这个标题,就会产生疑问,安装Tomcat后,不就有一个Tomcat服务安装了吗?是的,没错,但不知道你是否将N个应用都用一个Tomcat实例来服务呢?这样的弊端是明显的,某个应用出现问题,需要重新启动Tomcat服务,那势必会影响其他正常运行的N- 1个服务,这样的效果显然不尽人意。理想的情况是一个Tomcat实例对应一个应用,并且每个Tomcat实例都是Windows服务,让Windows 服务控制台来对不同的应用单独进行启动与关闭。

那要怎么做呢?

首先是实现一个Tomcat程序上,运行N个Tomcat实例,然后每个Tomcat实例对应一个应用。 1.解压Tomcat压缩包(非Tomcat安装版),在%Tomcat%目录下会有bin,common,conf,logs,server,shared,tmp,webapps,work等文件夹与文件,我统称这些为Tomcat程序。

2.创建应用名称为PROJECT[X]的文件夹(非%Tomcat%下),将%Tomcat%文件夹下的conf,logs,tmp,work文件夹拷贝到%PROJECT[X]%目录下。

注:我现在用[X]代替,[X]可以是0-9的数字

3.修改%PROJECT[X]%/conf/server.xml配置文件中的三个端口: a.Server port=”8[X]05″ shutdown=”SHUTDOWN” b.Connector port=”8[X]80″ maxHttpHeaderSize=”8192″ … c.Connector port=”8[X]09″ enableLookups=”false” …

注:Tomcat默认的这三个端口号为8005,8080,8009,PROJECT1对应8105,8180,8109,PROJECT2对应8205,8280,8209,以此类推。

4.现在启动Tomcat实例,在%PROJECT[X]%目录下创建startup.bat脚本,代码如下: set JAVA_HOME=D:\JDK set CATALINA_BASE=D:\PROJECT[X] set CATALINA_HOME=D:\TOMCAT %CATALINA_HOME%\bin\catalina start

5.启动各自%PROJECT[X]%的startup.bat,各自独立的Tomcat实例就启动了。

那为什么我会想要将这些各自的Tomcat实例转成Windows服务呢?原因有三点: 1.多个Tomcat实例启动会有多个Tomcat的SHELL在运行,一个字-丑 2.通常WEB服务器都需要远程登录,如果使用startup.bat脚本启动的方式,那管理员将不能使用注销,而只能关闭远程连接,这样做的后果是服务器会提示“超出最大连接数”的错误,只能乖乖的请求托管商重新启动服务器,一个字-烦 3.将Tomcat实例转成Windows服务,可以让应用在系统启动时候一起启动,而不需要手动去启动每个Tomcat实例

其实将Tomcat实例转成Windows服务也是很简单的事情,只需要运行下面脚本 set JAVA_HOME=D:\JDK set CATALINA_BASE=D:\PROJECT[X] set CATALINA_HOME=D:\TOMCAT %CATALINA_HOME%\bin\service.bat install “PROJECT[X]”

运行脚本后,Windows服务控制台将多了如Apache Tomcat “PROJECT[X]”服务。

本文转载自:http://bluexp29.blog.163.com/blog/static/33858148200972184354935/

共有 人打赏支持
周烈庆
粉丝 12
博文 8
码字总数 3197
作品 0
深圳
技术主管
windows 安装tomcat 7

tomcat 算是最知名的java容器了,windows下安装使用tomcat 7其实并不易,本文以windows 2008R2 x64为例。 1、下载安装JDK,设置JAVA_HOME (略) 2、下载tomcat 7 由于我们是x64系统,所以需...

紫色葡萄 ⋅ 2016/07/17 ⋅ 0

分布式水平扩展是什么样的结构,zookeeper等到底是如何治理服务的?

我知道单一应用项目做分布式,做水平扩展,就是直接复制项目实例,用一定的负载分发机制代理请求,比如用nginx+多台tomcat的形式,每台tomcat部署相同的项目,使用redis管理session,保证ses...

FutureElement ⋅ 2017/10/23 ⋅ 1

WEB请求处理四:Tomcat配置实践

WEB请求处理 WEB请求处理一:浏览器请求发起处理 WEB请求处理二:Nginx请求反向代理 WEB请求处理三:Servlet容器请求处理 WEB请求处理四:Tomcat配置实践 上篇文章《WEB请求处理三:Servlet...

陶邦仁 ⋅ 2016/07/05 ⋅ 2

开发cloudify配方文件-两种应用伸缩方式

扩展规则 扩展服务 Cloudify支持两种方式来扩展服务 : Automatic Scaling Manual Scaling 自动扩展 Cloudify使每个服务定义一个扩展规则来决定是否服务需要扩展或缩小,例如使用一个基于忙线...

chape ⋅ 2013/04/10 ⋅ 0

linux(centos)下一个tomcat版本创建多个实例

之前在windows上面写了一篇windows下一个tomcat版本创建多个实例,又在linux上面试了下。 首先必须配置java环境变量以及tomcat的环境变量CATALINA_HOME=/usr/local/tomcat 配置环境变量的方法...

luamas ⋅ 2014/02/24 ⋅ 6

Tomcat 安全配置与性能优化

Tomcat 是 Apache软件基金会下的一个免费、开源的WEB应用服务器,它可以运行在 Linux 和 Windows 等多个平台上,由于其性能稳定、扩展性好、免费等特点深受广大用户喜爱。目前,很多互联网应...

aaao ⋅ 2015/01/27 ⋅ 0

Tomcat配置详解

一、Tomcat定义 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一...

Mr_陈 ⋅ 2014/05/12 ⋅ 0

apache+jk+tomcat集群配置

1集群配置介绍 Apache Tomcat可以说是当下最受欢迎的开源Java Web服务器。Tomcat的单个实例恐怕无法满足访问量日增的需要。这种情况下,需要考虑在“集群”环境下运行Tomcat;在这种环境下,...

bill2candy ⋅ 2016/10/28 ⋅ 0

Cloudify:一步一步部署应用到本地云环境

简介:目前非常火热的一项技术就是云计算,服务提供商业越来越多,但是每个提供商都有自己的一套规范,部署和管理方式不尽相同,很不方便。Cloudify 可让你在线对各种主流云服务上的应用,无...

tsl0922 ⋅ 2012/09/27 ⋅ 0

tomcat安全配置 与性能优化

Tomcat 是 Apache软件基金会下的一个免费、开源的WEB应用服务器,它可以运行在 Linux 和 Windows 等多个平台上,由于其性能稳定、扩展性好、免费等特点深受广大用户喜爱。目前,很多互联网应...

五大三粗 ⋅ 2015/12/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring表达式语言(SpEL)

1、SpEL引用 Spring EL在bean创建时执行其中的表达式。此外,所有的Spring表达式都可以通过XML或注解的方式实现。下面将使用Spring表达式语言(SpEL),注入字符串,整数,Bean到属性。 SpEL的...

霍淇滨 ⋅ 23分钟前 ⋅ 0

Gradle使用阿里云镜像

gradle 生命周期中有一个初始化( Initialization )的过程,这个过程运行在 build script 之前,我们可以在这个地方做一点系统全局的设置,如配置仓库地址。 你可以在以下几个位置实现仓库地址...

明MikeWoo ⋅ 32分钟前 ⋅ 0

appium+python3.6

1.安装jdk1.8(不知道为啥只识别1.8,1.10不识别,所以为了少折腾,迁就安装1.8) http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 配置 JAVA_HOME:...

Kampfer ⋅ 50分钟前 ⋅ 0

详解Apache 日志分割教程

一、日志切割 安装cronolog CentOS 5.3中编译安装Apache日志默认是不切割的,需要用用工具Cronnolog进行日志切割。 1.下载及安装 wget http://cronolog.org/download/cronolog-1.6.2.tar.gz ...

dragon_tech ⋅ 52分钟前 ⋅ 0

Keepalived介绍

负载均衡器(Load Balancer, LB )是一组能够将IP数据流以负载均衡形式转发到多台物理服务器的集成软件。有硬件负载均衡器和软件负载均衡器之分,硬件负载均衡器主要是在访问网络和服务器之间...

寰宇01 ⋅ 52分钟前 ⋅ 0

java8-Collections and Streams

stream和集合的区别是什么? 1.在计算的时候处理不同, 2.every element should be computed in the memory and then to be part of collections stream Stream apis filter with a predica......

writeademo ⋅ 58分钟前 ⋅ 0

Confluence 6 重新获得附件指南

每一个文件在恢复上传到 Confluence 的时候必须单独重命名,你可以通过下面说明的 3 个方法中选择一个进行操作: 选择 A - 通过文件名恢复附件 如果你知道你需要恢复的每一个文件名,尤其是你...

honeymose ⋅ 今天 ⋅ 0

【每天一个JQuery特效】根据状态确定是否滑入或滑出被选元素

主要效果: 本文主要采用slideToggle()方法实现以一行代码同时实现以展开或收缩的方式显示或隐藏被选元素。 主要代码如下: <!DOCTYPE html><html><head><meta charset="UTF-8">...

Rhymo-Wu ⋅ 今天 ⋅ 0

度量.net framework 迁移到.net core的工作量

把现有的.net framework程序迁移到.net core上,是一个非常复杂的工作,特别是一些API在两个平台上还不能同时支持。两个类库的差异性,通过人工很难识别全。好在微软的工程师们考虑到了我们顾...

李朝强 ⋅ 今天 ⋅ 0

请不要在“微服务”的狂热中迷失自我!

微服务在过去几年一直是一个非常热门的话题(附录1)。何为“微服务的疯狂”,举个例子: 众所周知,Netflix在DevOps上的表现非常棒。Netfix可以做微服务。因此:如果我做微服务,我也将非常...

harries ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部