尽管不再支持TomCat,如何在Plesk Onyx 17.8中部署.war文件?

时间:2019-04-19 10:13:31

标签: tomcat server war plesk-onyx

17.5版及以下版本的Plesk Onyx都附带了Tomcat安装,从17.8版开始,它不是longer supported。因此,无法再部署和执行.war文件。

在我看来,Plesk所建议的降级是不合时宜的,因为寿命将尽及安全问题。如何在Plesk管理的服务器上运行Java代码?

3 个答案:

答案 0 :(得分:0)

1。想法

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

2。解决方案

  • 从扩展目录( <form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post"> <!-- If using a Business or Company Logo Graphic, include the "cpp_header_image" variable in your View Cart code. --> <input type="hidden" name="cmd" value="_donations"> <!-- Replace "business" value with your PayPal Email Address or Account ID --> <input type="hidden" name="business" value="testemail@paypal.com"> <input type="hidden" name="item_name"> <input type="hidden" name="item_number" value="WF-1001"> <input type="hidden" name="tax" value="0"> <input type="hidden" name="no_shipping" value="2"> <input type="hidden" name="lc" value="AU"> <input type="hidden" name="currency_code" value="AUD"> <!-- Replace value with the web page you want the customer to return to after a successful transaction --> <input type="hidden" name="return" value="https://mullumseed.org.au/thankyou"> <!-- Replace value with the web page you want the customer to return to after item cancellation --> <input type="hidden" name="cancel_return" value="https://mullumseed.org.au/cancel"> <input type="hidden" name="bn" value="PP-DonationsBF:btn_donateCC_LG.gif:NonHosted"> <input type="hidden" name="button_subtype" value="products"> <input type="hidden" name="no_note" value="0"> <input type="hidden" name="cn" value="Add special instructions to the seller:"> <!-- -->Please enter your donation amount: (Example - 10.00)<br><br> <input type="text" name="amount" size="5"> <br><br>Choose Your Organization:&nbsp;&nbsp; <select name="item_name"> <option value="Widget Fund Donation - Byron Shire Chemical Free Landcare" selected>Byron Shire Chemical Free Landcare</option> <option value="Widget Fund Donation - Corem">Corem</option> <option value="Widget Fund Donation - Mullum Seed Inc">Mullum Seed Inc</option> <option value="Widget Fund Donation - Mullum Community Garden">Mullum Community Garden</option> <option value="Widget Fund Donation - Mullum Cares">Mullum Cares</option> <option value="Widget Fund Donation - Mullum Mens Shed">Mullum Mens Shed</option> <option value="Widget Fund Donation - Mullum Food Coop">Mullum Food Coop</option> <option value="Widget Fund Donation - Shara Community Gardens">Shara Community Gardens</option> <option value="Widget Fund Donation - Reforest Now">Reforest Now</option> <option value="Widget Fund Donation - Mullumbimbees">Reforest Now</option> </select> <input type="hidden" name="on1" value="Tax Deductable Email Receipt Requested">Would you like a Tax Deductable Email Receipt?&nbsp;&nbsp;&nbsp; <INPUT NAME="os1" type="radio" value="Yes" checked>Yes &nbsp;&nbsp;&nbsp; <INPUT NAME="os1" type="radio" value="No Thanks">No Thanks<br><br> <!-- --> <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1"> </form> )安装Plesk扩展“ Docker”。
  • 打开Docker扩展(Home -> Server Management -> Extensions -> search textbox)。
  • 安装Tomcat容器(Home -> Server Management -> Docker
  • 适应Tomcat容器配置
    • 激活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/

3。说明

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

答案 1 :(得分:0)

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

1。想法

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

2.解决方案

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

3。说明

用户连接将被引导至您的Tomcat / Java应用程序,但是加密和所有其他托管工作都可以通过Plesk界面完成。更新将由Java的Plesks软件包更新程序和Tomcat的cron脚本驱动。 Tomcat管理器使部署和取消部署变得非常容易,Tomcat管理器仅在需要时不久才暴露于WWW,并且安全地传输了凭据。需要手动安装Tomcat,因为我们的软件包管理器的存储库中仅包含Tomcat 7,这可能对您的安装有所帮助,因此请事先进行检查!

4。公开问题

有人使用此方法有更多经验或发现安全性弱点或漏洞吗?有谁有更好的主意来完成这些任务?我们错过了什么吗?我为所有考虑因素感到高兴:)

答案 2 :(得分:0)

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

在Plesk 17.8中,这是最适合我的...

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

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

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

登录到Plesk

对于每个具有Tomcat Web应用程序的域,请单击该域的“ Apache&nginx设置”,向下滚动,在“其他nginx指令”下,添加

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

每个网络应用名称都是唯一的。可以与“让我们加密”一起使用