Tomcat部署多個二級域名指向多個專案
阿新 • • 發佈:2018-12-25
在同一個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 "%r" %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 "%r" %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 "%r" %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包。