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 虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat:配置虚拟目录或主目录

tomcat虚拟主机

Tomcat 虚拟主机配置

TOMCAT配置虚拟目录--<Context>标签

Tomcat虚拟主机和优化

Tomcat虚拟主机配置与优化