简介

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

术语

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

  • 上下文 - 简而言之,上下文就是网络应用程序。

就是这样。如果发现任何需要添加到本节的术语,请告诉我们。

目录和文件

这些是一些关键的 tomcat 目录:

  • /bin - 启动、关闭和其他脚本。.sh 文件(Unix系统)是 `.bat`文件(Windows系统)的功能复制。由于 Win32 命令行缺乏某些功能,这里还有一些附加文件。

  • /conf - 配置文件和相关 DTD。其中最重要的文件是 server.xml。它是容器的主要配置文件。

  • /logs - 日志文件默认放在这里。

  • /webapps - 网络应用程序放在这里。

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 文件和二进制文件,因此您可以轻松地将文件升级到较新版本,并将更改传播到使用相同 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。

  • 包含要添加到 classpath 的其他资源的 lib 目录。

建议使用: 是,如果您的应用程序依赖外部库。

查找顺序: 首先检查 CATALINA_BASE,其次加载 CATALINA_HOME。

  • 用于特定实例日志文件的`logs`目录。

建议使用: 是。

  • webapps 目录,用于自动加载网络应用程序。

建议使用: 是,如果要部署应用程序。

查找顺序: 仅 CATALINA_BASE。

  • `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 FAQ 在 jGuru

  • Tomcat 邮件列表存档 - 许多网站都有 Tomcat 邮件列表存档。由于链接会随着时间的推移而改变,点击这里可以搜索 Google

  • TOMCAT-USER 邮件列表,可以在 这里 订阅。如果没有收到回复,那么你的问题很有可能已经在列表存档或常见问题解答中回答过了。尽管有时会有人问及和回答关于一般网络应用程序开发的问题,但请把问题集中在 Tomcat 的具体问题上。

  • 可以在 这里 订阅 TOMCAT-DEV 邮件列表。该列表专门用于讨论 Tomcat 本身的开发。关于 Tomcat 配置的问题,以及在开发和运行应用程序时遇到的问题,通常更适合在 TOMCAT-USER 列表中讨论。

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