天天看點

Java應用伺服器之tomcat基礎配置(一)

Java應用伺服器之tomcat基礎配置(一)

所謂部署就是把webapp的源檔案放置于目标目錄(網頁程式檔案存放目錄,類似httpd中的documentroot指定的目錄),然後配置tomcat伺服器能夠基于web.xml和context.xml檔案中定義的路徑來通路webapp;然後将其特有的類和依賴的類通過類加載器(class loader)裝載至jvm的這一過程;部署第方式有兩種,一種是自動部署(auto deploy),自動部署就是我們直接把webapp檔案放置對應目錄下就可以實作通路,不需要人為手動的去配置部署;另外一種就是手動部署,手動部署又可以分為冷部署和熱部署;所謂冷部署就是把webapp源碼檔案放到指定位置,然後啟動tomcat這種方式叫冷部署;熱部署指的是在不停止tomcat的前提下進行部署的方式;

  前文我們聊到了java相關重要元件和它們之間的關系以及jdk、tomcat部署回顧請參考https://www.cnblogs.com/qiuhom-1874/p/13302938.html;今天我們來聊一聊tomcat的配置使用相關話題;

  一、tomcat配置相關檔案簡介

  1、server.xml

  server.xml的配置檔案格式大緻如下

<Server>
    <Service>
        <connector/>
        <connector/>
         ...
        <Engine>
            <Host>
                <Context/>
                <Context/>
                ...
            </Host>
            <Host>
            ...
            </Host>
            ...
        </Engine>
    </Service>
</Server>
      

  提示:server.xml是tomcat的主配置檔案,主要定義server屬性相關參數,而server中核心的元件有service(服務)、connector(連接配接器)、engine(引擎)、host(虛拟主機)、context(上下文);這些元件它們都有一定聯系,其中一個service中可以包含一個或多個連接配接器(connector),其次就是引擎(engine),引擎是tomcat運作jsp代碼的核心元件,通常情況一個連接配接器隻能對應一個引擎,而一個引擎可以對應多個連接配接器,可以包含多個host,host我們可以了解為httpd中的基于名稱的虛拟主機;一個host中可以一個或多個context;context的主要作用是定義location與檔案系統路徑的對應關系和通路權限相關配置;

  對于tomcat配置檔案server.xml中的元件,其實都是Java的類實作,這些元件大體可分為如下類型:

  頂級元件:Server

  服務類元件:Service

  連接配接器元件:http, https, ajp(apache jserv protocol)

  容器類:Engine, Host, Context

  被嵌套類:valve, logger, realm, loader, manager, ...

  叢集類元件:listener, cluster, ...

  2、web.xml:每個webapp隻有部署後才能被通路,它的部署方式通常由web.xml進行定義,其存放位置為WEB-INF/目錄中;通常情況每個webapp項目中都會有WEB-INF或META-INF目錄,該目錄就是用于存放該項目部署相關配置(web.xml或者context.xml),如果對應項目裡沒有這個目錄,那麼tomcat中的web.xml就提供預設部署相關配置;

  3、context.xml:webapp的專用配置檔案,其存放位置為WEB-INF/目錄中;該檔案和web.xml檔案類似,如果對應webapp項目中沒有WEB-INF或META-INF目錄,那麼tomcat中的content.xml就是為其提供預設配置;

  4、tomcat-users.xml:使用者認證的賬号和密碼檔案;

  5、catalina.policy:當使用-security選項啟動tomcat時,用于為tomcat設定安全政策;

  6、catalina.properties:Java屬性的定義檔案,用于設定類加載器路徑,以及一些與JVM調優相關參數;

  7、logging.properties:日志系統相關的配置;

  二、webapp的組織結構

    /:webapps的根目錄

    index.jsp:首頁腳本,類似fpm中的index.php;

    WEB-INF/:目前webapp的私有資源路徑;通常用于存儲目前webapp的web.xml和context.xml配置檔案;所謂私有資源路徑就是在對應url上無法進行通路的資源(不能以uri的方式被其他人通路到);

    META-INF/:此目錄作用類似WEB-INF/;

    class/:存儲目前webapp所提供的類檔案;

    lib/:存儲類檔案目錄,目前webapp所提供的類被打包成jar格式的類檔案;

