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.jarconf
- Файлы конфигурации сервера (включая 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 для каждого экземпляра или просто измените символическую ссылку, обновив двоичные файлы "глобально"
Обновление легче, даже если у вас есть только один экземпляр.