直到(包括)版本 17.5 Plesk Onyx 附带 Tomcat 安装,从版本 17.8 起不再支持。因此,不再可以部署和执行任何 .war 文件。
在我看来,Plesk 推荐的降级并不是权宜之计,因为生命即将结束和安全问题。如何在 Plesk 管理的服务器上运行 Java 代码?
直到(包括)版本 17.5 Plesk Onyx 附带 Tomcat 安装,从版本 17.8 起不再支持。因此,不再可以部署和执行任何 .war 文件。
在我看来,Plesk 推荐的降级并不是权宜之计,因为生命即将结束和安全问题。如何在 Plesk 管理的服务器上运行 Java 代码?
请改用 Tomcat Docker 容器并将 .war 文件部署在映射的 Docker 卷中。
Home -> Server Management -> Extensions -> search textbox
从扩展目录 ( )安装 Plesk 扩展“Docker” 。Home -> Server Management -> Docker
)。search textbox -> 'run' drop down box
)"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 容器内部日志文件提供给您的主机系统。
使用 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 一起使用
我们遇到了同样的问题:在 Plesk Onyx 17.5 上成功部署后,我们的托管商宣布强制更新到 17.8,这符合 Plesk 的 GDPR 要求。知道这会破坏我们的生产环境,我们设置了一台新机器来测试我们的可能性。我很高兴在这里@ThirstForKnowledge 找到你的想法——这听起来很棒——但 Docker 不是我们的选择,因为我们的虚拟化托管环境无法运行 Docker 主机。所以我们想出了另一个想法,这可能对其他面临同样困难的人有所帮助。
将 Tomcat 安装为独立应用程序并使用默认提供的 Tomcat 管理器部署 .war。创建一个 cron 脚本检查 Tomcat .zip 存档的更新,并使用包管理器安装 JRE,它会定期由 Plesks 启动自动更新。
用户连接将被引导到您的 Tomcat/Java 应用程序,但加密和所有其他托管内容可以通过 Plesk 界面完成。更新将由 Java 的 Plesks 包更新程序和 Tomcat 的 cron 脚本驱动。Tomcat 管理器使部署和取消部署变得非常容易,它只在需要时短暂地暴露给 WWW,并且凭据被安全地传输。Tomcat 需要手动安装,因为我们的包管理器在他的存储库中只有 Tomcat 7,这可能取决于您的安装,所以请先检查一下!
有没有人有更多的经验或发现这种方法的安全弱点或泄漏?有没有人有更好的想法来完成这个任务?我们错过了什么吗?我对所有考虑都感到高兴:)