Tomcat多个域名指向同一个项目

有时候我们需要将多个域名指向同一个项目,那么在tomcat服务器下该如何实现呢?

之前查过有人说在 tomcat安装目录/conf/server.xml 中的server.xml配置文件中配置多个<Host>来实现这个功能~过程如下:

  1. <Host name="www.xxxx.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" >  
  2.                 <Context path="" docbase="" />  
  3.                 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
  4.                prefix="qunasao_access_log." suffix=".txt"  
  5.                pattern="%h %l %u %t "%r" %s %b" />  
  6.             </Host>   
  7. <Host name="xxxx.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" >  
  8.                 <Context path="" docbase="" />  
  9.                 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
  10.                prefix="qunasao_access_log." suffix=".txt"  
  11.                pattern="%h %l %u %t "%r" %s %b" />  
  12.             </Host>   
  13. <Host name="m.xxxx.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" >  
  14.                 <Context path="" docbase="" />  
  15.                 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
  16.                prefix="qunasao_access_log." suffix=".txt"  
  17.                pattern="%h %l %u %t "%r" %s %b" />  
  18.             </Host>   

这样虽然可以实现~但是会有一个大问题,那就是会的导致多开虚拟机的情况~

关于<Host>、<Context>标签的知识点可以参考:

1. http://www.educity.cn/wenda/346059.html 

2. http://hdxiong.iteye.com/blog/650539

当tomcat启动的时候它就会读取该server.xml文件,tomcat每读到一个<Host>就会加载该标签下指定的应用,所以,我们上面的3个<Host>标签都是指定同一个应用,也就是说tomcat重复加载了三遍该应用,虽然我们我们成功将不同的域名绑定到了该应用,不过这方法确实让tomcat加载了3次该应用,同时跑动三个相同的应用!这是非常消耗资源的,而且这也不是安全、正确的方法。


所以下面,我将开始介绍如何正确的配置多域名的项目,其实在<Host>标签内部有一种<Alias>标签(注意大小写),该标签就是可以将其他也需要配置的域名配置到该项目中去。其中Host标签的name属性可以配置一个域名,一对<Alias>标签也可以配置一个域名,如果有多个域名要配置,那么我们就可以多写几个<Alias>标签便可。

  1. <Host name="www.xxxx.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" >  
  2.                 <Alias>xxxx.com</Alias>  
  3.                 <Alias>m.xxxx.com</Alias>  
  4.                 <Context path="" docbase="" />  
  5.                 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
  6.                prefix="qunasao_access_log." suffix=".txt"  
  7.                pattern="%h %l %u %t "%r" %s %b" />  
  8.             </Host>  

这样我们便完成了多域名的应用配置~~

阅读更多
个人分类: Apache
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