0

我有一个 tomcat 实例,上面运行着几个应用程序......我希望我的新域的根目录转到这些应用程序之一(等等的上下文路径)......所以我有以下设置:

<Location />
    ProxyPass ajp://localhost:8025/blah
    ProxyPassReverse ajp://localhost:8025/blah
</Location>

它有点工作......去 mydomain.com/index.jsp 工作除了应用程序仍然认为它需要将 /blah/ 添加到 css 和 js 之类的所有内容中......有没有我可以做的事情而不将应用程序部署到 ROOT 或更改tomcat服务器配置?如果可能的话,我想把所有这些东西都放在 apache 端。

我在想我可能不理解 proxypassreverse 指令..

4

3 回答 3

2

如果您想将应用程序服务于 /,则 Tomcat 期望应用程序安装在 / 上,并具有 ROOT 的名称。至少我个人一直是这样处理这种情况的。即使您只是将应用程序符号链接到 ROOT,也应该可以缓解您的问题。如果您有一个应用程序放置在 ${tomcat_home}/webapps/newapp 中,那么 Tomcat 会使用 /newapp 的上下文部署它。至少,在我的历史上是这样的。另外,不确定是否重要,但我一直使用:

ProxyPass / ajp://localhost:8025/blah
ProxyPassReverse / ajp://localhost:8025/blah
于 2008-10-26T07:38:15.797 回答
0

看起来这是一种背部疼痛

apache实际上是在为它们提供服务时重写页面......

我想我会走另一条路。

于 2008-10-23T22:03:17.323 回答
0

如果您也在 Tomcat 端配置主机,那么您可以代理它们并消除非 root webapps 的上下文路径——在 Tomcat server.xml 中:

<Host name="myhost">
  <Context path="" docBase="/path/to/files" />
</Host>

在 Apache 方面:

<VirtualHost *:80>
  ServerName myhost
  ProxyPass / ajp://myhost:8009/
  ProxyPassReverse / ajp://myhost:8009/
</VirtualHost>

希望有帮助。

于 2009-04-01T22:09:44.117 回答