虛擬主機和 Tomcat
目錄
假設
為了本教學的目的,假設您有一個開發主機,具有兩個主機名稱,ren
和 stimpy
。我們也假設執行 Tomcat 的一個執行個體,所以 $CATALINA_HOME
參照它安裝的位置,可能是 /usr/local/tomcat
。
此外,本教學使用 Unix 風格的路徑分隔符號和指令;如果您使用 Windows,請做適當的修改。
server.xml
最簡單的方法,編輯 server.xml
檔案的 引擎 部分,使其看起來像這樣
<Engine name="Catalina" defaultHost="ren">
<Host name="ren" appBase="renapps"/>
<Host name="stimpy" appBase="stimpyapps"/>
</Engine>
請注意,每個主機的 appBase 底下的目錄結構不應互相重疊。
Webapps 目錄
為每個虛擬主機建立目錄
mkdir $CATALINA_HOME/renapps
mkdir $CATALINA_HOME/stimpyapps
組態您的內容
一般
Context 通常位於 appBase 目錄底下。例如,若要在 ren
主機中將 foobar
context 部署為 war 檔案,請使用 $CATALINA_HOME/renapps/foobar.war
。請注意,ren
的預設或 ROOT context 會部署為 $CATALINA_HOME/renapps/ROOT.war
(WAR) 或 $CATALINA_HOME/renapps/ROOT
(目錄)。
注意:context 的 docBase
永遠不應與主機的 appBase
相同。
context.xml - 方法 #1
在您的 Context 中,建立一個 META-INF
目錄,然後將您的 Context 定義放入其中一個名為 context.xml
的檔案中。例如 $CATALINA_HOME/renapps/ROOT/META-INF/context.xml
。這會讓部署更容易,特別是如果您正在分發 WAR 檔案時。
context.xml - 方法 #2
在 $CATALINA_HOME/conf/Catalina
底下建立一個與您的虛擬主機對應的結構,例如
mkdir $CATALINA_HOME/conf/Catalina/ren
mkdir $CATALINA_HOME/conf/Catalina/stimpy
請注意,結尾目錄名稱「Catalina」代表 Engine 元素的 name
屬性,如上所示。
現在,針對您的預設 Web App,請新增
$CATALINA_HOME/conf/Catalina/ren/ROOT.xml
$CATALINA_HOME/conf/Catalina/stimpy/ROOT.xml
如果您想針對每個主機使用 Tomcat 管理員 Web App,您也需要在此處新增它
cd $CATALINA_HOME/conf/Catalina
cp localhost/manager.xml ren/
cp localhost/manager.xml stimpy/
每個主機的預設值
您可以透過在主機特定 xml 目錄中指定 context.xml.default
和 web.xml.default
檔案中的新值,來覆寫 conf/context.xml
和 conf/web.xml
中找到的預設值。
根據我們先前的範例,您可以使用 $CATALINA_HOME/conf/Catalina/ren/web.xml.default
來自訂部署在名為 ren
的虛擬主機中的所有 Web App 的預設值。
更多資訊
有關 Context 元素的其他屬性,請參閱組態文件。