javamelody tomcat 虚拟主机
Posted
技术标签:
【中文标题】javamelody tomcat 虚拟主机【英文标题】:javamelody tomcat virtual hosting 【发布时间】:2012-06-21 10:48:08 【问题描述】:我正在运行 tomcat 7,并且在测试服务器上配置了 2 个虚拟主机。称它们为“hostA”和“hostB”。
工作得很好,但我现在想使用 javamelody 来监控这两个应用程序。仅在 1 个应用程序上使用 javamelody 可以按预期工作。但是同时将 javamelody 部署到两个应用程序时会出现问题。
查看 tomcat/temp/javamelody/ 我看到为每个上下文创建了不同的目录。不幸的是,javamelody 将 hostA 和 hostB 视为相同的上下文(ROOT)。
简而言之,javamelody 无法区分 hostA 和 hostB,因为两者都是 ROOT 上下文,即使配置为不同的虚拟主机 javamelody 忽略了这一点。
我正在寻找一种监控应用程序的方法,但出于生产目的,我需要它们是 ROOT 上下文,否则用户将看到 URL 不正确。
例如必须是
www.hostA.co.uk
www.hostB.co.uk
没有
www.hostA.co.uk/contextA/
www.hostB.co.uk/contextB/
谢谢
【问题讨论】:
【参考方案1】:我已经解决了这个问题,我在 javamelody 中找到了一个设置,可以让你设置一个自定义存储目录,现在两个上下文都是 root,但数据是分开的,所以没有冲突。
server.xml 的更改部分如下
<Host name="localhost" appBase="webappsA/">
<Context docBase="ROOT" path="" reloadable="false" >
<Parameter name='javamelody.storage-directory' value='storeA'/>
</Context>
</Host>
<Host name="127.0.0.1" appBase="webappsB/">
<Context docBase="ROOT" path="" reloadable="false" >
<Parameter name='javamelody.storage-directory' value='storeB'/>
</Context>
</Host>
【讨论】:
以上是关于javamelody tomcat 虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章