開啟 Tomcat/config/server.xml:
<Engine name="Catalina" defaultHost="localhost"> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> </Engine>假設要使用兩個 Virtual host,網址分別為 vh1.neil.idv 與 vh2.neil.idv,其對應的 appBase 分別為 webapps_vh1 與 webapps_vh2,只要加上兩個 Host 定義如下:
<Engine name="Catalina" defaultHost="localhost"> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> <Host name="vh1.neil.idv" appBase="webapps_vh1" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> <Host name="vh2.neil.idv" appBase="webapps_vh2" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> </Engine>官方文件提醒:appBase 不可以重疊,也就是有上下層目錄關係。
至於 Virturl host 的 webapp 位置有三種設定方式:
1. 就放在 appBase 指定的位置
建立 webapp_vh1 與 webapps_vh2 兩個目錄,並產生必要的 web app。
2. 使用 webapp_vh1/META-INF/context.xml 自訂 webapp 位置
建立上述的目錄與檔案 context.xml:
<Context path="" docBase="{VH1_ROOT_WEBAPP_PATH}" reloadable="true"/>VH1_ROOT_WEBAPP_PATH 指向自訂的位置。
3. 使用 conf/Catalina/vh1.neil.idv/ROOT.xml 自訂 webapp 位置
建立上述的目錄與檔案 ROOT.xml:
<Context docBase="{VH1_ROOT_WEBAPP_PATH}" reloadable="true"/>這種設定方式不需要設定 path,path 由設定檔名稱決定(即 ROOT),VH1_ROOT_WEBAPP_PATH 指向自訂的位置。
事實上,使用過第 2 種設定方式後,Tomcat 自動產生第 3 種方式的設定檔。
最後但是非必要的步驟,編輯 Windows 的 hosts 檔案,加上網址的對應如下:
127.0.0.1 vh1.neil.idv 127.0.0.1 vh2.neil.idv
完成後,就可以分別使用 http://vh1.neil.idv/ 與 http://vh2.neil.idv/ 連到 vh1 與 vh2,而 http://localhost/ 還是可以連到 webapps。
---
沒有留言:
張貼留言