2

我正在运行 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/

谢谢

4

1 回答 1

3

我已经解决了这个问题,我在 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>
于 2012-06-19T14:49:05.790 回答