如何将apache tomcat的server.xml拆分成几个单独的文件?
Posted
技术标签:
【中文标题】如何将apache tomcat的server.xml拆分成几个单独的文件?【英文标题】:How to split server.xml of apache tomcat into several separate files? 【发布时间】:2012-05-13 16:20:33 【问题描述】:我使用apache tomcat 7在单机上运行了很多ofo虚拟主机,我在server.xml中为每个虚拟主机插入了Host
标签,这样我就可以集中管理它们了。
但是现在,在添加了很多主机标签之后,server.xml 变得如此之大,我正在寻找一种方法将每个与虚拟主机相关的标签放在一个单独的 xml 文件中(与 apache 对 httpd.conf 和虚拟主机所做的完全相同)管理)。例如,我为每个主机创建一个单独的 xml 文件并将它们全部放入一个目录并强制 tomcat 加载它们!
有什么想法???
【问题讨论】:
【参考方案1】:以下应该可以工作,但不是由于 Tomcat 错误。我已经修复了主干 (r1333827) 和 7.0.x (r1333829) 中的错误,该修复将包含在 Tomcat 7.0.28 及以后的版本中。我可以发誓这以前有效。可能是 JVM 中的 xml 解析器在某个时候被收紧了,这仍然适用于旧 JVM 版本,但我还没有测试过。
您可以使用 XML 实体 - 每个主机一个。例如:
在 <server>
元素之前插入以下内容:
<!DOCTYPE server-xml [
<!ENTITY host1 SYSTEM "host1.txt">
]>
host1.txt 的内容就是你要定义的宿主元素:
<Host>
...
</Host>
然后将其插入到 server.xml 中的 <engine>
元素中,如下所示:
<engine ...>
&host1;
</engine>
根据需要对任意数量的主机重复。
【讨论】:
谢谢,这个解决方案可以正常工作,但是当我们添加新主机时,是否我们不需要更改 server.xml 来添加任何额外的命令?类似于使用 如何指定要包含的 xml 文件的绝对路径? 只指定绝对路径行不通(/my/absolute/path/file.txt)? 额外的服务器文件需要以“.txt”结尾还是以“xml”结尾?示例 host1.txt 是否可以有自己的 标签来包含附加文件?例如,您可以从 server.xml 中包含 hosts.txt,其中包含所有其他主机。以上是关于如何将apache tomcat的server.xml拆分成几个单独的文件?的主要内容,如果未能解决你的问题,请参考以下文章
Apache Tomcat 1.7 如何将附加参数传递给 JAAS
如何将 mod_rewrite 与 Apache -> mod_jk -> tomcat 设置一起使用?