Tomcat - tomcat9 introduction


Apache Tomcat 9
簡介
對於伺服器管理者以及網站開發者,要使用tomcat之前,一定要先對tomcat有所基本的認識

名詞使用
context - 在tomcat中,如果遇到context這個詞,就代表著一個網站應用程式,也就是一個webapp

資料夾及檔案
一些必須有基本認識的資料夾以及檔案名稱
/bin - 針對windows系統與unix系統的執行檔,如*.sh,*.bat檔
/conf - 對整個server container的調適等各種設定檔,server.xml是調整container的主要檔案
/logs - 日誌檔會輸出在這個地方
/webapps - 網站的資料夾或是war檔放的地方

CATALINA_HOME and CATALINA_BASE
整個server有兩個全域變數是一定要認識的:
CATALINA_HOME: 代表著tomcat所安裝的根目錄位址,如/home/tomcat/apache-tomcat-9.0.10,或是C:\Program Files\apache-tomcat-9.0.10.
CATALINA_BASE: 代表著一個tomcat instance,一個tomcat可以起很多個server,一個server代表著一個instance,如果你會在一個tomcat起多個instance,請使用CATALINA_BASE這個全域變數

為什麼使用CATALINA_BASE
預設來說,CATALINA_HOME跟CATALINA_BASE是指向同一個資料夾,當你有需要在一個tomcat跑一個以上的instance時,你就會有需要手動改變CATALINA_BASE。這樣做的話會有以下好處:
1.tomcat需要升級時,所有的instance用同一個tomcat jar包,所以可以一次性一起升級
2.避免使用到重複的jar包
3.有機會共用相同的設定,增加便利性

CATALINA_BASE資料夾的內容
在使用CATALINA_BASE這個全域變數前,建議先創建以下所建議的資料夾結構,如果你沒有創建的話,tomcat也會幫你創建,但是如果tomcat因為權限問題無法創建,那麼tomcat將有可能停止或是不正常的運作。

CATALINA_BASE/bin - 有setenv.sh, setenv.bat,還有tomcat-juli.jar的檔案,沒有建議一定要有,tomcat執行會先掃描CATALINA_BASE再掃描CATALINA_HOME
CATALINA_BASE/lib - 有其他的依賴檔或資源可以放在這裡,建議要有,tomcat執行會先檢查CATALINA_BASE再檢查CATALINA_HOME
CATALINA_BASE/logs - 對於一個單一instance日誌檔,建議要有
CATALINA_BASE/webapps - 準備要執行的網站app,建議要有,只有檢查CATALINA_BASE
CATALINA_BASE/work - 包含部署中應用程式所產生的資料,建議要有
CATALINA_BASE/temp - JVM的暫時資料暫存在這,建議要有

此外,建議將CATALINA_HOME/conf底下的所有設定檔拷貝到CATALINA_BASE/conf底下,如果CATALINA_BASE沒有的話,將不會有回呼呼叫CATALINA_HOME的設定檔,如此將會導致tomcat發生錯誤。
最低的限度,CATALINA_BASE要有這兩個設定檔:
  • conf/server.xml
  • conf/web.xml

如何使用CATALINA_BASE
CATALINA_BASE是一個環境變數,在你使用之前先設定它:
  • On Unix: CATALINA_BASE=/tmp/tomcat_base1
  • On Windows: CATALINA_BASE=C:\tomcat_base1

調整Tomcat
任何在conf設定檔當中的參數都已經被tomcat讀取,所以如果要修改設定檔參數,都必須要重新啟動tomcat。

使用tomcat有問題時該去何處尋求協助
在文件中已經盡量表達夠清楚詳盡了,但仍可能遺漏了一些東西,所以如果有任何問題,提供以下的網址或電話。
此外,要注意版本的問題,某些問題在某些版本會發生,但在最新的版本已經不存在,所以請確定版本的對應。

留言

這個網誌中的熱門文章

慢性胃炎

禪者的初心-讀書心得

電影心得-逆轉人生