如何将我的tomcat应用程序连接到apache 2,这样路径不是蹩脚的?

时间:2008-10-23 17:29:25

标签: apache tomcat proxy ajp

我有一个运行了几个应用程序的tomcat实例...我希望我的新域的根目录转到其中一个应用程序(上下文路径)...所以我有以下设置:

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

它有点工作......去mydomain.com/index.jsp工作,除了应用仍然认为它需要添加/ blah /到像css和js这样的东西..有什么我可以做而不需要部署应用程序ROOT或更改tomcat服务器配置?如果可能的话,我想把所有这些事情保留在apache一边。

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

3 个答案:

答案 0 :(得分:2)

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

ProxyPass / ajp://localhost:8025/blah
ProxyPassReverse / ajp://localhost:8025/blah

答案 1 :(得分:0)

它看起来像是pain in the rear

apache正在重写页面,因为它为它们提供服务......

我想我会走另一条路。

答案 2 :(得分: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>

希望有所帮助。