Tomcat建立多個虛擬主機,只須要修改server.xml,添加多個的Host,指定不一樣的name便可。 html
Tomcat的server.xml文件Host內容解析: web
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host>
在server.xml中使用<Host>標籤包裹,其中Host標籤的元素有: apache
name : 指出這個虛擬主機的名字,能夠使域名。 tomcat
appBase : 若是要war文件自動部署的話指定這個目錄,這個目錄下的war文件會被自動部署。 app
unpackWARs : 是否對appBase指定的目錄下的war文件自動解壓,true爲自動解壓,false爲不自動解壓,直接運行war文件。 webapp
autoDeploy:設置是否在tomcat運行期間自動更新項目(包括在appBase添加新的項目,修改,刪除,更新),true時,會自動更新appBase下的war項目,web.xml文件的更改,以及Host下指定<Context> 標籤訂製的項目(在appBase下的)。 網站
(http://tomcat.apache.org/tomcat-7.0-doc/deployer-howto.html#Deploying_on_a_running_Tomcat_server) ui
在Host標籤中,還能夠添加子標籤: url
<Alias>域名</Alias> spa
指定域名,可設置多個。支持正則.
<Context path="" docBase="/www/a.war" reloadable="true" />
context標籤是用來指定自定義的網站的url,以及映射實際的在系統的物理路徑。
例如:<Context path="/abc" docBase="/www/a.war" reloadable="true" />時,咱們訪問www.xxx.com/abc代替www.xxx.com/a。
path :是要重命名後的路徑,用/表明根路徑,例如/abc
docBase: 是指定war的真實的物理路徑,能夠不在appBase下。
reloadable:爲true時會自動更新,context指定的應用。
關於appBase和docBase路徑的區別和關係:
appBase:是能夠自動部署war的路徑,默認是在tomcat的安裝路徑下的webapps,若是 用tomcat的默認的話使用相對路徑,也能夠使用絕對路徑指定一個非tomcat默認的路徑。
docBase:與appBase沒什麼直接關係,它指出特定的應用的單獨設置。若是war包在 appbase下,能夠使用相對路徑,好比在appBase路徑下有,a.war,設置 docBase時能夠用a來設置。經常使用使用絕對路徑定義。
標籤:Valve:
設置Host的訪問日誌
classname : 設置使用哪一個類來處理tomcat的訪問日誌
directory : 設置log日誌的存放路徑,默認log是在tomcat的安裝路徑下logs目錄下
prefix : 指定訪問日誌的前綴,也能夠理解爲名字。
suffix : 指定訪問日誌的後綴,能夠理解爲擴展名。
pattern : 爲日誌的記錄格式。