最简单的同台电脑运行多个Tomcat服务

来源:互联网 发布:图解算法 pdf 编辑:程序博客网 时间:2024/05/02 23:52
想必在JAVA这块混的人,都有过同台机器跑多个tomcat的经历吧.估计很多想人第一时间就想到了,弄N个解压版的tomcat下来改改端口,就行了.当然没问题;当然还有人,会想到了apache server....当然也没问题,个人觉得后者配置有些烦锁,说实话,本人不喜欢第二种作法!本人选择第一种做法.但同样达到第二种的效果,而且简单!那要怎么做呢?请慢慢看下面的述说吧.

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

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



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

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

4.现在启动Tomcat实例,在%Tomcat8080%目录下创建startup.bat脚本,代码如下:
set JAVA_HOME=D:/jdk1.6
set CATALINA_BASE=D:/Tomcat8080
set CATALINA_HOME=D:/Tomcat8080
%CATALINA_HOME%/bin/catalina start

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

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

其实将Tomcat实例转成Windows服务也是很简单的事情,只需要运行下面脚本
set JAVA_HOME=D:/jdk1.6
set CATALINA_BASE=D:/Tomcat8080
set CATALINA_HOME=D:/Tomcat8080
%CATALINA_HOME%/bin/service.bat install "Tomcat8080"


将上述存成.bat文件执行,就会在windows服务控制台出现了Apache Tomcat "Tomcat8080"的服务选项,接下就是服务设定了,不再此罗嗦了^_^

要出现Apache Tomcat "Tomcat8080"这个服务选项,就再改改上面的脚本了吧!

超值附送^_^:windows下删除服务:
办法一: 用sc.exe这个Windows命令
        开始——运行——cmd.exe,然后输入sc就可以看到了。使用办法很简单:
        sc delete "服务名" (如果服务名中间有空格,就需要前后加引号)
        如针对上面的: sc delete KSD2Service

方法二:直接进行注册表编辑(不推荐)
      打开注册表编辑器,找到下面的键值:
      HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services 一般服务会以相同的名字在这里显示一个主健,直接删除相关的键值便可。