天天看點

如何了解tomcat的server.xml中host、context的标簽配置

              網上有很多tomcat目錄下server.xml的配置的文章,但是對于初學者來說,如何了解host的标簽的配置内容确實一下轉不過彎。至少本人就是這個傻樣。

    我希望我能幫助一些初學者去了解。先了解配置步驟,再了解配置的目的。

           首先,host标簽的意思,根據大家的普遍意思,它表示“虛拟主機”的意思。而虛拟主機在我了解就是實際主機IP經過DNS解析後的普通文字。

<!--server.xml中host的示例配置如下-->

 <Host appBase="D:\test" autoDeploy="true" name="www.test.com" unpackWARs="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" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"/>
          
                      
<Context docBase="index" path="" reloadable="true" />
           
<Context docBase="E:\test\app2" path="/app2" reloadable="true" />
<Context docBase="app3" path="/app3" reloadable="true" source="org.eclipse.jst.jee.server:download"/>
           
 </Host>
各個标簽的意義:  
  
appBase:顧名思義,就是程式基地的意思,也是是存放應用程式的路徑,類似于tomcat預設的webapps,當自定義host标簽時,這個值是可以自定義的絕對路徑

aotuDeploy:是否設定程式自動裝載。不多解釋

name:你的主機名,根據需要任意命名。

unpachWARs:是否自動解壓war包。true值時,appdase下打成war包的項目會在tomcat啟動時自動解壓

            
Context:配置上下文,也就是對應主機下的具體子項目。
         docBase指定項目的位置,可以是相對appBase的路徑,也可以是絕對路徑。如果使用相對appBase路徑的位置,則直接寫應用檔案夾名字即可;
                否則應該寫絕對位置,如:E:\test\app1

           
path:設定該項目通路的路徑名,如:/app1 .如果path為""--即空字元串,則通路該主機時預設通路該path所在的context元素下docBase所指定的項目, path值為""的context隻能有一個。          了解完上訴意思之後,就可以配置了。         步驟1:配置tomcat安裝目錄下的conf目錄下的server.xml檔案,直接按照上訴說明配置,儲存即可。         步驟2:在C:\Windows\System32\drivers\etc 路徑下找到名為hosts的檔案,注意不是hosts.txt,是無字尾名的hosts。                       用記事本打開,在最後一行添加,    域名(主機名)-------ip的映射,如,127.0.0.1       www.test.com   ,儲存。                      !儲存不了? ,那是因為你的權限不夠,參考: http://jingyan.baidu.com/article/624e7459b194f134e8ba5a8e.html                         注意:映射名應該與之前配置serverxml檔案中的host配置中的name值一緻,否則配置無效; 行首不能有#,其代表注釋。          完成以後,如果按示例配置,即可通過主機名 www.test.com通路了。                           www.test.com:8080:通路index項目                          www.test.com:8080/app2:通路app2項目                          www.test.com:8080/app3:通路app3項目                PS: 了解映射:      127.0.0.1(映射前)-------------ip位址不好記----》dns--(本地或英特網)域名解析裝置映射--------------------www.test.com(映射後)                              總結:

        host是什麼:

             多個子項目組成的大項目,他是一個功能完整、能實作實際業務完整性的項目,此時需要使用一個主機這樣的邏輯單元來管理。顯像的說,我希望這些業務由一台電腦(假設)來完成,此時這樣的電腦就叫主機,這個主機的辨別就是主機名---域名。比如淘寶,他可以買東西、買東西,浏覽東西,這些完整的實際業務的完成,實際可以簡單的了解為通過 www.taobao.com來完成,也可以叫這台主機為www.taobao.com。

         什麼時候要配置多個host: 

                  開發時可以用來測試;上線時可以分離完整的實際業務,友善管理。如:淘寶、支付寶的分離,他們都有完整(是否完整由人自定義)的業務功能。