CATALINA_HOME 与 CATALINA_BASE

CATALINA_HOME 与 CATALINA_BASE

我找不到明确的答案,为什么 Ubuntu 会设置CATALINA_BASE环境变量,使其不同于CATALINA_HOME。我发现这个文件这表明不设置CATALINA_BASE将使其等同于。该文档还建议进行CATALINA_HOME设置以使多个实例可用。CATALINA_BASE

但是,我似乎找不到任何可以解释这一点的东西。大概是,单机运行CATALINA_HOME很长时间都很好,但 Ubuntu 切换了。

我发现这个问题启发性的答案在 AskUbuntu 上,但没有太多关于CATALINA_HOMEvs 的具体信息CATALINA_BASE。这个问题确实提到了“appBase”参数,它是记录在 Tomcat6 文档中有关配置文件中的 Host 容器。

问题如下:为什么要将这两个变量分开?什么时候应该将它们分开?这样管理员可以做什么?然后您将什么放入每个目录中?这两个变量什么时候应该相同?ASF 推荐的标准做法是什么?

答案1

为什么这两个变量是分开的?

catalina.home 指向公共信息的位置。catalina.base
指向所有实例具体信息已保存。

因此,您有 1 个家,但可以拥有超过 1 个基地。

什么时候应该把它们分开?什么时候这两个变量应该相同?

如果您有 1 个 tomcat,则可以将它们设置为相同的值,但良好的做法是建议您提前计划并将它们分开:您永远不知道是否需要多个 tomcat。Ubuntu 开始遵循这种思维方式,因为它更合乎逻辑:它使运行 2 个以上的 tomcat 变得更容易,但不会禁用运行 1 个 tomcat,如果将它们都设置为相同的值,则需要每个人都编辑基值。保持它们不同更有意义。

这允许管理员做什么?

允许同时运行多个 tomcat,每个 tomcat 实例可以拥有自己的应用程序。

那么,您将什么放入每个目录中?

Home 包含二进制文件。Base
包含 conf、logs、webapps、work 和 temp。每个 tomcat 实例各 1 个。

答案2

CATALINA_HOME对比CATALINA_BASE

如果您正在运行多个实例,则需要两个变量,否则只需要CATALINA_HOME

换句话说:CATALINA_HOME是必需的,也是CATALINA_BASE可选的。

CATALINA_HOME代表 Tomcat 安装的根目录。

可选地,可以通过为每个实例定义来为 Tomcat 配置多个实例$CATALINA_BASE。如果没有配置多个实例,$CATALINA_BASE则与 相同$CATALINA_HOME

看:Apache Tomcat 7 - 简介

单独运行CATALINA_HOMECATALINA_BASE记录在 RUNNING.txt 中,其中说明:

CATALINA_HOME和环境变量CATALINA_BASE分别用于指定 Apache Tomcat 的位置和其活动配置的位置。

您无法在脚本中配置CATALINA_HOMECATALINA_BASE变量 setenv,因为它们用于查找该文件。

例如:

(4.1)可以通过执行以下命令之一来启动 Tomcat:

  %CATALINA_HOME%\bin\startup.bat         (Windows)

  $CATALINA_HOME/bin/startup.sh           (Unix)

或者

  %CATALINA_HOME%\bin\catalina.bat start  (Windows)

  $CATALINA_HOME/bin/catalina.sh start    (Unix)

多个 Tomcat 实例

在许多情况下,希望在同一台服务器上的多个用户之间共享 Tomcat 二进制分发的单个副本。为了实现这一点,您可以将CATALINA_BASE 环境变量设置为包含“个人”Tomcat 实例文件的目录。

当使用单独的CATALINA_HOME和运行时CATALINA_BASE,文件和目录将按如下方式拆分:

CATALINA_BASE

  • bin- 仅限:setenv.sh (*nix) 或 setenv.bat (Windows)、tomcat-juli.jar
  • conf- 服务器配置文件(包括server.xml)
  • lib - 库和类,如下所述
  • logs- 日志和输出文件
  • webapps- 自动加载网络应用程序
  • work- Web 应用程序的临时工作目录
  • temp- JVM 用于临时文件的目录>

CATALINA_HOME

  • bin - 启动和关闭脚本
  • lib - 库和类,如下所述
  • endorsed- 覆盖标准“认可标准”的库。默认情况下不存在。

如何检查

检查你的CATALINA_BASE和的最简单方法CATALINA_HOME是运行startup.sh,例如:

$ /usr/share/tomcat7/bin/startup.sh
Using CATALINA_BASE:   /usr/share/tomcat7
Using CATALINA_HOME:   /usr/share/tomcat7

您还可以使用dpkg以下工具检查 Tomcat 文件的安装位置(Debian/Ubuntu):

dpkg -L tomcat7-common

答案3

除了是运行两个 tomcat 实例的最佳方式之外,它还使更新变得更加容易。

我正在使用这个设置。

<!-- language: bash -->

/opt/apache-tomcat-7.0-32
/opt/apache-tomcat-7.0.39
/opt/apache-tomcat-7       (simbolic link to apache-tomcat-7.0.32)

CATALINA_HOME=/opt/apache-tomcat-7

/srv/user_deploys/tomcat_product_a
/srv/user_deploys/tomcat_product_b

CATALINA_BASE指向一个或另一个部署目录。

基本二进制文件和库只需/opt/复制server.xmlweb.xml和一些其他文件,请阅读文档),并创建目录 bin、logs、webapps、temp、work(RTLM,L 很可爱,请)

您可以通过修改CATALINA_HOME每个实例的 $CATALINA_BASE/bin/setenv.sh 文件来更新 tomcat 二进制文件,或者您也可以修改符号链接,“全局”更新二进制文件

即使只有一个实例,更新也更容易。

相关内容