CATALINA_HOME против CATALINA_BASE

11

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

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

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

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

Mei
источник
Похожие: askubuntu.com/q/43226/256002
Василий Бурк

Ответы:

12

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

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

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

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

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

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

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

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

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

Rinzwind
источник
4

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
kenorb
источник
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 / апаша-7-кот

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

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

Основные исполняемые файлы и библиотеки на /opt/просто скопировать server.xml, web.xml(и некоторые другие файлы, читать документы, пожалуйста) и создавать каталоги корзину, журналы, WebApps, темп, работу (РТЛЙ, L , как Lovelly, пожалуйста)

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

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

Дарио скучный
источник