本格堅守四不一沒有政治主張:不知道、不清楚、不瞭解、不明白、沒有我的事!
[ start | index | login or register ]

2004-07-06 #1

Created by Ada. Last edited by Ada, 3 years and 336 days ago. Viewed 1,984 times. #3
[diff] [history] [edit] [rdf]
labels
Parent:Java
attachments

開啟 Tomcat 遠端部署功能

Tomcat 提供了遠端部署 Web Application ( 網頁應用系統,這和 Web Services 網頁應用服務 是兩件事 ) 的功能,但如何設定呢?

通常,我不會使用 Tomcat 預設的路徑 (指的是 $CATALINA_HOME/webapps/) 放置所開發的應用系統,反而會另外安排一塊目錄(特別是不和 / 放一起的獨立 partition )。這麼做的好處是若系統重建時,原來的 Web Application 相關程式都不會被洗掉,另外在測試各 Application Server 時能有單一的程式目錄。

設定虛擬主機

為了設定應用系統的獨立目錄,我的作法是建立一個新的虛擬主機 (Virtual Host),方法不複雜,只要把 Tomcat 設定檔 server.xml 中的<Host name="localhost">...</Host>段落複製一份再改名即可:例如將

<Host name="localhost" debug="0" appBase="webapps"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">

<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true"/> </Host>

複製成:
<!-- app.foo.com 是說明用的,您應該使用正式的網路主機名稱 -->
<Host name="app.foo.com" debug="0" appBase="/home/app"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false" >
    <!-- 這是設定有關本站台的一般記錄保存方式 -->
    <!-- directory 若未指定絕對位址時,則採相對於 $CATALINA_HOME 路徑方式認定 -->
    <Logger className="org.apache.catalina.logger.FileLogger"
            directory="logs"  prefix="app_log." suffix=".txt"
            timestamp="true"/>
    <!-- 這是設定有關本站台的資源存取記錄保存方式 -->
    <Valve className="org.apache.catalina.valves.AccessLogValve"
           directory="logs"  prefix="app_access_log." suffix=".txt"
           pattern="common" resolveHosts="false"/>
    <!-- 這一段是設定這個虛擬主機下有幾個 Web Application -->
    <Context path="/application" docBase="application" debug="5" 
             reloadable="true" crossContext="true" >
    </Context>
</Host>
記得 <Host>...</Host> 所在的區段必須在 <Engine>...</Engine> 中。當完成以上設定後只要重啟 Tomcat 就可以完成虛擬主機的建置,此時 >>http://localhost/>>http://app.foo.com 表示的是兩個不同的虛擬主機,也就是兩個不同的服務。

那如果有多個網域名稱對上同一個 IP ,而那些網域名稱並未在 server.xml 中設定時,Tomcat 會怎麼處理呢?其實 Tomcat 還是會提供一個預設虛擬主機來服務這些網域名稱,而這個預設的虛擬主機也同樣在 server.xml 中指定,如下所示:

<Engine name="Catalina" defaultHost="app.foo.com" debug="0">

設定維護界面

Tomcat 的遠端部署功能必須使用 /manager 維護界面達成。

當完成虛擬主機設置時,Tomcat 會在 $CATALINA_HOME/conf/Catalina/ 目錄下建立一個與新設定的虛擬主機名稱同名的目錄 app.foo.com,而這個目錄通常沒有包含任何檔案。

同樣在 $CATALINA_HOME/conf/Catalina/ 還有另一個目錄叫 localhost ,這個是 Tomcat 預設的虛擬主機名稱,目錄中包含有 3 個 xml 檔,其中一個檔名叫做 manager.xml。

manager.xml 這個檔其實正是 Tomcat 用來判斷指定虛擬主機網址是否需要啟動 /manager 遠端維護界面的設定檔,因此必須複製一份到 $CATALINA_HOME/conf/Catalina/app.foo.com/ 目錄下,如範例:

[root@app Catalina]# pwd
/opt/jakarta-tomcat-5.0.19/conf/Catalina
[root@app Catalina]# cp localhost/manager.xml app.foo.com/

