|
关于多个TOMCAT的问题???(这是一个朋友问的一个问题,大家都积极参与,取得很好的效果)
问题为:
我有两个项目,一个网站,一个论坛,因为论坛有上传、下载的功能。所以对速度影响很大,经常使得网站打开的很慢。
因为用的是同一个TOMCAT。我现在想一个项目使用一个TOMCAT。我在本地测了一下,我已经安装了一个TOMCAT,占的是8080端口。我另外又安装了一个TOMCAT,占的端口是8089。我把一个项目放到8089端口的这个TOMCAT下面。启动起来的时候竟然是8080那个TOMCAT上的项目,怎么回事?是不是我启动8089这个TOMCAT的时候,其实还是启动了8080这个端口,可是我安装的时候明明是8089呀。如果要达到我这样的效果,该怎么做呢?要用APACHE吗?我一直没用这个。
2楼朋友:看我这片文章,注意最下面2行:
http://blog.csdn.net/BearRui/archive/2008/10/08/3034489.aspx
另:因系统之前已安装tomcat1(setup.exe安装),再在系统中跑1个zip的tomcat2的时候,启动读取的配置文件一直读取的是之前安装tomcat1的配置文件(所以一直会启动8080这个端口),需要修改tomcat2 bin目录下的startup.bat和catalina.bat,在最前面加上一句:
set CATALINA_HOME=D:/Apache Software Foundation/Tomcat2
其中D:/Apache Software Foundation/Tomcat2就是你8089端口的tomcat所在文件夹路径
楼主回复:另外一个一定要用ZIP版的吗?
我在网上搜索后整理:
我所用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
楼主既然对(1)端口已经修改了,没问题
修改一下下面两个就行了!
2楼朋友回复楼主:不用zip的,只要修改startup.bat和catalina.bat就行,你把8080的直接copy过来,然后改这2个文件
楼主回复我:我按你的方法修改了一下,唯一不同的是我的是安装版本的(这个应该是没问题的吧)
我启动的时候,看了一下启动信息,怎么还是启动的是8080那个呀。是不是还需要配置哪里?
楼主回复2楼朋友:
我启动第二个TOMCAT,跑的项目还是第一个TOMCAT下面的项目,怎么回事????
我是直接复制了第一个TOMCAT,然后把
set CATALINA_HOME=C:/Program Files/Apache Software Foundation/Tomcat1
放到startup.bat和catalina.bat的第一行里。
然后双击startup.bat,但是启动的还是第一个TOMCAT。
17楼朋友说:
我们的服务器用了Apache,下面跑了5个tomcat了,版本是5.5,一定要用解压版的tomcat
配置方法(增加第6个tomcat的方法)
1.复制tomcat文件夹,改名为tomcat6
2.tomcat/bin/startup.bat,CATALINA_HOME全部替换为CATALINA_HOME6
3.tomcat/bin/catalina.bat,CATALINA_HOME全部替换为CATALINA_HOME6
并找到set _EXECJAVA=start "Tomcat" %_RUNJAVA%,把Tomcat改为Tomcat6
4.tomcat6/conf/server.xml,
<Server port="9009" shutdown="SHUTDOWN">改为9010或其他未占用的端口
<Connector port="8080" maxHttpHeaderSize="8192"改为8086或其他未占用的端口
<Connector port="8010" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />改为8016
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 改为8086
5.tomcat6/work/Catalina 下的文件可以删除
6.Apache2/conf/workers.properties worker.list=work1,work2,work3,work4,work5后面加,work6
并再最下面加上
worker.work6.port=8016
worker.work6.host=127.0.0.1
worker.work6.type=ajp13
worker.work6.lbfactor=1
8016要与前面配置的端口一致
7.配置环境变量
我的电脑右键-属性-高级-环境变量
系统变量里新建系统变量,变量名CATALINA_HOME6,变量值C:/Program Files/Apache Software Foundation/tomcat6
8.重启apache2,运行tomcat6/bin/startup.bat即可
2楼朋友说:你copy过去后要修改Tomcat1中server.xml中的端口,把端口由8080改成8089,你改了没
楼主回复2楼:没有,我以为不需要,再试试。非常感谢!!!
楼主:
非常感谢,我改了server.xml三个地方
HTML code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
<Server port="8095" shutdown="SHUTDOWN" debug="0">
<Connector
port="8089" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
<Connector port="8099"
enableLookups="false" redirectPort="8443" debug="0"
protocol="AJP/1.3" />
是这样的吗?
这是日志报的错误:
HTML code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
2008-10-14 13:01:38 StandardContext[/balancer]org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: [org.apache.webapp.balancer.RuleChain: [org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News / Redirect URL: http://www.cnn.com], [org.apache.webapp.balancer.rules.RequestParameterRule: Target param name: paramName / Target param value: paramValue / Redirect URL: http://www.yahoo.com], [org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: http://jakarta.apache.org]]
2008-10-14 13:01:42 StandardContext[/jsp-examples]ContextListener: contextInitialized()
2008-10-14 13:01:42 StandardContext[/jsp-examples]SessionListener: contextInitialized()
2008-10-14 13:01:42 StandardContext[/servlets-examples]ContextListener: contextInitialized()
2008-10-14 13:01:42 StandardContext[/servlets-examples]SessionListener: contextInitialized()
2008-10-14 13:02:03 StandardContext[/servlets-examples]ContextListener: attributeReplaced('org.apache.catalina.WELCOME_FILES', '[Ljava.lang.String;@113981b')
2008-10-14 13:02:03 StandardContext[/servlets-examples]ContextListener: attributeReplaced('org.apache.catalina.WELCOME_FILES', '[Ljava.lang.String;@1672bbb')
2008-10-14 13:02:03 StandardContext[/servlets-examples]ContextListener: attributeReplaced('org.apache.catalina.WELCOME_FILES', '[Ljava.lang.String;@6833f2')
2008-10-14 13:02:03 StandardContext[/servlets-examples]SessionListener: contextDestroyed()
2008-10-14 13:02:03 StandardContext[/servlets-examples]ContextListener: contextDestroyed()
2008-10-14 13:02:03 StandardContext[/jsp-examples]ContextListener: attributeReplaced('org.apache.catalina.WELCOME_FILES', '[Ljava.lang.String;@1bdb58')
2008-10-14 13:02:03 StandardContext[/jsp-examples]ContextListener: attributeReplaced('org.apache.catalina.WELCOME_FILES', '[Ljava.lang.String;@dd75a4')
2008-10-14 13:02:03 StandardContext[/jsp-examples]ContextListener: attributeReplaced('org.apache.catalina.WELCOME_FILES', '[Ljava.lang.String;@1568654')
2008-10-14 13:02:03 StandardContext[/jsp-examples]SessionListener: contextDestroyed()
2008-10-14 13:02:03 StandardContext[/jsp-examples]ContextListener: contextDestroyed()
我说:不过最好Tomcat服务器都为zip版,非安装版。
楼主试试,应该可以的啊
楼主说:我现在只改动 <Connector
port="8089" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
这一个,现在可以启动第二个,但是打开的还是第一个。我有把
set CATALINA_HOME=C:/Program Files/Apache Software Foundation/Tomcat1
放到startup.bat和catalina.bat的最上面。
我设置了系统的环境变量,是不是它首先会读取这个,所以每次都读到的是第一个TOMCAT。
2楼朋友:你把webapps目录下的文件全删除了,可能是系统部署出问题了!!!
楼主:还是没用,我在系统环境变量里配置的TOMCAT是第一个TOMCAT的东西。
我想问一下是不是要把这个给删除了。
我把系统环境变量关于TOMCAT的东西都删除掉了,现在第二个TOMCAT也是可以的,
但是现在又有一个问题了,我启动了一个TOMCAT,另外一个就不能启动了,如果两个不能同时启动,
那做这个也就没有意义了?
最后:总是已经解决了,是把server.xml其它两个端口也全改了,谢谢大家。特别感谢BearRui。
等晚上的时候结贴。再次感谢大家。
竹大补充:不单单是修改一个端口,server.xml里面的几个端口都要修改的。
你可以参考tomcat负载均衡的文章,里面就是同时运行多个 tomcat的,cluster集群
这个是我亲自尝试的,你参考看看吧!
Apache+Tomcat负载均衡和集群的尝试 |
|
|