web server apache tomcat11-01-官方文件入門介紹

老马啸西风發表於2024-04-16

前言

整理這個官方翻譯的系列,原因是網上大部分的 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 列表上讓我們知道。

參考資料

https://tomcat.apache.org/tomcat-11.0-doc/introduction.html

相關文章