简介

目录

简介

对于管理员和 Web 开发者来说,在开始之前,您应该熟悉一些重要的信息。本文档简要介绍了 Tomcat 容器背后的一些概念和术语。此外,还介绍了在需要帮助时应该去哪里。

术语

在阅读这些文档的过程中,您会遇到许多术语;有些是 Tomcat 特有的,有些则由 Servlet 和 JSP 规范定义。

  • Context (上下文) - 简而言之,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.0C:\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 文件和二进制文件,您可以轻松地将文件升级到新版本,并将更改传播到所有使用相同 CATALINA_HOME 目录的 Tomcat 实例。
  • 避免重复的静态 .jar 文件。
  • 可以共享某些设置,例如 setenv shell 或 bat 脚本文件(取决于您的操作系统)。

CATALINA_BASE 的内容

在开始使用 CATALINA_BASE 之前,请首先考虑并创建 CATALINA_BASE 使用的目录树。请注意,如果您没有创建所有推荐的目录,Tomcat 将自动创建这些目录。如果它未能创建必要的目录,例如由于权限问题,Tomcat 将无法启动,或者可能无法正常运行。

考虑以下目录列表

  • 包含 setenv.shsetenv.battomcat-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 实例在 CATALINA_BASE 位置的 tomcat-juli.jar 文件。

我们还建议您将所有配置文件从 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 常见问题
  • Tomcat Wiki
  • jGuru 上的 Tomcat 常见问题
  • Tomcat 邮件列表存档 - 许多网站都存档了 Tomcat 邮件列表。由于链接会随时间变化,点击此处将在 Google 上搜索。
  • TOMCAT-USER 邮件列表,您可以在此处订阅。如果您没有收到回复,那么很有可能您的问题已经在列表存档或常见问题解答中得到了回答。尽管有时会提出并回答有关 Web 应用程序开发的一般性问题,但请将您的问题重点放在 Tomcat 特定的问题上。
  • TOMCAT-DEV 邮件列表,您可以在此处订阅。此列表仅限用于讨论 Tomcat 本身的开发。有关 Tomcat 配置以及您在开发和运行应用程序时遇到的问题,通常更适合在 TOMCAT-USER 列表上提问。

而且,如果您认为某些内容应该包含在文档中,请务必在 TOMCAT-DEV 列表上告诉我们。