一台服务器如何部署多个tomcat项目,以及解决redis被占用的情况
方式一:
配置多个webapps
service.xml配置如下
<?xml version='1.0' encoding='utf-8'?>
<Server port="8054" shutdown="SHUTDOWN">
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
-->
<!--APR library loader. Documentation at /docs/apr.html -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
<Listener className="org.apache.catalina.core.JasperListener" />
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="9543" />
<Connector port="8909" protocol="AJP/1.3" redirectPort="9543" />
<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">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="/route" reloadable="true" docBase="/home/develop/tomcat-7.0.54/flatrass"/>
</Host>
</Engine>
</Service>
<Service name="Catalina">
<!--把port改成8081--> ---这里要修改,端口不能重复
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="9543" />
<Connector port="8909" protocol="AJP/1.3" redirectPort="9543" />
<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="webapps8081" ---这里要修改为修改后的webapps名称
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="/route" reloadable="true" docBase="/home/develop/tomcat-7.0.54/flatrasweats"/>
</Host>
</Engine>
</Service>
</Server>
方式二:
复制多个tomcat文件
直接把整个tomcat复制,然后把war包替换掉就行了,当然两个tomcat的service.xml里端口也不能重复
方式三:
放入同一个webapps,通过service.xml配置里面的标签来实现,有兴趣的自行百度
注意:
8080为HTTP端口,8443为HTTPS端口。
8005为远程停服务端口
8009为AJP端口
这几个都不要重复
redis被占用的解决办法
如果服务器上多个项目,都使用到了redis,可以复制config文件,修改配置和端口,重新启动一个,也可以只开一个redis,配置数据库源,0-15别重复就行