前言
一个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、将项目放置在相应文件夹下面
本文介绍了一种在Tomcat中通过定义多个service标签并使用不同端口来部署多个项目的配置方法,有效解决了项目启动顺序及资源管理的问题。
658

被折叠的 条评论
为什么被折叠?