完成複製動作後,最好去修改一下 manager.xml 的設定檔,將 docBase 指向正確的 Servlet 所在目錄:

<Context path="/manager" debug="0" privileged="true"
    docBase="/opt/jakarta-tomcat-5.0.19/server/webapps/manager" >

<!-- Link to the user database we will get roles from --> <ResourceLink name="users" global="UserDatabase" type="org.apache.catalina.UserDatabase"/> </Context>

設定維護者帳號及密碼

最後 manager 這個 Servlet 有限制使用者的角色必須是 manager,因此必須設定一個維護者的帳號並配屬到 manager 這個角色。設定的方式是編輯 $CATALINA_HOME/conf/tomcat-users.xml 這個檔,內容如下:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager"/>
  <user username="admin" password="password" roles="manager"/> 
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>

檢驗設定狀況

完成以上設定後,重新啟動 Tomcat 並開啟瀏覽器進行測試。

在瀏覽器網址列上填入 >>http://app.foo.com/manager/list ( 請填入所設定的真實網址 ),輸入前面設定的維護者帳號、密碼後,只要看到瀏覽器輸出 OK - Listed applications for virtual host app.foo.com 字樣及其目前所管理的所有網頁應用系統記錄即算設定完成。如範例:

OK - Listed applications for virtual host app.foo.com
/blog:running:1:/home/webapps/blog
/manager:running:0:/opt/jakarta-tomcat-5.0.19/server/webapps/manager

如何使用遠端部署端維護功能

若確認 Tomcat 遠端部署維護功能已設定完成後,可在瀏覽器網址列上填入 >>http://app.foo.com/manager/html-manager-howto.html 即可查看如何使用遠端線上管理功能。

no comments | post comment


【求助】

  1. 如何指定格式化的文字
  2. 如果字太小
【SnipSnap 強化方案】
>>SnipIt 誕生
>>功能討論
>>功能確認

< January 2009 >
SunMonTueWedThuFriSat
123
45678910
11121314151617
18192021222324
25262728293031

【RSS 訂閱】




【雜想分類區】
美食小吃
生活雜想
職場遭遇戰
休閒娛樂
台北居、大不易
錯誤正在橫行中
廣告異聞錄
神秘事件簿
電影
健康管理
資訊電腦
科高地球
手機應用
新聞馬後炮
動漫世界
管理眾人之事
專案管理
歌曲歌詞
嘸爽啦!
部落格記錄
惡搞裝笨耍白爛
歧視非IE用戶之網頁
關於我
CSS
RSS

【與 Ada 聯絡】

【Windows 多媒體播放工具】
介紹:多功能免費媒體播放工具 MyMPC 2006 安裝介紹
下載(1):>>MyMPC 20060117 簡、繁、英三合一安裝版
下載(2):>>MyMPC 20060117 簡、繁、英三合一安裝版

【Firefox 擴充套件自動安裝服務】
>>建議擴充套件介紹
>>擴充套件分類介紹
※更新日期:2007-04-12

【有趣的 Blog】
>>什麼都破,什麼都爛,什麼都不奇怪
>>酪梨壽司的日記
>>去吧!錯誤特攻隊!
>>隨裕而安
>>荒謬大觀
>>網路黑貓
>>瑞克梅添涼 DALIREAL
>>鳥毅的blog
>>潛艦 - >>反垃圾信
>>窮留學生懶人食譜
>>約耳談軟體

【工具網站】
>>dns checker
>>美國街道電子地圖

【網路貼紙】
XHTML 1.0 validated CSS validated
RSS 2.0 validated Powered by SnipSnap
Powered by Gentoo Linux
網站使用 UTF-8 編碼 網站所在地-台灣
Onion Club 洋蔥酷樂部 Powered By PostgreSQL
我是台灣人

【網路同盟】
怠墮管理者同盟

【PCDVD 七八區 RSS】




【PCDVD 疑雜區 RSS】




【網路串連】









【參訪團】

snipsnap.org | Copyright 2000-2002 Matthias L. Jugel and Stephan J. Schmidt