一台机器同时运行多个Tomcat服务解决方案(补充版)

作者:fbysss
msn:[email protected] 
blog:blog.csdn.net/fbysss
声明:本文由fbysss原创,转载请注明出处 
关键字:Tomcat
   如果不加任何修改,在一台服务器上同时运行两个Tomcat服务显然会发生端口冲突。假设现在已经按照正常的方式安装配置好了第一个Tomcat,第二个如何设置呢?以下是使用Tomcat5.5解压版本所做的实验。
解决办法:
1.
解压Tomcat到一个新的目录,比如d:/TomcatServer2;
2.新建一个环境变量CATALINA_HOME2,路径为d:/TomcatServer2;
3.编辑Tomcat/bin/startup.bat和catalina.bat,把CATALINA_HOME全部替换成CATALINA_HOME2;
4.编辑Tomcat/conf/server.xml,把8080和8005端口修改成其他数字,比如8888和9999;
5.运行测试。
补充:如果想只运行一个tomcat,可以通过配置多个Service来完成。
假设f:/sss为根目录,test为web应用目录
把下面的代码添加到server.xml的Server节点之后
  <Service name="sss">
 <Connector port="8888" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
 <Connector port="9999" protocol="AJP/1.3" redirectPort="8444" />
 <Engine name="sss" defaultHost="localhost">
  <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
  <Host name="localhost" appBase="f:/sss" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
  <Context docBase="test" path=""/> 
  </Host>
 </Engine>
但是有一个小小的问题是(据说是5.5的bug):子目录不能有与应用名相同的情况。也就是说,test下面不能再有一个test目录。否则http://localhost:8888/test/aaa.html将访问的是f:/sss/test/aaa.html,而不是f:/sss/test/test/aaa.html

你可能感兴趣的:(tomcat,server,Blog,service,服务器,Path)