前言
整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本爲 v11 最新的版本。
開源項目
同時也爲從零手寫實現 tomcat 提供一些基礎和特性的思路。
minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。
系列文章
web server apache tomcat11-01-官方文檔入門介紹
web server apache tomcat11-02-setup 啓動
web server apache tomcat11-03-deploy 如何部署
web server apache tomcat11-04-manager 如何管理?
web server apache tomcat11-06-Host Manager App -- Text Interface
web server apache tomcat11-07-Realm Configuration
web server apache tomcat11-08-JNDI Resources
web server apache tomcat11-09-JNDI Datasource
web server apache tomcat11-10-Class Loader
...
簡介
對於管理員和 Web 開發人員來說,在開始之前,有一些重要的信息您應該熟悉。本文檔作爲對 Tomcat 容器背後一些概念和術語的簡要介紹,以及在需要幫助時應該去哪裏的指南。
術語
在閱讀這些文檔的過程中,您會遇到許多術語;一些是特定於 Tomcat 的,而另一些是由 Servlet 和 JSP 規範定義的。
- 上下文(Context)- 簡而言之,上下文是一個 Web 應用程序。
如果您發現需要添加更多術語到此部分,請告訴我們。
目錄和文件
以下是一些關鍵的 Tomcat 目錄:
- /bin - 啓動、關閉和其他腳本。*.sh 文件(對於 Unix 系統)是 *.bat 文件(對於 Windows 系統)的功能副本。由於 Win32 命令行缺少某些功能,因此這裏有一些額外的文件。
- /conf - 配置文件和相關的 DTD。這裏最重要的文件是 server.xml。這是容器的主要配置文件。
- /logs - 默認情況下存放日誌文件。
- /webapps - 這是您的 Web 應用程序的位置。
CATALINA_HOME 和 CATALINA_BASE
在文檔中,有兩個屬性的引用:
- CATALINA_HOME:代表您的 Tomcat 安裝的根目錄,例如 /home/tomcat/apache-tomcat-11.0.0 或 C:\Program Files\apache-tomcat-11.0.0。
- CATALINA_BASE:代表特定 Tomcat 實例的運行時配置的根目錄。如果您想在一臺機器上運行多個 Tomcat 實例,請使用 CATALINA_BASE 屬性。
如果您將這兩個屬性設置爲不同的位置,那麼 CATALINA_HOME 位置包含靜態資源,例如 .jar 文件或二進制文件。CATALINA_BASE 位置包含配置文件、日誌文件、部署的應用程序以及其他運行時要求。
爲什麼使用 CATALINA_BASE
默認情況下,CATALINA_HOME 和 CATALINA_BASE 指向同一個目錄。當您需要在一臺機器上運行多個 Tomcat 實例時,手動設置 CATALINA_BASE。這樣做有以下好處:
- 更容易管理升級到較新版本的 Tomcat。因爲所有具有單個 CATALINA_HOME 位置的實例共享一組 .jar 文件和二進制文件,您可以輕鬆地將文件升級到較新版本,並將更改傳播到使用相同 CATALIA_HOME 目錄的所有 Tomcat 實例。
- 避免重複使用相同的靜態 .jar 文件。
- 可以共享某些設置,例如 setenv shell 或 bat 腳本文件(取決於您的操作系統)。
CATALINA_BASE 的內容
在開始使用 CATALINA_BASE 之前,請先考慮並創建 CATALINA_BASE 使用的目錄樹。請注意,如果您沒有創建所有推薦的目錄,Tomcat 將自動創建這些目錄。如果它無法創建所需的目錄,例如由於權限問題,Tomcat 將無法啓動,或者可能無法正常工作。
考慮以下目錄列表:
- 包含 setenv.sh、setenv.bat 和 tomcat-juli.jar 文件的 bin 目錄。
- 推薦:否。
- 查找順序:首先檢查 CATALINA_BASE;然後回退到 CATALINA_HOME。
- 包含要添加到類路徑的其他資源的 lib 目錄。
- 推薦:是,如果您的應用程序依賴於外部庫。
- 查找順序:首先檢查 CATALINA_BASE;其次加載 CATALINA_HOME。
- 用於特定實例日誌文件的 logs 目錄。
- 推薦:是。
- 用於自動加載的 Web 應用程序的 webapps 目錄。
- 推薦:是,如果您要部署應用程序。
- 查找順序:僅檢查 CATALINA_BASE。
- 包含已部署的 Web 應用程序的臨時工作目錄的 work 目錄。
- 推薦:是。
- JVM 用於臨時文件的 temp 目錄。
- 推薦:是。
我們建議您不要更改 tomcat-juli.jar 文件。但是,如果您需要自己的日誌記錄實現,可以將 tomcat-juli.jar 文件替換爲特定 Tomcat 實例的 CATALINA_BASE 位置。
我們還建議您將所有配置文件從 CATALINA_HOME/conf 目錄複製到 CATALINA_BASE/conf/ 目錄。如果在 CATALINA_BASE 中缺少配置文件,將不會回退到 CATALINA_HOME。因此,這可能會導致失敗。
至少,CATALINA_BASE 必須包含:
- conf/server.xml
- conf/web.xml
- 包括 conf 目錄。否則,Tomcat 將無法啓動,或無法正常工作。
有關高級配置信息,請參閱 RUNNING.txt 文件。
如何使用 CATALINA_BASE
CATALINA_BASE 屬性是一個環境變量。您可以在執行 Tomcat 啓動腳本之前設置它,例如:
- 在 Unix 上:CATALINA_BASE=/tmp/tomcat_base1 bin/catalina.sh start
- 在 Windows 上:CATALINA_BASE=C:\tomcat_base1 bin/catalina.bat start
配置 Tomcat
本節將向您介紹在配置容器期間使用的基本信息。
所有配置文件中的信息都在啓動時讀取,這意味着對文件的任何更改都需要重新啓動容器。
尋求幫助
雖然我們已盡力確保這些文檔寫得清晰易懂,但我們可能會漏
掉一些內容。以下是一些網站和郵件列表,以防您遇到困難。
請注意,一些問題和解決方案在不同版本的 Tomcat 之間可能會有所不同。
在網絡上搜索時,會有一些文檔與 Tomcat 11 無關,而僅與早期版本有關。
- 當前文檔 - 大多數文檔將列出潛在的問題。請務必徹底閱讀相關文檔,這將節省您大量的時間和精力。沒有什麼比搜索網絡更好的了,只是發現答案一直在您眼前!
- Tomcat FAQ
- Tomcat Wiki
- jGuru 的 Tomcat FAQ
- Tomcat 郵件列表檔案 - 許多網站存檔了 Tomcat 郵件列表。由於鏈接隨時間而變化,請點擊此處搜索 Google。
- TOMCAT-USER 郵件列表 - 您可以在此訂閱。如果您沒有收到回覆,那麼您的問題可能已在列表存檔或常見問題解答中得到了解答。儘管有時會提出並回答一般的 Web 應用程序開發問題,但請將您的問題重點放在 Tomcat 特定問題上。
- TOMCAT-DEV 郵件列表 - 您可以在此訂閱。此列表專用於討論 Tomcat 本身的開發。有關 Tomcat 配置以及開發和運行應用程序時遇到的問題,通常更適合在 TOMCAT-USER 列表上討論。
如果您認爲文檔中應該包含某些內容,請務必在 TOMCAT-DEV 列表上讓我們知道。