有没有一种正确的方法可以在 Ubuntu 服务器上运行多个 tomcat 实例?
我做了一些搜索,发现了两个选项:
- 下载一个压缩的 tomcat 并手动部署它。明显的缺点是它不会使用
apt-get
. - 使用一些高级脚本,这在生产服务器中是危险的。
干净地运行另一个实例的任何其他想法?
提前致谢,
亚当
有没有一种正确的方法可以在 Ubuntu 服务器上运行多个 tomcat 实例?
我做了一些搜索,发现了两个选项:
apt-get
.干净地运行另一个实例的任何其他想法?
提前致谢,
亚当
您是否考虑过配置多个 webapps 目录而不是运行多个 tomcat 实例?
当然,在某些情况下您确实需要多个实例,但如果为多个主机分别提供相同的应用程序,您可以通过在 server.xml 中添加多个声明来实现:
现在您可以创建“/var/lib/tomcat6/host1”和“/var/lib/tomcat6/host2”目录并将WAR 文件部署到它们。
我在 Ubuntu 14.04.3 LTS 上进行设置。我使用的是
tomcat7
包提供的Tomcat 7。它通过提供标准的 init 脚本将 Tomcat 安装为系统服务:
和配置文件:
Tomcat 支持使用相同的服务器软件运行多个实例。服务器软件位于
$CATALINA_HOME
,实例文件位于$CATALINA_BASE
。它们在 中定义如下/etc/init.d/tomcat7
:(警告:在后者中编辑文件时,请注意它与前者有一些符号链接。)
该
tomcat7-user
软件包提供了tomcat7-instance-create
可用于为其他 Tomcat 实例创建目录树的实用程序,包括bin/
带有用于手动启动和停止实例的脚本的目录。我还没有发现支持将这样的附加实例转换为系统服务。因此,必须手动完成,例如如下:
$NAME
在新的初始化脚本中。tomcat7
用户相同。tomcat7-instance-create
以创建 Tomcat 实例。bin/startup.sh
使用它的和bin/shutdown.sh
脚本测试它们。/var/log/$NAME
并将它们符号链接回logs/
新的 Tomcat 实例。/etc/init.d/$NAME
,例如通过复制、修改/etc/init.d/tomcat7
和修改分配给$NAME
. (如果您不需要复制整个脚本而只需创建一个指向它的链接,那就更好了。)/etc/default/$NAME
指向您的 Tomcat 实例和用户。upstart-rc.d
安装新服务。我从 Kodjo-Kuma Djomeda 那里收集了一些细节。
我做了以下事情:
使用应该创建 tomcat 的目录运行以下命令:
而不是将端口更改为独特的(如果您正在运行其他tomcat8:
我使用与原始 tomcat8 相同的用户,所以我确保所有文件都归 tomcat8 所有
我在 /etc/init.d/ 中复制了脚本 tomcat8 脚本
并编辑脚本以使其与我的新暂存环境一起使用:
我不得不编辑以下几行:
最后我启用了这样的服务器:
开始时:
我收到有关缺少策略文件的错误,因此我在 conf 目录中为此创建了一个链接: