У меня есть несколько экземпляров tomcat 6, работающих на одном сервере (Linux), и он работает, как ожидалось. Я пытаюсь выяснить , что стандартная практика в отношении устанавливая CATALINA_HOME
и CATALINA_BASE
переменные.
В моей установке tomcat у меня есть настройка, CATALINA_HOME
чтобы указать на «общую» папку (скажем /tomcat6
), и CATALINA_BASE
переменная варьируется в зависимости от имени экземпляра (скажем /tomcat_instance1
, /tomcat_instance2
)
У меня такой вопрос:
- Мне действительно нужны две переменные?
- Или можно просто взять одну
CATALINA_HOME
и покончить с нейCATALINA_BASE
(или наоборот)?
$CATALINA_HOME
) от обслуживания конфигурации и содержимого экземпляра Tomcat (которое находится в нем$CATALINA_BASE
).Ответы:
Если вы запускаете несколько экземпляров Tomcat на одном хосте, вы должны установить
CATALINA_BASE
равным каталогу.../tomcat_instance1
или.../tomcat_instance2
для каждого экземпляра, аCATALINA_HOME
переменную среды - для общей установки Tomcat, файлы которой будут совместно использоваться двумя экземплярами.CATALINA_BASE
Среда не является обязательной , если вы используете один экземпляр Tomcat на хосте и по умолчаниюCATALINA_HOME
в этом случае. Если вы используете несколько экземпляров, они должны быть предоставлены.Хорошее описание этой настройки содержится в
RUNNING.txt
файле в корне дистрибутива Apache Tomcat под заголовком Расширенная конфигурация - несколько экземпляров Tomcat.источник
CATALINA_HOME
противCATALINA_BASE
Если вы запускаете несколько экземпляров, вам нужны только обе переменные
CATALINA_HOME
.Другими словами:
CATALINA_HOME
является обязательным иCATALINA_BASE
необязательным.CATALINA_HOME
представляет собой корень вашей установки Tomcat.См .: Apache Tomcat 7 - Введение.
Запуск с отдельным
CATALINA_HOME
иCATALINA_BASE
задокументирован в RUNNING.txt, в котором говорится:Например:
Несколько экземпляров Tomcat
Как проверить
Самый простой способ проверить, что у вас
CATALINA_BASE
иCATALINA_HOME
есть, запустивstartup.sh
, например:Вы также можете проверить, где установлены файлы Tomcat, с помощью
dpkg
инструмента, как показано ниже (Debian / Ubuntu):источник
Не могу сказать, что знаю лучшую практику, но вот моя точка зрения.
Есть вы используете эти переменные для что - нибудь?
Лично мне не нужно было ничего менять ни в Linux, ни в Windows, в средах, меняющихся от разработки к производству. Если вы не делаете что-то конкретное, что от них зависит, скорее всего, вы могли бы оставить их в покое.
catalina.sh
устанавливает переменные, которые необходимы Tomcat для работы "из коробки". Также сказано, чтоCATALINA_BASE
это необязательно:Я почти уверен, что вы узнаете, работает ли ваша установка, когда запустите свой сервер.
источник
catalina_home
путь в\bin\catalina.sh
файле для обоих экземпляров tomcat ??Указание
CATALINA_BASE
на другой каталог изCATALINA_HOME
позволяет отделить каталог конфигурации от каталога двоичных файлов.По умолчанию
CATALINA_BASE
(конфигурации) иCATALINA_HOME
(двоичные файлы) указывают на одну и ту же папку, но отделение конфигураций от двоичных файлов может помочь вам запустить несколько экземпляров Tomcat бок о бок без дублирования двоичных файлов.Это также полезно, если вы хотите обновить двоичные файлы без изменения или необходимости резервного копирования / восстановления файлов конфигурации для Tomcat.
Обновление 2018
Теперь есть более простой способ установить CATALINA_BASE с помощью
makebase
утилиты. Я разместил учебное пособие по этой теме на http://blog.rasia.io/blog/how-to-easily-setup-lucee-in-tomcat.html вместе с видеоуроком на https://youtu.be / nuugoG5c-7MПродолжение оригинального ответа ниже
Чтобы воспользоваться этой функцией, просто создайте каталог config и укажите на него
CATALINA_BASE
переменную среды. Вам нужно будет поместить в этот каталог несколько файлов:conf
каталог из исходного каталога установки Tomcat, включая его содержимое, и убедитесь, что Tomcat имеет разрешения на чтение для него. Отредактируйте файлы конфигурации в соответствии с вашими потребностями.logs
каталог, если онconf/logging.properties
указывает на${catalina.base}/logs
, и убедитесь, что Tomcat имеет разрешения на чтение / запись для него.temp
каталог, если вы не отменяете значение по умолчанию, на$CATALINA_TMPDIR
которое указывает${CATALINA_BASE}/temp
, и убедитесь, что Tomcat имеет разрешения на запись в него.work
каталог по умолчанию${CATALINA_BASE}/work
и убедитесь, что Tomcat имеет права на запись в него.источник
CATALINA_BASE не является обязательным.
Однако в следующих сценариях помогает настроить CATALINA_BASE отдельно от CATALINA_HOME.
Когда на одном хосте запущено более 1 экземпляра tomcat
Разделение интересов (единственная ответственность)
источник
Это родительская папка bin, в которой находится файл tomcat.exe:
CATALINA_BASE
такое же, какCATALINA_HOME
.источник