1、引言

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

2、术语

在阅读这些文件的过程中,您将遇到许多术语;一些特定于Tomcat,以及其他定义的Servlet and JSP specifications.

  • Context- 简而言之,Context是一个Web应用程序。

3、目录和文件

这是一些关键的tomcat目录:

  • /bin- 启动,关闭和其他脚本。其中的*.sh文件适合Unix系统,*.bat文件适用于Windows系统。由于Win32命令行缺少某些功能,因此这里有一些额外的文件。
  • /conf- 配置文件和相关的DTD文件。这里最重要的文件是server.xml。它是容器的主要配置文件。
  • /logs- 默认情况下,日志文件在此处。
  • /webapps- 这是您的webapps的所在之地。

4、CATALINA_HOME和CATALINA_BASE

在整个文档中,引用了以下两个属性:

  • CATALINA_HOME:例如,表示Tomcat安装的根目录/home/tomcat/apache-tomcat-9.0.10 或者 C:\Program Files\apache-tomcat-9.0.10.
  • CATALINA_BASE:表示特定Tomcat实例的运行时配置的根。如果要在一台计算机上安装多个Tomcat实例,请使用CATALINA_BASE 属性.

如果将属性设置为不同的位置,则CATALINA_HOME位置包含静态源,例如.jar文件或二进制文件。 CATALINA_BASE位置包含配置文件,日志文件,已部署的应用程序和其他运行时要求的文件。

5、为什么使用CATALINA_BASE

默认情况下,CATALINA_HOME和CATALINA_BASE指向同一目录。当您需要在一台计算机上运行多个Tomcat实例时,请手动设置CATALINA_BASE。这样做有以下好处:

  • 更轻松地管理升级到更新版本的Tomcat。因为具有单个CATALINA_HOME位置的所有实例共享一组.jar文件和二进制文件,您可以轻松地将文件升级到较新版本,并使用相同的CATALIA_HOME目录将更改传播到所有Tomcat实例。
  • 避免重复配置相同的静态.jar 文件.
  • 共享某些设置,例如shell文件或bat脚本文件(取决于您的操作系统)。

6、CATALINA_BASE的内容

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

请考虑以下目录列表:

  • bin目录并且包含setenv.sh, setenv.bat,以及 tomcat-juli.jar 文件.  Recommended: No.                                                                                                            查找顺序:首先查CATALINA_BASE下的bin路径,然后查CATALINA_HOME路径
  • lib目录并且包含要在类路径上添加的更多资源。                                Recommended:Yes,如果您的应用程序依赖于外部库。                                        查找顺序:首先检查CATALINA_BASE; 然后是CATALINA_HOME。
  • logs目录放特定于实例的日志文件。                                                         Recommended: Yes.  
  • webapps目录放置自动加载的Web应用程序。                                             Recommended:Yes,如果要部署应用程序。                                                             查找顺序:仅限CATALINA_BASE。
  • work目录包含已部署Web应用程序的临时工作目录。 Recommended: Yes.  
  • temp目录JVM用于临时文件的目录。 Recommended: Yes.  

我们建议你不要改变tomcat-juli.jar文件。但是,如果您需要自己的日志记录实现,则可以替换tomcat-juli.jar在CATALINA_BASE位置中为特定Tomcat实例提供文件。

我们还建议您从中复制所有配置文件CATALINA_HOME/conf目录进入CATALINA_BASE/conf/目录。如果CATALINA_BASE中缺少配置文件,则不会回退到CATALINA_HOME。因此,这可能会导致失败。

至少,CATALINA_BASE必须包含:

  • conf/server.xml
  • conf/web.xml

That includes the conf目录。否则,Tomcat无法启动或无法正常运行。

有关高级配置信息,请参阅 RUNNING.txt file.

7、如何使用CATALINA_BASE

CATALINA_BASE属性是一个环境变量。您可以在执行Tomcat启动脚本之前进行设置,例如:

  • On Unix: CATALINA_BASE=/tmp/tomcat_base1 bin/catalina.sh start
  • On Windows: CATALINA_BASE=C:\tomcat_base1 bin/catalina.bat start

8、去哪里寻求帮助

虽然我们已尽最大努力确保这些文件清晰易读,但我们可能错过了一些内容。下面提供了各种网站和邮件列表,以防您遇到困难。

请记住,Tomcat的主要版本之间的一些问题和解决方案各不相同。当您在网上搜索时,会有一些与Tomcat 9无关的文档,但仅限于早期版本。

  • 当前文档 - 大多数文档将列出潜在的挂起。请务必完整阅读相关文档,因为这样可以节省您的大量时间和精力。没有什么比搜索网络只是为了找到答案就在你面前一直在你面前!
  • Tomcat FAQ
  • Tomcat WIKI
  • Tomcat FAQ at jGuru
  • Tomcat邮件列表存档 - 众多站点存档Tomcat邮件列表。由于链接随时间变化,点击此处将搜索Google.
  • 您可以订阅的TOMCAT-USER邮件列表here。如果您没有得到答复,那么很可能您的问题可能会在列表存档或其中一个常见问题解答中得到解答。虽然有时会询问和回答有关Web应用程序开发的问题,但请将您的问题集中在Tomcat特定的问题上。
  • 您可以订阅的TOMCAT-DEV邮件列表here. This list is reserved讨论Tomcat自身的发展。有关Tomcat配置的问题以及在开发和运行应用程序时遇到的问题通常更适合TOMCAT-USER列表。

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