一个tomcat同时部署有启动顺序的多个项目

本文介绍了一种在Tomcat中通过定义多个service标签并使用不同端口来部署多个项目的配置方法,有效解决了项目启动顺序及资源管理的问题。

前言

一个tomcat部署多个项目常用的方法是将所有的项目放置在webapps里面,共用同一个端口,各项目根据项目名进行区分。如果多个项目有启动先后顺序,这样的做法就显得不合适,因为tomcat启动是根据项目名称字母顺序来启动。网上有种做法,在conf\Catalina\localhost文件夹下建立需要首先启动的项目相应文件,如果是两个项目没有问题,但多个项目仍然不方便控制。实用的做法是定义多个service标签,各项目使用不同的端口号。

操作方法

1、conf\server.xml定义多个service,需要注意各service端口、redirectPort端口和appBase对应文件夹都要不一样

  <Service name="Catalina">
    <Connector port="8700" protocol="HTTP/1.1"
               connectionTimeout="20000" 
               redirectPort="8443" maxThreads="500" acceptCount="500"
         compression="on" URIEncoding="UTF-8" 
         compressionMinSize="2048" 
         maxPostSize="-1"
         noCompressionUserAgents="gozilla, traviata" 
         compressableMimeType="text/html,text/xml,text/plain,text/css, 
         text/javascript,text/json,application/x-javascript, 
         application/javascript,application/json"/>
    <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Context path="/kbs-hosp-srv" docBase="/app/project/kbs-hosp-srv.war" reloadable="false" debug="0" />
      </Host>
    </Engine>
  </Service>
  
  <Service name="Catalina">
    <Connector port="8701" protocol="HTTP/1.1"
               connectionTimeout="20000" 
               redirectPort="8444" maxThreads="500" acceptCount="500"
         compression="on" URIEncoding="UTF-8" 
         compressionMinSize="2048" 
         maxPostSize="-1"
         noCompressionUserAgents="gozilla, traviata" 
         compressableMimeType="text/html,text/xml,text/plain,text/css, 
         text/javascript,text/json,application/x-javascript, 
         application/javascript,application/json"/>
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="webapps1"
            unpackWARs="true" autoDeploy="true">
        <Context path="/kbs-rule-srv" docBase="/app/project/kbs-rule-srv.war" reloadable="false" debug="0" />
      </Host>
    </Engine>
  </Service>
 
  <Service name="Catalina">
    <Connector port="8702" protocol="HTTP/1.1"
               connectionTimeout="20000" 
               redirectPort="8445" maxThreads="500" acceptCount="500"
         compression="on" URIEncoding="UTF-8" 
         compressionMinSize="2048" 
         maxPostSize="-1"
         noCompressionUserAgents="gozilla, traviata" 
         compressableMimeType="text/html,text/xml,text/plain,text/css, 
         text/javascript,text/json,application/x-javascript, 
         application/javascript,application/json"/>
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="webapps2"
            unpackWARs="true" autoDeploy="true">
        <Context path="/kbs-rule-api" docBase="/app/project/kbs-rule-api.war" reloadable="false" debug="0" />
      </Host>
    </Engine>
  </Service>

  <Service name="Catalina">
    <Connector port="8703" protocol="HTTP/1.1"
               connectionTimeout="20000" 
               redirectPort="8446" maxThreads="500" acceptCount="500"
         compression="on" URIEncoding="UTF-8" 
         compressionMinSize="2048" 
         maxPostSize="-1"
         noCompressionUserAgents="gozilla, traviata" 
         compressableMimeType="text/html,text/xml,text/plain,text/css, 
         text/javascript,text/json,application/x-javascript, 
         application/javascript,application/json"/>
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="webapps3"
            unpackWARs="true" autoDeploy="true">
        <Context path="/kbs-rule-web" docBase="/app/project/kbs-rule-web.war" reloadable="false" debug="0" />
      </Host>
    </Engine>
  </Service>  
  
  <Service name="Catalina">
    <Connector port="8704" protocol="HTTP/1.1"
               connectionTimeout="20000" 
               redirectPort="8447" maxThreads="500" acceptCount="500"
         compression="on" URIEncoding="UTF-8" 
         compressionMinSize="2048" 
         maxPostSize="-1"
         noCompressionUserAgents="gozilla, traviata" 
         compressableMimeType="text/html,text/xml,text/plain,text/css, 
         text/javascript,text/json,application/x-javascript, 
         application/javascript,application/json"/>
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="webapps4"
            unpackWARs="true" autoDeploy="true">
        <Context path="/kbs-xxl-job" docBase="/app/project/kbs-xxl-job.war" reloadable="false" debug="0" />
      </Host>
    </Engine>
  </Service> 

2、在tomcat文件根目录创建相应文件夹

3、将项目放置在相应文件夹下面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值