我正在尝试将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根是否有上下文路径?
解决方法:
如您所见,使用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”(区分大小写:即使在不区分大小写的文件系统上,也要使用大写字母).