Как настроить несколько экземпляров Tomcat?

Есть ли правильный способ запустить более одного экземпляра tomcat на сервере Ubuntu?

Я провел некоторый поиск и нашел две опции:

  1. Загрузите заархивированного кота и разверните его вручную. Очевидным недостатком является то, что он не будет обновлен с помощью apt-get.
  2. Используйте некоторые расширенные сценарии , которые опасны на рабочем сервере.

Любые другие идеи, чтобы чисто запустить другой экземпляр?

Заранее спасибо,

Адам

5
задан 11 August 2016 в 17:38

3 ответа

Я настраиваю это на Ubuntu 14.04.3 LTS. Я использую Tomcat 7, обеспеченный tomcat7 пакет.

Это устанавливает Tomcat как системную службу путем обеспечения стандарта init сценарий:

/etc/init.d/tomcat7

и конфигурационный файл:

/etc/default/tomcat7

Поддержки Tomcat, выполняющие несколько экземпляров с тем же программным обеспечением сервера. Программное обеспечение сервера расположено в $CATALINA_HOME, файлы для экземпляра расположены в $CATALINA_BASE. Они определяются следующим образом в /etc/init.d/tomcat7:

NAME=tomcat7
CATALINA_HOME=/usr/share/$NAME
CATALINA_BASE=/var/lib/$NAME

(Протест: при редактировании файлов в последнем, знать, что это имеет некоторые символьные ссылки в первого.)

tomcat7-user пакет обеспечивает утилиту tomcat7-instance-create это может использоваться для создания дерева каталогов для дополнительного экземпляра Tomcat, включая a bin/ каталог со сценариями для запуска и остановки экземпляра вручную.

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

  1. Выберите значение для сервисного названия; это будет $NAME в новом init сценарии.
  2. Создайте нового пользователя с тем именем, которое будет владеть файлами для экземпляра Tomcat и как, какой Tomcat будет работать. Это может быть пользователь системы, его свойства должны совпасть с для tomcat7 пользователь.
  3. Выполненный tomcat7-instance-create как тот пользователь для создания экземпляра Tomcat.
  4. Настройте его и установите веб-приложение (веб-приложения), которое Вы хотите запустить с ним. Протестируйте их использующий bin/startup.sh и bin/shutdown.sh сценарии.
  5. Переместите журналы в /var/log/$NAME и символьная ссылка их назад к logs/ из нового экземпляра Tomcat.
  6. Записать /etc/init.d/$NAME, например, путем копирования и изменения /etc/init.d/tomcat7 и изменение присвоения на $NAME. (Было бы более хорошо, если бы Вы не должны были копировать целый сценарий, но могли бы просто создать ссылку на него.)
  7. Записать /etc/default/$NAME указать на Ваш экземпляр Tomcat и пользователя.
  8. Использовать upstart-rc.d устанавливать новый сервис.

Я подобрал некоторые детали из Kodjo-Кумы Djomeda.

3
ответ дан 11 August 2016 в 17:38

Рассматривали ли вы настройку нескольких каталогов веб-приложений вместо запуска нескольких экземпляров tomcat?

Конечно, бывают случаи, когда вам действительно нужно несколько экземпляров, но в случае обслуживания одного приложения отдельно для нескольких хостов, вы можете сделать это. добавив несколько объявлений в server.xml:

  <Host name="host1.example.com" appBase="host1"
    unpackWARs="true" autoDeploy="true" 
    xmlValidation="false" xmlNamespaceAware="false" />

  <Host name="host2.example.com" appBase="host2"
    unpackWARs="true" autoDeploy="true" 
    xmlValidation="false" xmlNamespaceAware="false" />

Теперь вы можете создавать каталоги "/ var / lib / tomcat6 / host1" и "/ var / lib / tomcat6 / host2" и развертывать в них файлы WAR .

0
ответ дан 11 August 2016 в 17:38

Я сделал следующее:

запустил следующую команду с dir, где должен быть создан tomcat:

tomcat8-instance-create staging

, после чего изменил порты на нечто уникальное (если у вас запущен другой tomcat8 :

nano conf/server.xml

я использую того же пользователя, что и исходный tomcat8, поэтому я уверен, что все файлы принадлежат tomcat8

chown -R tomcat8:tomcat8 * 

я скопировал скрипт tomcat8 в / etc / init. d /

cp /etc/init.d/tomcat8 /etc/init.d/tomcat8_staging

и отредактировал скрипт, чтобы он работал с моим новым промежуточным окружением:

nano /etc/init.d/tomcat8_staging

мне пришлось отредактировать следующие строки:

NAME=tomcat8_staging
DEFAULT=/etc/default/tomcat8
CATALINA_BASE=/app/tomcat8/staging
CATALINA_HOME=/usr/share/tomcat8
[ 1116] и, наконец, я включил сервер следующим образом:

systemctl enable tomcat8_staging

при запуске с:

service tomcat8_staging start

я получил ошибку об отсутствующих файлах политики, поэтому я создал ссылку для этого в Conf Dir:

ln -s /etc/tomcat8/policy.d policy.d
0
ответ дан 11 August 2016 в 17:38

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

Похожие вопросы: