Tomcat 配置多域名访问

Tomcat 配置多域名访问
第一种:

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

这样配置,对于同一个项目,会存在的问题是资源重复加载,每监听一个 host 就要把对应的 webapps 的目录下所有的文件都部署一遍。合理的方式应该是将不同项目的文件夹分开,以作为不同的资源对不同的域名部署。

第二种:

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

这种方式是对同一个资源进行加载,并监听不同的域名。
以上内容摘自 ##JamKong的博客
一般 tomcat 架构解析的书都会有介绍,不再细说。