如果需要在一个 tomcat 上部署多个项目,有以下两种方式:
一、相同端口
直接将多个项目 war 包放在 tomcat 安装目录下的webapps下。
这种方式所有项目共用同一个端口。所以这种方式的不足之处是:不同 war 包名称不能相同。那么需要下面另一种方式
二、不同端口
1、在 tomcat 目录新建webapps2目录(和 webapps 在同一目录),将 war 包放置在该目录下。
2、进入配置文件 conf/server.xml ,复制节点<Service name=”Catalina”>在原节点下面,并作修改,内容如下所示:
<!--原内容--> <Service name="Catalina"> ...... </Service> <!--新复制出来的--> <Service name="Catalina2"> <Connector port="8898" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxSwallowSize="-1" maxHttpHeaderSize="16384"/> <Engine name="Catalina2" 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"> <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="/hiot/uploadfiles" docBase="/usr/local/hiot/uploadfiles/"/> <Context path="/hiot/download" docBase="/usr/local/hiot/download/"/> </Host> </Engine> </Service>
说明:主要修改如下几个部分
- Service 标签 的 name :Catalina2
- Connector 的 port :8898 ,此处端口改成不同于原来的端口(可自由指定(只要确保没被占用));
- Engine 的 name :Catalina2(与 Service 标签的 name 对应即可)
- Host 的 appBase :webapps2,此处 appBase 要改成第一步新建的 webapps2 目录。
- (可选)可以通过配置 Context 的 path 和 docBase ,指定访问路径,其中 path 表示浏览器访问时的路径,docBase 表示 path 映射到的实际本地目录。
3、最后,重启 tomcat 即可。
访问路径采用修改的端口后跟 war 包名称(如果没有为 war 包解压后的目录配置 Context 的 path 和 docBase 的话),如: webapp2 下放置了 another.war,则访问:
http://localhost:8898/another
1 thought on “一个Tomcat部署多个项目的两种方式”