简介

目录

简介

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

术语

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

  • 上下文 - 简而言之,上下文就是一个 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-9.0.10C:\Program Files\apache-tomcat-9.0.10
  • 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.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 10 无关的文档,而只与早期版本有关。

  • 当前文档 - 大多数文档会列出潜在的障碍。请务必完整阅读相关文档,这将为您节省大量时间和精力。没有什么比在网上搜索却发现答案一直就在眼前更令人沮丧的了!
  • Tomcat 常见问题解答
  • Tomcat 维基
  • Tomcat 常见问题解答,位于 jGuru
  • Tomcat 邮件列表存档 - 许多网站存档了 Tomcat 邮件列表。由于链接会随着时间的推移而改变,点击这里将在 Google 上搜索。
  • TOMCAT-USER 邮件列表,您可以 在这里 订阅。如果您没有收到回复,那么您的问题很可能已经在列表存档或某个常见问题解答中得到解答。虽然有时会问及和回答关于 Web 应用程序开发的一般问题,但请将您的问题集中在与 Tomcat 相关的问题上。
  • TOMCAT-DEV 邮件列表,您可以 在这里 订阅。此列表专用于讨论 Tomcat 本身的开发。关于 Tomcat 配置以及在开发和运行应用程序时遇到的问题,通常更适合在 TOMCAT-USER 列表中提问。

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