一个Tomcat部署多个项目的两种方式


一个Tomcat部署多个项目的两种方式

如果需要在一个 tomcat 上部署多个项目,有以下两种方式:

一、相同端口

直接将多个项目 war 包放在 tomcat 安装目录下的webapps下。

一个Tomcat部署多个项目的两种方式-打不死的小强

这种方式所有项目共用同一个端口。所以这种方式的不足之处是:不同 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部署多个项目的两种方式

发表评论

邮箱地址不会被公开。 必填项已用*标注