如何设置多个Tomcat实例?

Ada*_*tan 6 server tomcat multiple-instances

有没有一种在 Ubuntu 服务器上运行多个 tomcat 实例的正确方法?

我做了一些搜索,发现了两个选项:

  1. 下载一个压缩的 tomcat 并手动部署它。明显的缺点是它不会使用apt-get.
  2. 使用一些高级脚本,这在生产服务器中是危险的。

干净地运行另一个实例的任何其他想法?

提前致谢,

亚当

Rei*_*ost 3

我正在 Ubuntu 14.04.3 LTS 上进行设置。我使用的是软件包提供的Tomcat 7 tomcat7

它通过提供标准初始化脚本将 Tomcat 安装为系统服务:

/etc/init.d/tomcat7
Run Code Online (Sandbox Code Playgroud)

和配置文件:

/etc/default/tomcat7
Run Code Online (Sandbox Code Playgroud)

Tomcat 支持使用同一服务器软件运行多个实例。服务器软件位于$CATALINA_HOME,实例文件位于$CATALINA_BASE。它们的定义如下/etc/init.d/tomcat7

NAME=tomcat7
CATALINA_HOME=/usr/share/$NAME
CATALINA_BASE=/var/lib/$NAME
Run Code Online (Sandbox Code Playgroud)

(警告:在后者中编辑文件时,请注意它有一些指向前者的符号链接。)

tomcat7-user软件包提供了tomcat7-instance-create可用于为其他 Tomcat 实例创建目录树的实用程序,其中包括bin/带有用于手动启动和停止实例的脚本的目录。

我还没有发现支持将这样的附加实例转变为系统服务。因此,必须手动完成,例如如下:

  1. 为服务名称选择一个值;它将位于$NAME新的初始化脚本中。
  2. 使用该名称创建一个新用户,该用户将拥有 Tomcat 实例的文件,并且 Tomcat 将以该用户身份运行。它可以是系统用户,其属性应该与用户相同tomcat7
  3. 以该用户身份运行tomcat7-instance-create以创建 Tomcat 实例。
  4. 配置它并安装您想要使用它运行的 Web 应用程序。bin/startup.sh使用它的和脚本测试它们bin/shutdown.sh
  5. 将日志移至新 Tomcat 实例/var/log/$NAME并将其符号链接回logs/新 Tomcat 实例。
  6. 写入/etc/init.d/$NAME,例如通过复制、修改/etc/init.d/tomcat7和修改分配到$NAME。(如果您不需要复制整个脚本而只需创建指向它的链接,那就更好了。)
  7. 写入/etc/default/$NAME指向您的 Tomcat 实例和用户。
  8. 用于upstart-rc.d安装新服务。

我从 Kodjo-Kuma Djomeda 那里收集到了一些细节。