posts - 40,  comments - 187,  trackbacks - 0
 
前些时日,出于某种需要,需要同时启动多个Tomcat服务器,在网上查了半天,才找到解决的办法,拿出来分享一下,嘿嘿。

我所用Tomcat服务器都为zip版,非安装版。以两个为例:
安装第二个Tomcat完成后,到安装目录下的conf子目录中打开server.xml文件,查找以下三处:

  (1) 修改http访问端口(默认为8080端口)
         
<Connector   className="org.apache.coyote.tomcat4.CoyoteConnector"   port="8080"  
                               minProcessors
="5"   maxProcessors="75"
   
                                enableLookups
="true"   redirectPort="8443"
   
                                acceptCount
="100"   debug="0"   connectionTimeout="20000"
   
                                useURIValidationHack
="false"   disableUploadTimeout="true"   />
 

(大概在86行左右)将8080修改为第一个tomcat不在使用的端口号。此处所设的端口号即是以后访问web时所用的端口号。  

  (2) 修改Shutdown端口(默认为8005端口)
   
<Server port="8005" shutdown="SHUTDOWN" debug="0">

 
 
(大概在13行左右)将8005修改为没有在使用的端口号,例如8095   

  (3) 修改JVM启动端口(默认为8009端口)
         
  < Connector    className ="org.apache.coyote.tomcat4.CoyoteConnector"    
                                port
="8009"    minProcessors ="5"    maxProcessors ="75"
   
                                enableLookups
="true"    redirectPort ="8443"
   
                                acceptCount
="10"    debug ="0"    connectionTimeout ="20000"
  
                                useURIValidationHack
="false"
   
                               protocolHandlerClassName
="org.apache.jk.server.JkCoyoteHandler" />

  (大概在107行左右)将8009修改为没有在使用的端口号,例如8099   
   
这样就没问题了。

                                            
THE END
 
 
posted on 2007-01-15 16:56 小立飞刀 阅读(60421) 评论(19)  编辑  收藏 所属分类: JavaEE Servers

FeedBack:
# re: 如何同时启动多个Tomcat服务器
2007-01-16 13:46 | hcom
不知道启动多个tomcat,和开启多个tomcat实例有什么区别?

就像weblogic,可以只安装一个,但可以开启多个实例。  回复  更多评论
  
# re: 如何同时启动多个Tomcat服务器
2007-01-16 18:09 | 小雪飞刀
@hcom
您的意思是在一个Tomcat服务器下,部署多个Application吗?当然可以啦!
比如我在同一个Tomcat下
部署了app1和app2两个应用,
http端口设为8080,
我就可以通过http://localhost:8080/app1
http://localhost:8080/app2 两个地址访问我的服务。

而我文中的意思是一台PC或Server上同时启动多个Tomcat服务器。
如我同时启动了两个Tomcat服务器,其http端口分别为8888,9999。并在每个Tomcat上部署了app1和app2两个应用,
我就可以通过http://localhost:8888/app1
http://localhost:8888/app2 两个地址访问我的服务。
也可以通过http://localhost:9999/app1
http://localhost:9999/app2 两个地址访问我的服务。

不知道这样能不能回答您的问题呢?:-)
  回复  更多评论
  
# re: 如何同时启动多个Tomcat服务器
2007-01-17 08:53 | 新5963
你这样只能是在一个jdk下面,假如你的机器上有两个JDK1.4 和1.5,tomcat4和TOMCAT5.5,你要怎么配置?

tomcat4只能和JDK1.4搭配,TOMOCAT5.5和JDK1.5搭配  回复  更多评论
  
# re: 如何同时启动多个Tomcat服务器
2007-01-17 14:24 | zhyiwww
@新5963
各用各的jdk,各用各的端口就可以了。
配置端口就是为了不让端口冲突,否则tomcat就不能启动。
至于tomcat使用的jdk就在tomcat/bin中的startup.bat和shutdown.bat中用
set JAVA_HOME= 进行配置  回复  更多评论
  
# re: 如何同时启动多个Tomcat服务器
2007-01-19 13:10 | hcom
我在网上看到好多人说,前端用一个apache 后面跑几个tomcat实例,可以实现负载均衡。是不是指用一个apache处理静态页面和转发请求到后面的几个tomcat处理呀?这样做能够提高系统的并发能力?  回复  更多评论
  
# re: 如何同时启动多个Tomcat服务器
2007-01-19 15:53 | 小雪飞刀
# re: 如何同时启动多个Tomcat服务器
2007-01-19 15:59 | 小雪飞刀
Apache 和 Tomcat都可以做为独立的WEB服务器来用,apache功能强大、高效,但并不能支持JSP及serlet。Tomcat是Sun和Apache合作做出来的JSP Server,Tomcat目前已经成为Apache主要的Servlet和JSP的引擎。Tomcat在设计上是以独立的Server执行,而不像Jserv是附在Apache中,这样就更可以发挥在servlet中,非HttpServlet的能力。Tomcat是Java程序,所以只要有JDK就可以使用,不需要考虑操作系统平台。

作为WEB服务器扩展的Tomcat服务器有一些问题需要说明: 当处理静态页面时,Tomcat不如Apache迅速;Tomcat不象Apache一样可配置; Tomcat不象Apache一样强壮。基于以上原因,一个现实的网站使用一个Apache作为Web服务器,为网站的静态页面请求提供服务;并使用Tomcat服务器作为一个Servlet/JSP插件,显示网站的动态页面。

