tomcat的多域名、虚拟主机配置

众所周知apache可以配置多域名和虚拟主机,而且配置起来比较简单,但是项目用到的是tomcat,配来配去总是不成功。查了些资料才总算可以,下面就跟大家分享下经验。

很多朋友搜索的内容基本是告诉我们这么配置:

在Engine标签下增面积Host标签,如下:

<Host name="www.site1.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
</Host>
<Host name="www.site2.com"  appBase="/xxx/xxx/site2"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
</Host>

 经过测试这样是不行的,只能找到www.site1.com这个域名,因为在site1中appBase已经指定了默认路径,所以解析site2时就出错了,这时我们应该修改配置为如下:

<Host name="www.site1.com"  appBase="/xxx/xxx/site1"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
<Context  path="" docBase="/xxx/xxx/site1"  reloadable="true"/>
</Host>
<Host name="www.site2.com"  appBase="/xxx/xxx/site2"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
<Context  path="" docBase="/xxx/xxx/site2"  reloadable="true"/>
</Host>

 这样就可以同时访问多个域名而网站目录不通的网站了。

当然如果想加入虚拟路径的话只需要增加如下内容在Host标签中即可:

<Context  path="/xxx"  docBase="/xxx/xxx/xxx"  reloadable="true"/>

 这里如果添加在site1中,则访问如下网址www.site1.com/xxx将会定向到本地/xxx/xxx/xxx这个目录。

相关推荐