如何同时启动多个Tomcat服务器
前些时日,出于某种需要,需要同时启动多个Tomcat服务器,在网上查了半天,才找到解决的办法,拿出来分享一下,嘿嘿。我所用Tomcat服务器都为zip版,非安装版。以两个为例:
安装第二个Tomcat完成后,到安装目录下的conf子目录中打开server.xml文件,查找以下三处:
? (1) 修改http访问端口(默认为8080端口)
????????? <connector???classname="org.apache.coyote.tomcat4.coyoteconnector"???port="8080"<br>???????????????????????????????minProcessors="5"???maxProcessors="75"
????????????????????????????????enableLookups="true"???redirectPort="8443"
????????????????????????????????acceptCount="100"???debug="0"???connectionTimeout="20000"
????????????????????????????????useURIValidationHack="false"???disableUploadTimeout="true"/>
(大概在86行左右)将8080修改为第一个tomcat不在使用的端口号。此处所设的端口号即是以后访问web时所用的端口号。 ?
??? <server?port="8005"?shutdown="shutdown"?debug="0">
(大概在13行左右)将8005修改为没有在使用的端口号,例如8095???
????????? < 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???
???
FeedBack: 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 两个地址访问我的服务。
不知道这样能不能回答您的问题呢?:-)
回复更多评论
2007-01-17 14:24 | zhyiwww
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,流式媒体等),这种结构的优点是兼有可扩展性和安全性。
回复更多评论
2007-12-15 05:29 | sun
楼主,还有一个问题需要请教:
hcom 说的意思不是在一个tomcat下部署多个app,他的意思是安装一个tomcat,启动多个实例,例如我可以只安装一个tomcat但是经过配置,可以达到开启多个服务的目的,例如:http://localhost:8081/app1
http://localhost:8082/app1
而安装多个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%??
引文来源??如何同时启动多个Tomcat服务器 - 重明鸟 - BlogJava
页:
[1]