1. 程式人生 > >Tomcat部署多個二級域名指向多個專案

Tomcat部署多個二級域名指向多個專案

在同一個ECS同一個Tomcat中利用二級域名部署多個應用

關鍵詞: 阿里雲 ECS Tomcat 二級域名

在阿里雲解析DNS新增A型別的多個二級域名,指向同一個ECS的IP,例如:

  • @.example.com
  • www.example.com
  • app.example.com
  • appx.example.com
  • ios.example.com
  • iosx.example.com

開啟Tomcat中的server.xml檔案,找到Host標籤。
新增多個Host標籤:

<!-- 預設為www.example.com -->
<Host name="localhost"
appBase="webapps" unpackWARs="true" autoDeploy="false">
<!-- 別名,使用example.com也可訪問 --> <Alias>example.com</Alias> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern
="%h %l %u %t &quot;%r&quot; %s %b" />
<!--docBase指向專案的根目錄--> <Context path="" docBase="D:\apache-tomcat-9.0.0.M26\webapps\main\" reloadable="true" privileged="true" debug="0"/> </Host>
<!-- 重要!name為二級域名 -->
<Host name="app.example.com"  appBase="webapps"
unpackWARs="true" autoDeploy="false">
<!-- 可新增別名 --> <Alias>appx.example.com</Alias> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="app_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" /> <!--docBase指向專案的根目錄--> <Context path="" docBase="D:\apache-tomcat-9.0.0.M26\webapps\app\" reloadable="true" privileged="true" debug="0"/> </Host>
<!-- 重要!name為二級域名 -->
<Host name="ios.example.com" appBase="webapps" unpackWARs="true" autoDeploy="false">
    <!-- 可新增別名 -->
    <Alias>iosx.example.com</Alias>
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
            prefix="ios_access_log" suffix=".txt"
            pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    <!--docBase指向專案的根目錄-->
    <Context path="" docBase="D:\apache-tomcat-9.0.0.M26\webapps\ios\" 
    reloadable="true" privileged="true" debug="0"/>
</Host>

將專案多個資料夾放到Host標籤中的appBase目錄(也可以指定絕對路徑)下,對應專案資料夾的位置在Context標籤docBase中,這樣使用相對路徑也可以訪問各個專案。
同樣也可以在Context標籤docBase中指定war包,不過每一次重啟Tomcat都會重新解壓war包。