可以在没有 Tomcat Manager 的情况下手动重新加载 Web 应用程序吗?

可以在没有 Tomcat Manager 的情况下手动重新加载 Web 应用程序吗?

我想在不使用 Tomcat Manager 或自动 Reloadable 属性的情况下重新加载(或重新启动)Apache Tomcat(6 或 7)服务器上的一个特定 Web 应用程序。使用管理器会再次带来另一个安全风险,并且当您需要上传/复制大型文件时,reloadable 属性不起作用,因为在上传尚未完成时它已经重新加载。

作为 root,重新加载特定的 Web 应用程序应该很容易,而不是重新启动 Tomcat 服务(重新加载其上的每个 Web 应用程序),对吗?

答案1

使用JMX,并且只允许从本地主机连接。

答案2

重新上传大文件的典型方法是直接将整个新的 .war 文件放到那里,tomcat 将“完整”重新部署您的应用程序。现在您可以进行并行部署https://stackoverflow.com/a/6584259/32453

既然您提到您是 root,那么我想您也可以弹出所有 tomcat。

或者我的想法是复制所有新文件,然后只需“重命名”文件夹,然后将旧文件夹重命名为其他名称后,以某种方式将其重命名为 webapps 文件夹。

也可能有一种方法可以指示 tomcat只观看“特定位置”而不是默认值(至少是 WEB-INF/lib/*)(context.xml:WatchedResource 标签默认是 WEB-INF/web.xml)。

这样您就可以复制文件然后触摸那里的文件。

答案3

使用管理器会再次带来另一个安全风险

您所说的安全风险是什么?

wget --http-user=user \
     --http-password=password \
     -q -O - http://localhost:8080/manager/reload?path=/examples

http://tomcat.apache.org/tomcat-6.0-doc/manager-howto.html#Supported%20Manager%20Commands

相关内容