Tomcat在路径上的apache代理错误背后

时间:2015-05-21 11:56:43

标签: java apache tomcat jira mod-proxy

我正在尝试将我的apache 2.2配置为服务器上某些应用程序的代理。

tomcat-jira:使用Jira的安装程序安装; tomcat-dev:只是另一个应用程序的容器。

首先,我的httpd.conf是这样的:

ProxyRequests Off
ProxyPreserveHost On

<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

ProxyPass /jira http://dev.debian.local:8080/jira
ProxyPassReverse /jira http://dev.debian.local:8080/jira

ProxyPass /tomcat http://dev.debian.local:8088
ProxyPassReverse /tomcat http://dev.debian.local:8088

<Location /jira>
    Order allow,deny
    Allow from all
</Location>

<Location /tomcat>
   Order allow,deny
   Allow from all
</Location>

所以当我输入http://dev.debian.local/jira时它就可以了! 但是在tomcat-dev http://dev.debian.local/tomcat中,它显示页面,很糟糕,没有样式,当我点击manage-aps时,它会重定向到:

http://dev.debian.local/manager/html 而不是 http://dev.debian.local/tomcat/manager/html 导致404错误。

在tomcat-jira上,它有一个参数来配置应用程序:

       

它因为只是一个应用程序,所以它重定向正确。我怎样才能在tomcat实例上做这样的事情?是否有tomcat根的上下文路径?

1 个答案:

答案 0 :(得分:3)

正如您所见,使用ProxyPass更改Web应用程序的路径通常会破坏所有内容。

相反,你应该这样做:

ProxyPass /tomcat http://dev.debian.local:8088/tomcat
ProxyPassReverse /tomcat http://dev.debian.local:8088/tomcat

或者这个:

ProxyPass / http://dev.debian.local:8088
ProxyPassReverse / http://dev.debian.local:8088

如果您选择第二个选项,请将“tomcat”Web应用程序重命名为“ROOT”(区分大小写:使用大写字母,即使是对cass不敏感的文件系统)。