2

直到(包括)版本 17.5 Plesk Onyx 附带 Tomcat 安装,从版本 17.8 起不再支持。因此,不再可以部署和执行任何 .war 文件。

在我看来,Plesk 推荐的降级并不是权宜之计,因为生命即将结束和安全问题。如何在 Plesk 管理的服务器上运行 Java 代码?

4

3 回答 3

2

1. 想法

请改用 Tomcat Docker 容器并将 .war 文件部署在映射的 Docker 卷中。

2.解决方案

  • Home -> Server Management -> Extensions -> search textbox从扩展目录 ( )安装 Plesk 扩展“Docker” 。
  • 打开 Docker 扩展 ( Home -> Server Management -> Docker)。
  • 安装 Tomcat 容器 ( search textbox -> 'run' drop down box)
  • 调整 Tomcat 容器配置
    • 启用"Automatic start after system reboot"
    • 停用"Automatic port mapping"
    • 用于"Manual mapping"选择8080 to external 8080端口配置
  • 添加两个“卷映射”
    • /usr/local/tomcat/webapps//usr/local/tomcat/webapps/
    • /usr/local/tomcat/logs//usr/local/tomcat/logs/

三、说明

第一个卷映射在主机系统(您的服务器)上提供了一个目录,该目录与 Tomcat 容器中的 webapps 目录同步。将您的 .war 文件复制到其中会将其部署在 Tomcat 容器中。第二个卷映射将 Tomcat 容器内部日志文件提供给您的主机系统。

于 2019-04-19T10:13:30.760 回答
0

使用 Plesk 的“Docker 代理规则”的缺点是多个域不能共享一个 docker。

在 Plesk 17.8 中,这对我来说最有效...

使用 ssh,在 8080 端口安装 Tomcat。

从 Tomcat webapp 文件夹中删除所有演示应用程序

将我的应用程序战争文件复制到 Tomcat webapp 文件夹

登录到 Plesk

对于具有 Tomcat webapp 的每个域,单击该域的“Apache 和 nginx 设置”,向下滚动,在“其他 nginx 指令”下添加

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

每个 webapp 名称都是唯一的。与 Let's Encrypt 一起使用

于 2020-03-11T05:02:33.290 回答
0

我们遇到了同样的问题:在 Plesk Onyx 17.5 上成功部署后,我们的托管商宣布强制更新到 17.8,这符合 Plesk 的 GDPR 要求。知道这会破坏我们的生产环境,我们设置了一台新机器来测试我们的可能性。我很高兴在这里@ThirstForKnowledge 找到你的想法——这听起来很棒——但 Docker 不是我们的选择,因为我们的虚拟化托管环境无法运行 Docker 主机。所以我们想出了另一个想法,这可能对其他面临同样困难的人有所帮助。

1. 想法

将 Tomcat 安装为独立应用程序并使用默认提供的 Tomcat 管理器部署 .war。创建一个 cron 脚本检查 Tomcat .zip 存档的更新,并使用包管理器安装 JRE,它会定期由 Plesks 启动自动更新。

2.解决方案

  • 使用包管理器安装 JRE
  • 使用镜像中的 .zip 安装 Tomcat
  • 通过遵循各种在线教程之一来强化它以抵御攻击
  • 使其成为服务并启用它以在启动时启动
  • 配置 Tomcat 管理器应用程序(仅限 localhost,向前看三个步骤)
  • Plesk 防火墙阻止 Tomcats 默认端口
  • 使用加密和自动重定向到 HTTPS 设置 Plesks 订阅
  • 使用 Plesks 功能更改 Apache 配置并设置反向代理到 Tomcat 端口
  • 检查域以获取正在运行的 Tomcat 服务器和有效加密
  • 登录到 Tomcat 管理器
  • 取消部署所有演示应用程序并部署您的 .war
  • 停用管理员访问权限以防止攻击(或适当配置 Fail2Ban)(如果您遵循所有后续步骤,则可能不需要,但安全是安全的)
  • 更改反向代理配置以指向/指向您的应用程序
  • 创建一个脚本来更新 Tomcat 并通过 Plesk 对其进行 cron

三、说明

用户连接将被引导到您的 Tomcat/Java 应用程序,但加密和所有其他托管内容可以通过 Plesk 界面完成。更新将由 Java 的 Plesks 包更新程序和 Tomcat 的 cron 脚本驱动。Tomcat 管理器使部署和取消部署变得非常容易,它只在需要时短暂地暴露给 WWW,并且凭据被安全地传输。Tomcat 需要手动安装,因为我们的包管理器在他的存储库中只有 Tomcat 7,这可能取决于您的安装,所以请先检查一下!

4. 开放式问题

有没有人有更多的经验或发现这种方法的安全弱点或泄漏?有没有人有更好的想法来完成这个任务?我们错过了什么吗?我对所有考虑都感到高兴:)

于 2019-07-16T15:50:21.210 回答