1. 程式人生 > >Tomcat 多域名配置

Tomcat 多域名配置

環境

  • 一個tomcat,下面部署了多個專案

  • 有一個獨立的IP

  • 有多個頂級(二級)域名指向不同的專案。

DNS配置

DNS沒什麼特殊的要求,配置都指向這一個IP就行。

Tomcat配置

多域名有可能存在多種配置方式,我使用了一種(檔案結構)看著比較麻煩的方式。

Connector的配置方式基本都一樣:

<Connector port="80" protocol="HTTP/1.1"
           URIEncoding="UTF-8"
           connectionTimeout="20000"
           redirectPort="8443" />

首先埠都是80,一般還會帶上URIEncoding="UTF-8"防止亂碼。

下面就是多域名的配置方式:

<Engine name="Catalina" defaultHost="www.mybatis.tk">
  <Host name="www.mybatis.tk"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">
  </Host>
  <Host name="www.cndocs.tk"  appBase="docapps"
        unpackWARs="true" autoDeploy="true">
  </Host>
  <Host name="mbg.cndocs.tk"  appBase="mbg"
        unpackWARs="true" autoDeploy="true">
  </Host>
  <Host name="spring.cndocs.tk"  appBase="spring"
        unpackWARs="true" autoDeploy="true">
  </Host>
</Engine>

先看第一行的defaultHost="www.mybatis.tk",這個配置的意思是,當通過IP地址訪問的時候,使用的那個域名host(和下面具體的Hostname一致)。

下面的頂級(和二級)域名配置都一樣:

<Host name="www.mybatis.tk"
    appBase="webapps" unpackWARs="true" autoDeploy="true">
</Host>

這裡需要注意的是appBase,這裡指向的是tomcat目錄下的webapps目錄,預設指向該目錄下的ROOT。所以這個配置實際上就相當於webapps/ROOT

上面完整配置中的其他幾個docapps,mbg,spring也都是直接在tomcat下面的目錄(和webapps是平級目錄),都有ROOT目錄,部署的專案也都直接在ROOT下。

按上面配置後,正常情況就可以訪問了。