TOMCAT虚拟目录和多站点虚拟主机配置

准备:
安装好JDK1.7、Tomcat7.0
在D盘下创建3个站点的目录
d:\a
d:\b
d:\c
在每一个站点目录里面创建3个测试文件
d:\a\index.jsp 内容为 “d:\a\index.jsp” 绑定域名www.a.com 和a.com
d:\b\index.jsp 内容为 “d:\b\index.jsp” 绑定域名www.b.com 和b.com
d:\c\index.jsp 内容为 “d:\c\index.jsp” 绑定域名www.c.com 和c.com

(1): 配置Tomcat虚拟目录

1:最简单的方式,直接在tomcat的webapps目录下创建一个网站文件夹,比如aa ,把程序放到aa里面去,为了便于测试,在aa目录里面创建一个jsp探针页面。
然后通过http://localhost/aa就可以访问,其中aa为网站的目录名。

2:自定义方式:把网站放在其它的目录下,比如放在d:\a 目录下,那么就要修改server.xml了。
在</Host>前增加以下内容即可:
<Context path="/a" docBase="d:/a" workDir="D:/tomcat/work/Catalina/a" reloadable="true" crossContext="true" />
则可以通过http://localhost/a 就能访问d:/a所在的项目内容。

测试效果:
访问http://localhost显示tomcat小猫页面;访问http://localhost/aa 显示jsp探针的内容;访问http://localhost/a 显示的内容为“d:\a\index.jsp”。
当把上面<Context path="/a" docBase="d:/a" workDir="D:/tomcat/work/Catalina/a" reloadable="true" crossContext="true" /> 中的path="/a" 改为
path="/aa" , 访问http://localhost/aa 显示的内容是d:\a\index.jsp 而不是jsp探针的内容。 紧接着把path="/aa" 改成path="" 或path="/" , 访问
http://localhost/aa显示的内容是jsp探针的内容(位于webapps\aa)。
(2): 配置Tomcat虚拟主机

在第一个</Host> 之后 ,新建一个<Host>模块。

<Host name="www.a.com" appBase="d:/a" unpackWARs="true" autoDeploy="false" xmlValidation="false" xmlNamespaceAware="false" >
<Context path="/tt" docBase="d:/a" workDir="D:/tomcat/work/Catalina/b" reloadable="false" crossContext="true" />
</Host>

此访问的效果: http://www.a.com 为空白页面;http://www.a.com/tt 显示的内容为“d:\a\index.jsp”。要想http://www.a.com 的内容为“d:\a\index.jsp”
, 我们有两种方法:
第一个方法: 在d:\a目录下创建一个 ROOT文件夹, 把文件d:\a\index.jsp拷贝一份到d:\aa\ROOT即可。
第二个方法:增加一句<Context path="/" docBase="d:/a" workDir="D:/tomcat/work/Catalina/b" reloadable="false" crossContext="true" /> 即可。

path="/" 与 path="" 效果一样, 若改成 path=" " 访问http://www.a.com 是空白页面 , path=" " 表示路径为空,访问不到。要想访问到,需要用到“第一个方
法”。

此处完整代码:
<Host name="www.a.com" appBase="d:/a" unpackWARs="true" autoDeploy="false" xmlValidation="false" xmlNamespaceAware="false" >
<Context path="/" docBase="d:/a" workDir="D:/tomcat/work/Catalina/b" reloadable="false" crossContext="true" />
<Context path="/tt" docBase="d:/a" workDir="D:/tomcat/work/Catalina/b" reloadable="false" crossContext="true" />
<Alias>a.com</Alias>
</Host>

访问效果: 访问http://www.a.com 与 http://www.a.com/tt 显示的内容为“d:\a\index.jsp”,访问的是同一个项目;访问http://a.com 与 http://a.com/tt 显示的内容为“d:\a\index.jsp”

需要注意的是d:\a\ 目录里面不要存在ROOT目录。 若存在ROOT目录,访问http://www.a.com 时候,访问的是d:\a\ROOT目录的内容,http://www.a.com/tt不受影响。

附:server.xml 核心配置代码截图

tomcat

 

相关新闻

联系我们

全国服务热线

400-033-9553

电子邮件:admin@example.com
工作时间:09:00-17:00 周一至周五

在线客服
关注微信
关注微信
分享本页
返回顶部