打包 Java Web 应用程序:重用 tomcat6 还是单独的进程?

打包 Java Web 应用程序:重用 tomcat6 还是单独的进程?

我想打包我的 Java Web 应用程序http://kunagi.org/适用于 Ubuntu (和 Debian)。

软件包是否应该创建一个用户kunagi,为现有的提供初始化脚本和配置文件tomcat6,以便我的应用程序在具有其自身权限的单独 jvm 实例中运行?或者软件包是否应该将 Web 应用程序放入/var/lib/tomcat6/webapps/,以便它使用 tomcat 进程和权限运行?

答案1

这应该是系统管理员的选择。只需打包应用程序即可开箱即用。如果系统管理员想要提高安全性,那是他的工作 :)

答案2

您无需修改​​现有的 tomcat/webapp 安装,而是可以提供 (1) 与嵌入式 Web 服务器一起运行的独立软件包,以及 (2) 提供一个简单的“.war”文件,人们可以下载该文件并将其安装到自己的 tomcat(或 jetty 或 glassfish 或...)服务器中。(如果您的 versino 是独立服务器,那么将 war 作为单独下载提供也是轻而易举的。)

至于升级,独立版本可以使用您的包管理器(apt、rpm、yum 等)进行升级;但是,如果人们将 war 安装到 tomcat 中,则安装它的人必须手动进行升级,或者您可以在 Web 应用程序中提供更新程序。有关此内容的一个非常好的示例,请参阅詹金斯(原名哈德森)。 Sonatype/nexus还有单独的安装选项。

给最终用户的一般指导是:为了快速简便地在个人电脑上安装,请使用独立版本。为了成熟的数据中心和长期的管理方便,请使用现有应用服务器中的“.war”。

包管理器修改现有 tomcat 安装的问题在于,该 tomcat 中可能存在大量的 webapp,并且通常tomcat 版本和 webapps 版本之间存在意外的紧密依赖关系。最好先升级 tomcat,测试所有 webapps 是否仍能正常工作,然后逐个升级 webapps。(或者,也许我只是有点偏执,因为从历史上看,这是对我唯一有效的方法。)

相关内容