котяра - база Каталина и внутренних переменных Каталина
у меня есть несколько экземпляров tomcat 6, работающих на одном сервере (Linux), и он работает так, как ожидалось. Я пытаюсь выяснить, что стандартная практика в отношении установки CATALINA_HOME и CATALINA_BASE переменные.
в моей установке tomcat у меня есть setup CATALINA_HOME чтобы указать на" общую " папку (скажем /tomcat6) и CATALINA_BASE переменной варьируется в зависимости от имени экземпляра (скажем /tomcat_instance1,/tomcat_instance2)
мой вопрос таков:
- мне действительно нужны две переменные?
- или я могу просто один
CATALINA_HOMEи покончить с
CATALINA_BASE(или наоборот) ?
6 ответов:
если вы используете несколько экземпляров Tomcat на одном хосте, вы должны установить
CATALINA_BASEбудет равна.../tomcat_instance1или.../tomcat_instance2каталог в зависимости от каждого экземпляра иCATALINA_HOMEпеременная окружения для общей установки Tomcat, файлы которой будут совместно использоваться двумя экземплярами.The
CATALINA_BASEсреда является необязательной, если вы используете один экземпляр Tomcat на хосте и по умолчанию будетCATALINA_HOMEв этом случае. Если вы используете несколько экземпляров как вы это должны быть предоставлены.есть довольно хорошее описание этой установки в
RUNNING.txtфайл в корне дистрибутива Apache Tomcat под заголовком Расширенная Конфигурация-Несколько Экземпляров Tomcat
CATALINA_HOMEvsCATALINA_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, который сказал:The
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, в файлы и каталоги разделяются следующим образом:In
CATALINA_BASE:
bin- только: setenv.sh (*nix) или setenv.летучая мышь (Windows), tomcat-juli.банкуconf- файлы конфигурации сервера (включая сервер.xml)lib- библиотеки и классы, как описано нижеlogs- Лог и выходные файлыwebapps- автоматически загружаются веб-приложенияwork- временные рабочие каталоги для веб-приложенийtemp- каталог, используемый JVM для временных файлов>In
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
Я не могу сказать, что знаю лучшую практику, но вот моя точка зрения.
Are вы используя эти переменные для чего?
лично мне не нужно было менять ни в Linux, ни в Windows, в средах, варьирующихся от разработки до производства. Если вы не делаете что-то конкретное, что зависит от них, скорее всего, вы могли бы оставить их в покое.
catalina.shустанавливает переменные, которые Tomcat должен работать из коробки. Он также говорит этоCATALINA_BASEдополнительно:# CATALINA_HOME May point at your Catalina "build" directory. # # CATALINA_BASE (Optional) Base directory for resolving dynamic portions # of a Catalina installation. If not present, resolves to # the same directory that CATALINA_HOME points to.Я уверен, что вы узнаете, работает ли ваша установка при запуске сервера.
указывать
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оригинальный ответ продолжение ниже
чтобы воспользоваться эта функция, просто создать каталог конфигурации и указать на него с помощью
CATALINA_BASEпеременные среды. Вам нужно будет поместить некоторые файлы в этот каталог:
- скопировать
confкаталог из исходного каталога установки Tomcat, включая его содержимое, и убедитесь, что Tomcat имеет разрешения на чтение для него. Отредактируйте файлы конфигурации в соответствии с вашими потребностями.- создать если
conf/logging.propertiesуказывает на${catalina.base}/logs, и убедитесь, что Tomcat имеет разрешения на чтение/запись к нему.- создать
tempкаталог, если вы не переопределяете значение по умолчанию$CATALINA_TMPDIR, который указывает на${CATALINA_BASE}/temp, и убедитесь, что Tomcat имеет права на запись к нему.- создать значение по умолчанию
${CATALINA_BASE}/work, и убедитесь, что Tomcat имеет права на запись к нему.
CATALINA_BASE не является обязательным.
однако в следующих сценариях это помогает настроить CATALINA_BASE, который отделен от CATALINA_HOME.
когда на одном хосте работает более 1 экземпляра tomcat
- Это помогает иметь только 1 Время выполнения установки tomcat, с несколькими конфигурациями сервера CATALINA_BASE, работающими на отдельных портах.
- если требуется исправление или обновление версии, только 1 Установка требуются изменения или их необходимо проверить/проверить/подписать.
разделение забот (единая ответственность)
- Tomcat runtime является стандартным и не изменяется во время каждого процесса выпуска. т. е. двоичные файлы Tomcat
- процесс выпуска может добавить больше материала, как webapplication (папка webapps), конфигурация среды (каталог conf), журналы/temp/рабочий каталог
это родительская папка bin, которая содержит tomcat.exe файл:
CATALINA_HOME='C:\Program Files\Apache Software Foundation\Tomcat 6.0'
CATALINA_BASEэто то же самое, что иCATALINA_HOME.
Comments