Java應用伺服器之tomcat基礎配置(一)

  webapp歸檔格式:

    .war這類檔案是webapp的歸檔檔案,裡面包含了整個webapp的所有檔案,類,我們可以了解.war格式的檔案就是整個webapp所有檔案的壓縮歸檔檔案,通常我們直接把該檔案放在webapps目錄下然後啟動tomcat,這個包會自動展開;通常.war包用于部署單元來使用;

    .jar這類檔案通常是把類和類相關的資源封裝壓縮在一起的歸檔檔案;通常用于部署和封裝庫、元件和插件程式;

    .rar這類檔案主要是資源擴充卡類打封包件的格式;

    .ear這類檔案是企業級webapp打封包件,和.war不同的是,ear是針對EJB容器,.war針對web容器;ear包含war;

  三、部署webapp的相關術語:

    1、deploy(部署):所謂部署就是把webapp的源檔案放置于目标目錄(網頁程式檔案存放目錄,類似httpd中的documentroot指定的目錄),然後配置tomcat伺服器能夠基于web.xml和context.xml檔案中定義的路徑來通路webapp;然後将其特有的類和依賴的類通過類加載器(class loader)裝載至jvm的這一過程;部署第方式有兩種,一種是自動部署(auto deploy),自動部署就是我們直接把webapp檔案放置對應目錄下就可以實作通路,不需要人為手動的去配置部署;另外一種就是手動部署,手動部署又可以分為冷部署和熱部署;所謂冷部署就是把webapp源碼檔案放到指定位置,然後啟動tomcat這種方式叫冷部署;熱部署指的是在不停止tomcat的前提下進行部署的方式;常用的部署工具有:manager、ant腳本和tcd(tomcat client deployer)等;

    2、undeploy(反部署):所謂反部署就是部署的逆向操作,停止webapp并從tomcat執行個體上解除安裝webapp的操作叫反部署;

    3、start:啟動處于停止狀态的webapp;

    4、stop:停止webapp,使其不再像客戶提供服務,但是類依然在jvm上;

    5、redeploy:重新部署;

  示例:手動提供一測試類應用,并冷部署到tomcat上

  1、建立目錄結構

Java應用伺服器之tomcat基礎配置(一)

  提示:在webapps目錄下建立項目目錄;這裡說一下webapps目錄,這個目錄預設配置是支援熱部署的,其中ROOT目錄是主站點源碼檔案存放地,存放在ROOT目錄下的檔案在通路時可以不用加任何uri就可以通路得到,其他目錄需要加對應目錄名為uri才可以被通路;

  2、建立index.jsp檔案

Java應用伺服器之tomcat基礎配置(一)

  提示:index.jsp檔案中就做了一件事,列印hello world這句話;

  3、更改目錄權限

Java應用伺服器之tomcat基礎配置(一)

  提示:建立的檔案我們需要保證tomcat使用者有可以正常的讀取即可,對于目錄tomcat使用者可以進入即可;

  4、啟動tomcat

Java應用伺服器之tomcat基礎配置(一)

  提示:預設情況tomcat所在webapps目錄下的子目錄是可以通過通路對應目錄名稱通路到的,我們把網頁腳本檔案放到webapps目錄下的子目錄下,不停tomcat也是可以通路到,原因是tomcat預設就支援熱部署;如下配置檔案所示

Java應用伺服器之tomcat基礎配置(一)

  驗證:用浏覽器通路我們剛才部署testwebapp,看看是否能夠被通路到?

Java應用伺服器之tomcat基礎配置(一)

  提示:可以看到我們通路對應子目錄的名稱是可以正常通路到對應目錄下的index.jsp檔案;

  四、利用tomcat的兩個管理應用來部署webapp

  1、給manager應用配置賬号

