如果我<Host>
的 server.xml 中有几个块,例如:
<Host name="www.mycompany.com" ...>
<Alias>alias.com</Alias>
...
</Host>
停止/启动/重新启动其中之一的最佳方法是什么?
当我只有一个主机时我正在使用/bin/Catalina.sh stop
, /bin/Catalina.sh start
但现在我希望能够处理它们每一个而不影响其他主机。
如果我在同一主机上运行多个应用程序并且我只想重新启动其中一个应用程序,那会有什么不同?
答案1
我认为你不能。如果你在 server.xml 中配置了多个主机,它们都会与正在运行的 tomcat 容器 (JVM) 绑定,如果你重新启动一个,就必须重新启动所有主机。
已经有一段时间了,但在过去,我们的服务器上运行着许多单独的实例,并且我们使用自定义的启动/停止脚本来分别托管各个应用程序及其相关配置(至少是那些应该分开的配置)。
这有助于将我们的部署范围限制在单个容器内,管理操作也是如此。您可以考虑在您的案例中做类似的事情,特别是如果您希望能够像这样单独管理它们 - 从表面上看,做类似的事情对您来说似乎很有意义。
答案2
设置autoDeploy="true"
您的Host
容器配置,为了重新启动它,只需更新appBase
或xmlBase
内容。
我习惯touch
在 Linux 中运行该命令,只是为了更新war
日期或主机xml
配置。例如:
touch $CATALINA_BASE/conf/Catalina/www.mycompany.com/ROOT.xml
或者
touch <appBase>/mycompany-app.war
这是该参数的文档autoDeploy
:
自动部署 此标志值指示 Tomcat 是否应在 Tomcat 运行时定期检查新的或更新的 Web 应用程序。如果是
true
,Tomcat 会定期检查appBase
和xmlBase
目录并部署发现的任何新 Web 应用程序或上下文 XML 描述符。更新的 Web 应用程序或上下文 XML 描述符将触发 Web 应用程序的重新加载。标志的值默认为true
。有关更多信息,请参阅自动应用程序部署。