采用apache+tomcat这样的结构才具有更特出的优点,主要体现在具有更好的可扩展性和安全性。这种类型的站点的主要特点是每一个页面都可能是动态生成的,但这些数据中主要部分还是静态的(比如,各类图像GIF、JPG、PNG,流式媒体等),这种结构的优点是兼有可扩展性和安全性。
  回复  更多评论
  
# re: 如何同时启动多个Tomcat服务器
2007-03-20 09:54 | realcode
呵呵,同时启动两个tomcat服务要用在什么地方呢?
估计只有在做对比测试时才会用到,一般应该用不到吧?  回复  更多评论
  
# re: 如何同时启动多个Tomcat服务器
2007-03-20 11:19 | 小雪飞刀
@realcode
其实我当初配两个tomcat,是为了用不同的JDK版本测试同一个Application。一般来说,您可以把多个Application部在一个tomcat下就行了。
  回复  更多评论
  
# re: 如何同时启动多个Tomcat服务器[未登录]
2007-12-12 10:45 | sun
想问一下,如果我可以同时在8888,9999端口访问我的同一个app。
是否会出现数据访问不一致的情况??
  回复  更多评论
  
# re: 如何同时启动多个Tomcat服务器
2007-12-12 11:22 | 小立飞刀
@sun
那就需要看您的应用的数据源是否相同了,如果不同,肯定是数据不一致了。建议您在Tomcat中配置应用的数据源。
  回复  更多评论
  
# re: 如何同时启动多个Tomcat服务器[未登录]
2007-12-15 05:29 | sun
楼主,还有一个问题需要请教:
hcom 说的意思不是在一个tomcat下部署多个app,他的意思是安装一个tomcat,启动多个实例,例如我可以只安装一个tomcat但是经过配置,可以达到开启多个服务的目的,例如:http://localhost:8081/app1
http://localhost:8082/app1
而安装多个tomcat也可以达到以上的目的,我也是关于这个不清楚  回复  更多评论
  
# re: 如何同时启动多个Tomcat服务器
2007-12-17 11:42 | 小立飞刀
@sun
启动多个Tomcat服务,Tomcat的版本可以不同,可以分别升级,这几个Tomcat里的应用不会互相影响,并且web应用运行于多个JVM中;
启动多个Tomcat实例,Tomcat的版本相同,web应用也是分别运行在不同的JVM上。

PS:tomcat如何在一个程序版本上运行多个instance

tomcat有个环境变量CATALINA_BASE,用来指定一个目录,tomcat是依据该目录的内容来实现大部分的启动工作的,包括我们最关心的web app的加载,该目录由conf,logs,shared,webapps,work,temp子目录组成。这样,为每个instance新建一个目录,配置好其内容(注意同样要修改server.xml使端口不一样),然后在启动每个instance时使CATALLINA_BASE指向该instance对应的目录,就能实现启动多个instance的目的。可以在instance对应的目录下写一个startup.bat来完成该instance的启动工作,该脚本使用脚本所在的目录作为CATALINA_BASE,可以在从任何目录下运行,并且保留了tomcat启动脚本的参数:
@echo off set CMD_LINE_ARGS= :setArgs if ""%1""=="""" goto doneSetArgs set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1 shift goto setArgs :doneSetArgs set EXECUTABLE=%CATALINA_HOME%\bin\startup.bat set CATALINA_BASE=%~dp0 call "EXECUTABLE" %CMD_LINE_ARGS%  回复  更多评论
  
# re: 如何同时启动多个Tomcat服务器
2008-05-15 10:43 | ok了
谢谢你的文章,我把问题解决了.  回复  更多评论
  
# re: 如何同时启动多个Tomcat服务器
2008-05-15 14:46 | 小立飞刀
@ok了
客气了
  回复  更多评论
  
# re: 如何同时启动多个Tomcat服务器
2009-04-03 15:36 | wj
解压版怎么运行?  回复  更多评论
  
# re: 如何同时启动多个Tomcat服务器
2009-04-07 09:39 | 小立飞刀
@wj
如果是Window系统的话,可以在系统环境变量里配置一下Tomcat的路径,如:D:\Tomcat\apache-tomcat-5.5.23\bin。然后直接运行\tomcat\bin\startup.bat就行了。

另外 喜欢命令行模式的 可以在命令行输入 catalina run,如:
>cd d:\tomcat\bin
D:\tomcat\bin>catalina run

  回复  更多评论
  
# re: 如何同时启动多个Tomcat服务器[未登录]
2013-08-15 16:04 | kk
@realcode
根据业务不同,所以才会启动2两个tomcat  回复  更多评论
  
# re: 如何同时启动多个Tomcat服务器[未登录]
2016-03-17 09:24 | 小西
俩个同样的tomcat,两个同样的jdk这样的配置怎么能,同时启动俩个tomcat。已启动就报jvm,请问如何修改呢?  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 
<2009年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

生存或毁灭,这是个必答之问题:是否应默默的忍受坎苛命运之无情打击,还是应与深如大海之无涯苦难奋然为敌,并将其克服。此二抉择,究竟是哪个较崇高?

常用链接

留言簿(12)

随笔分类(43)

相册

收藏夹(7)

朋友的博客

电子资料

搜索

  •  

积分与排名

  • 积分 - 302059
  • 排名 - 192

最新评论

阅读排行榜

评论排行榜