Java應用伺服器之tomcat基礎配置(一)

  提示:tomcat-user.xml這個配置檔案主要是定義使用者相關配置;以上配置表示啟動manager-gui角色,并添加tomcat使用者擁有manager-gui角色的所有權限;這需要注意一點username password roles 這幾個變量之間是用空格做分割的,不要忘記每個變量指派後,用空格分割,最後一個不需要有空格;

  重新開機tomcat服務

Java應用伺服器之tomcat基礎配置(一)

  網頁登陸manager app

Java應用伺服器之tomcat基礎配置(一)
Java應用伺服器之tomcat基礎配置(一)
Java應用伺服器之tomcat基礎配置(一)

  提示:登入到manager app後,我們就可以看到tomcat上所有的webapp,我們可以在後面進行操作,停止啟動,和重載以及解除安裝對應webapp;

  測試:停止/test 看看對應webapp是否還可以通路?

Java應用伺服器之tomcat基礎配置(一)
Java應用伺服器之tomcat基礎配置(一)

  提示:可以看到當我們把對應webapp停止後,對應webapp就不能夠通路了,通路它會告訴我們該資源未找到,404錯誤;

  啟動/test webapp,看看是否馬上就可以通路了呢?

Java應用伺服器之tomcat基礎配置(一)
Java應用伺服器之tomcat基礎配置(一)

  2、給host-manager配置賬号

Java應用伺服器之tomcat基礎配置(一)

  提示:啟動admin-gui角色,并把admin-gui角色擁有的權限附加到tomcat使用者上;

  重新開機tomcat

Java應用伺服器之tomcat基礎配置(一)

  登入主站的host manager

Java應用伺服器之tomcat基礎配置(一)
Java應用伺服器之tomcat基礎配置(一)
Java應用伺服器之tomcat基礎配置(一)

  提示:可以看到登入host-manager 應用中,我們可以看到有一個預設的host是localhost,和一些伺服器相關資訊;

  添加一個host

Java應用伺服器之tomcat基礎配置(一)

  提示:app base路徑需要在伺服器上有該路徑,并且需要我們把對應的源碼檔案放進去;還需要注意對應目錄tomcat使用者可以讀和進入到該目錄的權限;

Java應用伺服器之tomcat基礎配置(一)

  在windows上配置解析www.test.com 為192.168.0.22

Java應用伺服器之tomcat基礎配置(一)

  測試:通路我們剛才添加的host,看看是否能夠通路到?

Java應用伺服器之tomcat基礎配置(一)

  提示:tomcat監聽在8080,是以我們通路添加的虛拟主機也需要把端口帶上;從上面的通路結果看,它提示我們404網頁檔案未找到;其原因是我們在/tmp/下的/test/目錄沒有ROOT目錄,預設情況通路虛拟主機,就相當于通路這個虛拟主機的主站,所謂主站就是通路的rul上沒有rui,如上圖所示;這時tomcat它會去對應目錄下找ROOT目錄裡的首頁檔案(index.jsp);

Java應用伺服器之tomcat基礎配置(一)

  提示:修改了/tmp/test/下的目錄結構後,現在在通路看看?

Java應用伺服器之tomcat基礎配置(一)

  提示:更改了/tmp/test/目錄結構後,直接通路就可以通路到對應的頁面了,這裡需要注意一點,如果我們剛才添加虛拟主機時,沒有勾選支援自動部署,我們還需要去部署才可以通路;

  登入server status 應用

Java應用伺服器之tomcat基礎配置(一)

  提示:用剛才的tomcat使用者就可以直接登入server status 應用,因為剛才配置的tomcat使用者是 admin-gui角色和manager-gui角色,這兩個角色都有登入通路server status的權限;

Java應用伺服器之tomcat基礎配置(一)

  提示:server status 應用主要是用于檢視伺服器狀态相關的資訊;該頁面主要記錄了tomcat版本,jvm版本和對應伺服器的版本資訊以及伺服器主機名,ip位址;jvm記憶體池使用相關資訊;ajp連接配接器相關連結資訊和http連接配接器相關資訊;通過檢視狀态頁面,我們可以了解到伺服器和tomcat的情況,進而進行優化和調整;

作者:Linux-1874

出處:https://www.cnblogs.com/qiuhom-1874/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利.