`
农村哥们
  • 浏览: 293426 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Tomcat 同时侦听多端口,多应用

阅读更多
当你使用Tomcat作为Web Server的时候,是不是会想过这样的一个问题:如何利用Tomcat建立两个Web Server,同时侦听来自不同端口的请求呢?要实现这一点是很简单的。以下假设Tomcat安装在D:/Tomcat5.0目录下。
Tomcat在启动的时候,都会从D:/Tomcat5.0/conf/server.xml中获得server启动的一些基本信息;在server.xml中,你会看到这个节点,如下所示:
  1. <Service name="Catalina">   
  2.   <Connector   
  3.     acceptCount="100"  
  4.     connectionTimeout="20000"  
  5.     disableUploadTimeout="true"  
  6.     port="8080"  
  7.     redirectPort="8443"  
  8.     maxSpareThreads="75"  
  9.     maxThreads="150"  
  10.     minSpareThreads="25" />   
  11.   <Connector   
  12.     port="8009"  
  13.     protocol="AJP/1.3"  
  14.     protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"  
  15.     redirectPort="8443" />   
  16.   <Engine   
  17.     defaultHost="localhost"  
  18.     name="Catalina">   
  19.     <Host   
  20.       appBase="webapps"  
  21.       name="localhost">   
  22.       <Logger   
  23.         className="org.apache.catalina.logger.FileLogger"  
  24.         prefix="localhost_log."  
  25.         suffix=".txt"  
  26.         timestamp="true" />   
  27.     </Host>   
  28.     <Logger   
  29.       className="org.apache.catalina.logger.FileLogger"  
  30.       prefix="catalina_log."  
  31.       suffix=".txt"  
  32.       timestamp="true" />   
  33.     <Realm className="org.apache.catalina.realm.UserDatabaseRealm" />   
  34.   </Engine>   
  35. </Service>  
<Service name="Catalina">
  <Connector
    acceptCount="100"
    connectionTimeout="20000"
    disableUploadTimeout="true"
    port="8080"
    redirectPort="8443"
    maxSpareThreads="75"
    maxThreads="150"
    minSpareThreads="25" />
  <Connector
    port="8009"
    protocol="AJP/1.3"
    protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"
    redirectPort="8443" />
  <Engine
    defaultHost="localhost"
    name="Catalina">
    <Host
      appBase="webapps"
      name="localhost">
      <Logger
        className="org.apache.catalina.logger.FileLogger"
        prefix="localhost_log."
        suffix=".txt"
        timestamp="true" />
    </Host>
    <Logger
      className="org.apache.catalina.logger.FileLogger"
      prefix="catalina_log."
      suffix=".txt"
      timestamp="true" />
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" />
  </Engine>
</Service>
在节点下的第一个节点,则定义了侦听的端口,以上例子就是8080。而对于节点本身,它的属性name的值是Catalina,这是一个关键的地方,接着就是子节 点,而它的属性defaultHost的值是localhost,这也是一个关键的地方。
我们可以从D:/Tomcat5.0/conf下面找到一个名为Catalina的文件夹,在这个文件夹中还包含着一个名为localhost的文件夹。在 localhost文件夹下面包含着很多xml,而这些xml就是每一个Web Application的Context配置文件了。根据这些信息,很容易就可以想到建立两个Web Server的方法了。
首先,在D:/Tomcat5.0/conf 创建一个名为Fantasysoft(名字可以随你自己定了)的文件夹,然后在Fantasysoft下面在创建一个localhost的文件夹,然后将相应的Web Application的 Context配置文件放到新建的localhost文件夹中;
接着,在server.xml中对照已有的节点增加一个节点,将name属性改Fantasysoft,将port口都进行相应的修改。如下:
  1. <Service name="Fantasysoft">   
  2.   <Connector   
  3.     acceptCount="100"  
  4.     connectionTimeout="20000"  
  5.     disableUploadTimeout="true"  
  6.     port="8090"  
  7.     redirectPort="8453"  
  8.     maxSpareThreads="75"  
  9.     maxThreads="150"  
  10.     minSpareThreads="25" />   
  11.   <Connector   
  12.     port="8019"  
  13.     protocol="AJP/1.3"  
  14.     protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"  
  15.     redirectPort="8453" />   
  16.   <Engine   
  17.     defaultHost="localhost"  
  18.     name="Catalina">   
  19.     <Host   
  20.       appBase="webapps"  
  21.       name="localhost">   
  22.       <Logger   
  23.         className="org.apache.catalina.logger.FileLogger"  
  24.         prefix="localhost_log."  
  25.         suffix=".txt"  
  26.         timestamp="true" />   
  27.     </Host>   
  28.     <Logger   
  29.       className="org.apache.catalina.logger.FileLogger"  
  30.       prefix="catalina_log."  
  31.       suffix=".txt"  
  32.       timestamp="true" />   
  33.     <Realm className="org.apache.catalina.realm.UserDatabaseRealm" />   
  34.   </Engine>   
  35. </Service>  
<Service name="Fantasysoft">
  <Connector
    acceptCount="100"
    connectionTimeout="20000"
    disableUploadTimeout="true"
    port="8090"
    redirectPort="8453"
    maxSpareThreads="75"
    maxThreads="150"
    minSpareThreads="25" />
  <Connector
    port="8019"
    protocol="AJP/1.3"
    protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"
    redirectPort="8453" />
  <Engine
    defaultHost="localhost"
    name="Catalina">
    <Host
      appBase="webapps"
      name="localhost">
      <Logger
        className="org.apache.catalina.logger.FileLogger"
        prefix="localhost_log."
        suffix=".txt"
        timestamp="true" />
    </Host>
    <Logger
      className="org.apache.catalina.logger.FileLogger"
      prefix="catalina_log."
      suffix=".txt"
      timestamp="true" />
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" />
  </Engine>
</Service>
最后,重新启动Server,你就可以通过8090端口访问到你建立的网络
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics