tomcat部署项目-同一个端口部署多个程序
-
准备工作
1.1 首先在本地安装tomcat,这里就不过多得描述1.2 本地准备好两个war包,也可以是一个war包,取不同得名字
eg: demowar.war demowar1.war -
准备好两个域名
由于我是在本地测试,所有在本地设置两个域名,在hosts文件中修改
hosts文件位置:C:\Windows\System32\drivers\etc\
# 本地地址 --- 域名
127.0.0.1 www.test.com
127.0.0.1 www.test1.com
-
修改tomcat得配置文件
2.1 将两个war包放入到tomcat得webapps目录下
2.2 修改tomcat得配置文件server.xml
<!--
name: 域名(自定义得域名)
appBase:项目得存放路径,默认值为tomcat下得webapps
path:虚拟路径,可以理解为项目名称,域名 + 端口 + : + "path设置得虚拟路径" + "访问得真实路径"
docBase:项目得绝对路径
eg:D:\ldw\soft\apache-tomcat-7.0.104\webapps\demowar
-->
<Host name="www.test.com" appBase=""
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="D:\ldw\soft\apache-tomcat-7.0.104\webapps\demowar" debug="0" reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="www.test1.com" appBase=""
unpackWARs="true" autoDeploy="true">
<Context path="/test" docBase="D:\ldw\soft\apache-tomcat-7.0.104\webapps\demowar1" debug="0" reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
-
启动项目
通过catalina run 直接启动项目即可,访问得路径为:
①、http://www.test.com/
②、http://www.test1.com/test/
由于第二个项目我设置里 path=”/test“,所以访问路径应加上/test -
测试实际遇到得问题
4.1 tomcat下得war包,启动两次
<!--
究其原因Host中 :appBase设置了默认值,appBase="webapps",
同时context中设置了docBase的值
-->
<!--
解决办法:
appBase = "" 设置为空,
docBase = "D:\ldw\soft\apache-tomcat-7.0.104\webapps\demowar1",设置项目的绝对路径即可。
-->
<Host name="www.test1.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="/test" docBase="D:\ldw\soft\apache-tomcat-7.0.104\webapps\demowar1" debug="0" reloadable="true"/>