Как развернуть файлы .war в Plesk Onyx 17.8, несмотря на то, что TomCat больше не поддерживается?

Вплоть до версии 17.5 Plesk Onyx поставлялся с установкой Tomcat, которая не длиннее поддерживается с версии 17.8. Таким образом, никакие файлы .war больше не могут быть развернуты и выполнены.

Понижение, рекомендованное Plesk, на мой взгляд, нецелесообразно из-за близкого окончания срока службы и проблем с безопасностью. Как запустить код Java на сервере, управляемом Plesk?


person ThirstForKnowledge    schedule 19.04.2019    source источник


Ответы (3)


1. Идея

Вместо этого используйте контейнер Tomcat Docker и разверните файл .war в сопоставленном томе Docker.

2. Решение

  • Установите расширение Plesk «Docker» из каталога расширений (Home -> Server Management -> Extensions -> search textbox).
  • Откройте расширение Docker (Home -> Server Management -> Docker).
  • Установите контейнер Tomcat (search textbox -> 'run' drop down box)
  • Adapt the Tomcat container configuration
    • activate "Automatic start after system reboot"
    • деактивировать "Automatic port mapping"
    • для "Manual mapping" выберите конфигурацию порта 8080 to external 8080
  • Add two "Volume mapping"s
    • /usr/local/tomcat/webapps/ to /usr/local/tomcat/webapps/
    • /usr/local/tomcat/logs/ to /usr/local/tomcat/logs/

3. Объяснение

Первое сопоставление тома предоставляет каталог в хост-системе (на вашем сервере), который синхронизируется с каталогом веб-приложений в контейнере Tomcat. Скопировав в него ваш файл .war, вы развернете его в контейнере Tomcat. Второе сопоставление томов предоставляет внутренние файлы журналов контейнера Tomcat для вашей хост-системы.

person ThirstForKnowledge    schedule 19.04.2019

У нас была та же проблема: после успешного развертывания на Plesk Onyx 17.5 наш хостер объявил о принудительном обновлении до 17.8, оправданном требованиями GDPR Plesk. Зная, что это нарушит нашу производственную среду, мы установили новую машину, чтобы проверить наши возможности. Я был очень рад найти вашу идею здесь @ThirstForKnowledge, что звучит прекрасно для меня, но Docker не был для нас вариантом, поскольку наша виртуализированная среда хостинга не позволяла запускать хост Docker. Поэтому мы придумали еще одну идею, которая может быть полезна для других, сталкивающихся с такими же трудностями.

1. Идея

Установите Tomcat как отдельное приложение и разверните .war вместе с Tomcat Manager, поставляемым по умолчанию. Создайте скрипт cron, проверяющий наличие обновлений в ZIP-архиве Tomcat, и установите JRE с помощью диспетчера пакетов, который регулярно автоматически обновляется по инициативе Plesks.

2. Решение

  • Установите JRE с помощью диспетчера пакетов
  • Установите Tomcat, используя .zip с их зеркал.
  • Защитите его от атак, следуя одному из различных онлайн-руководств.
  • Сделайте его сервисом и включите его для запуска при загрузке
  • Настройте приложение менеджера Tomcat (только для локального хоста, смотрите на три шага вперед)
  • Заблокировать порт Tomcats по умолчанию с помощью брандмауэра Plesk
  • Настройте подписку Plesks с шифрованием и автоматическим перенаправлением на HTTPS
  • Используйте возможности Plesks для изменения конфигурации Apache и настройки обратного прокси-сервера на порт Tomcats.
  • Проверьте домен на наличие работающего сервера Tomcat и действительного шифрования
  • Войдите в менеджер Tomcat
  • Отмените развертывание всех демонстрационных приложений и разверните свой .war
  • Деактивируйте доступ менеджера для предотвращения атак (или настройте Fail2Ban соответствующим образом) (может не понадобиться, если вы выполните все следующие шаги, но безопасность есть безопасность)
  • Измените конфигурацию обратного прокси-сервера, чтобы указать / на ваше приложение
  • Создайте скрипт для обновления Tomcat и запустите его с помощью Plesk.

3. Объяснение

Подключения пользователей будут направляться к вашему приложению Tomcat/Java, но шифрование и все остальные операции хостинга могут выполняться через интерфейс Plesk. Обновления будут запускаться средством обновления пакетов Plesks для Java и сценарием cron для Tomcat. Развертывание и отмена развертывания действительно упрощается менеджером Tomcat, который лишь на короткое время открывается в WWW, когда это необходимо, а учетные данные передаются безопасным образом. Tomcat нужно было установить вручную, потому что у нашего менеджера пакетов в репозиториях был только Tomcat 7, это может зависеть от вашей установки, поэтому проверьте это заранее!

4. Открытые вопросы

Кто-нибудь имеет больше опыта или находит слабые места или утечки безопасности с этим подходом? Есть ли у кого-нибудь более приятная идея для выполнения этой задачи? Мы что-то упускаем? Я рад всем соображениям :)

person schiegg    schedule 16.07.2019

Недостатком использования «Правил прокси-сервера Docker» в Plesk является то, что несколько доменов не могут совместно использовать один докер.

В Plesk 17.8 мне больше всего подошло вот что...

Используя ssh, установите Tomcat на порт 8080.

Удалите все демонстрационные приложения из папки веб-приложений Tomcat.

Скопируйте мои файлы войны приложений в папку веб-приложения Tomcat

Войдите в Плеск

Для каждого домена с веб-приложением Tomcat нажмите «Настройки Apache и nginx» для этого домена, прокрутите вниз в разделе «Дополнительные директивы nginx».

location /app1 {
    proxy_pass http://127.0.0.1:8080;
}

Каждое имя веб-приложения должно быть уникальным. Работает с Let’s Encrypt, поэтому

person BlaaBlaaBlaa    schedule 11.03.2020