简介
对于管理员和 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.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。
-
包含要添加到 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 FAQ 在 jGuru
-
Tomcat 邮件列表存档 - 许多网站都有 Tomcat 邮件列表存档。由于链接会随着时间的推移而改变,点击这里可以搜索 Google。
-
TOMCAT-USER 邮件列表,可以在 这里 订阅。如果没有收到回复,那么你的问题很有可能已经在列表存档或常见问题解答中回答过了。尽管有时会有人问及和回答关于一般网络应用程序开发的问题,但请把问题集中在 Tomcat 的具体问题上。
-
可以在 这里 订阅 TOMCAT-DEV 邮件列表。该列表专门用于讨论 Tomcat 本身的开发。关于 Tomcat 配置的问题,以及在开发和运行应用程序时遇到的问题,通常更适合在 TOMCAT-USER 列表中讨论。
如果认为文档中应该包含某些内容,请在 TOMCAT-DEV 列表中告诉我们。