26 мая 2020

Если есть необходимость запуска нескольких экземпляров сервера Apache Tomcat, то стандартные настройки и скрипты запуска не подходят. Ниже приведена инструкция и примеры скриптов для решения данной задачи.

ТТХ

Рецепт будет работать для:

  • Debian, Ubuntu, Astra Linux;
  • ГосJava 8 или Apache Tomcat 8 и 8.5.

Описание

Мы будем запускать сервер с помощью нового модуля Systemd. Для каждого экземпляра сервера будут созданы собственные каталоги. Остаются следующие общие элементы для всех экземпляров сервера:

  • файл общих настроек /etc/default/tomcat8;
  • все JAR-файлы Tomcat.

В остальном мы будем следовать стандартной конфигурации Tomcat для Debian/Ubunbu/Astra: пользователь/группа tomcat8/tomcat8 и т.д.

Настройка Systemd

Для начала необходимо отключить существующий модуль для Tomcat:

systemctl stop tomcat8
systemctl disable tomcat8
systemctl mask tomcat8

Новый модуль для Systemd можно скачать из нашего репозитория: tomcat@.service. Файл необходимо положить в каталог /etc/systemd/system/ и загрузить его:

systemctl daemon-reload

Создание экземпляра сервера

Скрипт для создания экземпляра сервера лежит в нашем репозитории: tomcat-instance.

Скачайте его и запустите с названием экземпляра:

./tomcat-instanse <название>

Например:

./tomcat-instance foo

Скрипт создаст необходимые каталоги:

  • конфигурации /etc/tomcat8/<название>/
  • основной /var/lib/tomcat8/<название>/
  • логов /var/log/tomcat8/<название>/
  • рабочий /var/cache/tomcat8/<название>/

После его выполнения вам необходимо самостоятельно создать файлы конфигурации. В простейшем случае можно скопировать стандартные файлы настройки Tomcat из каталога /etc/tomcat8/. Обратите внимание, что на файлы конфигурации должны быть установлены следующие права:

  • пользователь и группа: root:tomcat8;
  • права доступа 0640.

Запуск экземпляра

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

Операции над экземпляром осуществляются командой systemctl. Пример запуска сервера foo:

systemctl start tomcat@foo

4 комментария

    1. Добрый вечер, если вы про вот это:
      «Для использования при функционировании сетевого сервиса необходимо отредактировать файл /etc/parsec/privsock.conf, добавив в него строку, содержащую полный путь к исполняемому файлу сервиса»
      То это не сработало.

      1. Отвечу сам, себе.
        Нужно отредактировать unit tomcat@.service который расположен в каталоге /etc/systemd/system/и добавить следующий параметр в секцию:

        [Service]
        CapabilitiesParsec=PARSEC_CAP_PRIV_SOCK

        Далее нужно сохранить и перезапустить демон systemd:

        systemctl daemon-reload

        Зы.
        Если используется только один экземпляр сервера приложений тогда нужно изменить unit tomcat8.service в каталоге /etc/systemd/system/

        Все профит.

Что у нас
нового

Блог

Репозиторий с обновлениями безопасности Astra Linux Special Edition

Лаборатория 50 на протяжении 5 лет поддерживает репозиторий с обновлениями безопасности Astra Linux Special Edition.

Запуск нескольких экземпляров Tomcat

26 мая 2020

Если есть необходимость запуска нескольких экземпляров сервера Apache Tomcat, то стандартные настройки и скрипты запуска не подходят.

Наши
контакты

Связаться с нами

Телефон 8 (812) 981-68-09
Электронная почта team@lab50.net





    Заполняя данную форму, вы принимаете условия Соглашения об использовании сайта, и соглашаетесь
    с Правилами обработки и использования персональных данных