有時候我們需要將多個域名指向同一個項目,那么在tomcat服務(wù)器下該如何實現(xiàn)呢?
之前查過有人說在 tomcat安裝目錄/conf/server.xml 中的server.xml配置文件中配置多個<Host>來實現(xiàn)這個功能~過程如下:
<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>
這樣雖然可以實現(xiàn),但是會有一個大問題,那就是會導(dǎo)致多虛擬機的情況
關(guān)于、標(biāo)簽的知識點可以參考:
當(dāng)tomcat啟動的時候它就會讀取該server.xml文件,tomcat每讀到一個就會加載該標(biāo)簽下指定的應(yīng)用,所以,我們上面的3個標(biāo)簽都是指定同一個應(yīng)用,也就是說tomcat重復(fù)加載了三遍該應(yīng)用,雖然我們我們成功將不同的域名綁定到了該應(yīng)用,不過這方法確實讓tomcat加載了3次該應(yīng)用,同時跑動三個相同的應(yīng)用!這是非常消耗資源的,而且這也不是安全、正確的方法。
所以下面,我將開始介紹如何正確的配置多域名的項目,其實在標(biāo)簽內(nèi)部有一種標(biāo)簽(注意大小寫),該標(biāo)簽就是可以將其他也需要配置的域名配置到該項目中去。其中Host標(biāo)簽的name屬性可以配置一個域名,一對標(biāo)簽也可以配置一個域名,如果有多個域名要配置,那么我們就可以多寫幾個標(biāo)簽便可。
<Host name="www.xxxx.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" >
<Alias>xxxx.com</Alias>
<Alias>m.xxxx.com</Alias>
<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>
這樣我們便完成了多域名的應(yīng)用配置~~
轉(zhuǎn)自:https://blog.csdn.net/wxh160901/article/details/84997973