CATALINA_HOME против CATALINA_BASE

Я не могу найти однозначного ответа на вопрос, почему Ubuntu установит CATALINA_BASE переменная окружения, что делает его отличным от CATALINA_HOME, Я нашел этот документ, который предполагает, что не настройка CATALINA_BASE сделает его эквивалентным CATALINA_HOME, В этом документе также предлагается CATALINA_BASE будет сделано, чтобы сделать несколько экземпляров доступными.

Тем не менее, я не могу найти ничего, что объясняет это. Предположительно, работает с одним CATALINA_HOME был хорош в течение длительного времени, но Ubuntu переключился.

Я нашел этот вопрос с ярким ответом на AskUbuntu, но особо CATALINA_HOME против CATALINA_BASE, Этот вопрос относится к параметру appBase, который задокументирован в документации Tomcat6 для контейнера Host в файле конфигурации.

Вот вопросы: Почему эти две переменные разделены? Когда они должны быть отделены? Что это позволяет администратору делать? Что вы тогда помещаете в каждый каталог? Когда эти две переменные должны быть одинаковыми? Что ASF рекомендует для стандартной практики?

3 ответа

Почему эти две переменные разделены?

catalina.home указывает на расположение общей информации.
catalina.base указывает на каталог, в котором хранится вся информация, относящаяся к экземпляру.

Таким образом, у вас есть 1 дом и может быть более 1 базы.

Когда они должны быть отделены? Когда эти две переменные должны быть одинаковыми?

Если у вас есть 1 кот, вы можете установить для них одинаковое значение, но хорошая практика предложит вам планировать заранее и держать их отдельно: вы никогда не узнаете, нужно ли вам больше одного кота. Ubuntu начал придерживаться этого способа мышления, так как он более логичен: он облегчает запуск 2+ котов, но не отключает запуск 1 кота, когда установка их обоих на одно и то же значение потребует от всех редактирования базового значения. Имеет больше смысла держать их разными.

Что это позволяет администратору делать?

Разрешить запуск более одного tomcat одновременно, когда каждый экземпляр tomcat может иметь свои собственные приложения.

Что вы тогда помещаете в каждый каталог?

Дом содержит бинарий.
База содержит conf, логи, webapps, work и temp. 1 для каждого экземпляра кота.

CATALINA_HOME против CATALINA_BASE

Если вы запускаете несколько экземпляров, вам нужны обе переменные, в противном случае только CATALINA_HOME,

Другими словами: CATALINA_HOME требуется и CATALINA_BASE необязательно.

CATALINA_HOME представляет корень вашей установки Tomcat.

При желании Tomcat можно настроить для нескольких экземпляров, определив $CATALINA_BASE для каждого экземпляра. Если несколько экземпляров не настроены, $CATALINA_BASE такой же как $CATALINA_HOME,

Смотрите: Apache Tomcat 7 - Введение

Бег с отдельным CATALINA_HOME а также CATALINA_BASE задокументировано в RUNNING.txt, где говорится:

CATALINA_HOME а также CATALINA_BASE Переменные окружения используются для указания местоположения Apache Tomcat и местоположения его активной конфигурации, соответственно.

Вы не можете настроить CATALINA_HOME а также CATALINA_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 - Временные рабочие каталоги для веб-приложений
  • 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

Вы также можете проверить, где установлены файлы Tomcat: dpkg инструмент, как показано ниже (Debian/Ubuntu):

dpkg -L tomcat7-common

Помимо того, что это лучший способ запуска двух экземпляров 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/ апаша-7-кот

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

CATALINA_BASE указывает на тот или иной каталог развертывания.

Основные двоичные файлы и библиотеки включены /opt/ Просто скопируйте server.xml, web.xml (и некоторые другие файлы, пожалуйста, прочитайте документы, пожалуйста) и создайте каталоги bin,logs,webapps,temp,work (RTLM, L как мило, пожалуйста)

Вы можете обновить двоичные файлы Tomcat, изменив CATALINA_HOME в файле $CATALINA_BASE/bin/setenv.sh для каждого экземпляра или просто измените символическую ссылку, обновив двоичные файлы "глобально"

Обновление легче, даже если у вас есть только один экземпляр.

Другие вопросы по тегам